KI-Tools & -Skripte
Expo EAS Konfigurationsprüfung
Prüfen Sie Expo- und EAS-Projekte, bevor Sie bauen, einreichen oder ein Update veröffentlichen: Secrets in EXPO_PUBLIC_-Variablen, App-Konfiguration und eas.json, credentials.json außerhalb von .gitignore, Dev-Builds in Release-Profilen und unsichere Over-the-Air-Updates.
Das bekommst du: 1 Datei · 53.69 KB · ZIP
Kaufoptionen ansehenProduktbeschreibung
EXPO_PUBLIC_OPENAI_API_KEY=... legt Ihren OpenAI-Schlüssel im Klartext in jede Kopie Ihrer App, weil Expo jeden EXPO_PUBLIC_-Wert, den Ihr Code liest, in das JavaScript-Bundle kopiert. Ein Produktions-Build-Profil mit "developmentClient": true liefert den Development Client an Store-Nutzer aus, und "disableAntiBrickingMeasures": true in app.json schaltet das Sicherheitsnetz für Updates bei jedem Build ab, auch in der Produktion. Dieser Skill findet diese und vierzehn weitere Konfigurationsfehler in Expo und EAS, bevor Sie ausliefern, und sagt Ihnen, wie Sie jeden einzelnen beheben.
Ihr Agent führt einen Scanner über app.json, app.config.js und app.config.ts, eas.json (Kommentare und nachgestellte Kommas sind kein Problem), credentials.json, .env-Dateien, package.json und .gitignore sowie über die process.env.EXPO_PUBLIC_-Verweise in Ihrem JavaScript- und TypeScript-Code aus. Er weiß, welche Teile der App-Konfiguration Expo aus der öffentlichen Konfiguration heraushält, verfolgt eas.json-Profile über extends, liest .gitignore-Regeln so wie git, unterscheidet veröffentlichbare Client-Schlüssel (Publishable Keys von Firebase, Supabase, Stripe und Clerk, RevenueCat, Mapbox, PostHog) von geheimen und funktioniert in Monorepos mit mehreren Apps. Er führt niemals Expo, EAS CLI, Ihre App-Konfiguration oder Ihren Code aus. Er liefert BLOCK, REVIEW oder NOT FLAGGED mit Datei, Zeile, Grund und einem sichereren Ansatz. Secrets werden nie ausgegeben.
Was geprüft wird
BLOCK (vor der Auslieferung beheben)
- E01: eine EXPO_PUBLIC_-Variable, die ein Secret enthält (in .env-Dateien, im Build-env von eas.json oder im Code): ein Wert in der Form eines geheimen Schlüssels (Stripe Secret Keys, OpenAI, Anthropic, GitHub, AWS, ein Supabase-service_role-Schlüssel und andere), ein Name, der auf _SECRET, _SECRET_KEY, _PASSWORD, _PRIVATE_KEY, _SERVICE_ROLE_KEY oder _AUTH_TOKEN endet, oder der API-Schlüssel eines rein serverseitigen KI-, E-Mail- oder SMS-Anbieters wie EXPO_PUBLIC_OPENAI_API_KEY (Namen von Speicherschlüsseln wie EXPO_PUBLIC_AUTH_TOKEN_STORAGE_KEY werden nicht gemeldet)
- E02: ein Secret in app.json oder app.config: ein Wert in Secret-Form oder ein literales Passwort bzw. eine geheime Einstellung in extra, Plugin-Optionen oder hooks, ein Passwort in einer URL oder ...process.env, das in die Konfiguration gespreizt wird
- E03: ein Secret in eas.json: eine env-Variable eines Build-Profils, deren Name auf eine Secret-Bezeichnung endet (oder ein Schlüssel eines rein serverseitigen Anbieters ist) und auf ein Literal gesetzt ist, ein API-Schlüssel- oder Token-Name mit einem langen generierten Wert oder ein beliebiger Wert in Secret-Form
- E04: credentials.json, ein darin genannter Keystore oder ein Distributionszertifikat, ein App Store Connect- oder Google Play-Schlüssel, den submit in eas.json nennt, oder der private Code-Signing-Schlüssel von expo-updates im Projekt, ohne dass eine .gitignore-Regel ihn abdeckt
- E05: ein Build-Profil production, release oder store (nicht internal), das einen Development Build erzeugt: developmentClient true (auch über extends), eine Debug-Build-Konfiguration für iOS oder ein Debug-Gradle-Befehl
- E06: updates.url über einfaches http zu einem öffentlichen Host, unsigniert, in einer App-Konfiguration, die auch einfaches http erlaubt (usesCleartextTraffic oder NSAllowsArbitraryLoads)
- E07: disableAntiBrickingMeasures true in app.json, was für jeden Build gilt
REVIEW (vor dem Release prüfen)
- E11: usesCleartextTraffic true (expo-build-properties)
- E12: NSAllowsArbitraryLoads true in ios.infoPlist (App Transport Security deaktiviert)
- E13: ein selbst gehosteter Update-Server ohne updates.codeSigningCertificate
- E14: updates.url gesetzt, aber keine runtimeVersion, sodass expo-updates deaktiviert bleibt
- E15: expo-secure-store mit configureAndroidBackup false, während Android-Backups erlaubt sind
- E16: eine EXPO_PUBLIC_-Variable oder ein App-Konfigurationswert, der wie ein API-Schlüssel benannt ist und ein langes generiertes Literal enthält, das kein bekannter Publishable Key ist
- E17: app.config kopiert eine Umgebungsvariable mit einem Secret oder API-Schlüssel (etwa OPENAI_API_KEY) in extra oder Plugin-Optionen, wo sie mit der App ausgeliefert wird
- E18: disableAntiBrickingMeasures true in app.config geschrieben
- E19: newArchEnabled false unter Expo SDK 55 oder neuer, wo die Einstellung ignoriert wird
- E20: jede andere updates.url über einfaches http zu einem nicht lokalen Host: iOS und Android 9 und neuer lehnen sie standardmäßig ab, daher schlagen Updates meist fehl
Was enthalten ist
- Der Scanner (Python 3.9+, nur Standardbibliothek)
- Ein Regelhandbuch mit Grund, sichererem Ansatz und einem Link zur offiziellen Expo- oder Apple-Dokumentation für jede Regel
- Ein riskantes und ein sicheres Beispiel-Monorepo (drei Apps) sowie der echte Bericht, den der Scanner für das riskante erzeugt
Grenzen
Er liest den Text der Dateien und führt app.config.js oder app.config.ts nie aus, daher werden Werte, die durch Funktionen oder Importe entstehen, nicht verfolgt, und Umgebungsvariablen werden nach ihren Namen beurteilt, nicht nach ihren Werten. E04 entscheidet anhand des .gitignore-Textes, nicht anhand der git-Historie, daher wird eine bereits committete Datei nicht erkannt. EAS-Umgebungsvariablen, die auf den Servern von Expo gespeichert sind, werden nicht geprüft, und EAS-Update-Projekte ohne Code-Signing werden nicht gemeldet, weil Expo Code-Signing für EAS Update nur in kostenpflichtigen Tarifen anbietet. Native ios- und android-Dateien werden nicht gelesen. Der offizielle Beispiel-Client custom-expo-updates-server erlaubt Klartext für seinen localhost-Server und wird absichtlich als E11 REVIEW gemeldet. NOT FLAGGED ist keine Garantie.
Inhalt
Eine ZIP-Datei mit 31 Dateien: SKILL.md, der Scanner in scripts/ (8 Python-Dateien), references/rules.md (jede Regel mit Grund und sichererem Ansatz) und examples/ (20 Beispieldateien plus report.md, die echte Scanner-Ausgabe für das riskante Beispiel).
So verwenden Sie es: Dies ist ein Agent-Skill: ein Ordner mit einer SKILL.md-Datei und Python-Skripten, die ein KI-Coding-Agent wie Claude Code, Cursor oder Codex CLI ausführen kann. Entpacken Sie ihn in den Skills-Ordner Ihres Agenten (für Claude Code: ~/.claude/skills/) und bitten Sie dann Ihren Agenten, Ihr Projekt zu prüfen. Die Skripte laufen auch eigenständig mit Python 3.9 oder neuer, ohne dass etwas installiert werden muss. Sie lesen nur Ihre Dateien: kein Netzwerkzugriff, und nichts wird irgendwohin gesendet.
Das bekommst du
1 Datei · 53.69 KB
- expo-eas-config-check-1.0.0.zipZIP · 53.69 KB
KI-Tools & -Skripte
Expo EAS Konfigurationsprüfung
Prüfen Sie Expo- und EAS-Projekte, bevor Sie bauen, einreichen oder ein Update veröffentlichen: Secrets in EXPO_PUBLIC_-Variablen, App-Konfiguration und eas.json, credentials.json außerhalb von .gitignore, Dev-Builds in Release-Profilen und unsichere Over-the-Air-Updates.
Getly hat die hochgeladenen Dateien geöffnet und nichts gefunden, was das Öffnen verhindern würde. Das ist kein Virenscan und keine Qualitätsbewertung.
Tags
Häufige Fragen
Erhalte ich sofort Zugriff?
Ja. Dies ist ein digitales Produkt - du kannst es direkt nach dem Kauf aus deiner Bibliothek herunterladen.
Darf ich es für kommerzielle Projekte nutzen?
Ja. Kommerzielle Nutzung ist erlaubt: im eigenen Business und in dem, was du verkaufst. Die Datei selbst darfst du nicht weiterverkaufen oder verbreiten.
Wie sind die Rückerstattungsbedingungen?
Du kannst innerhalb von 30 Tagen eine Rückerstattung anfordern. Stimmt etwas nicht, fordere sie bei deiner Bestellung an - das Getly-Team prüft sie.
Welche Dateiformate und -größen erhalte ich?
Du lädst 1 Datei herunter - ZIP - insgesamt 53.69 KB.
Erhalte ich kostenlose Updates?
Ja - wenn der Verkäufer eine neue Version veröffentlicht, kannst du die aktuellen Dateien kostenlos erneut aus deiner Bibliothek herunterladen. Aktuelle Änderungen findest du im Changelog.
Preis
$5.00



