Verwalte Updates in Echtzeit für deine __CAPGO_KEEP_1__-Anwendung ohne Store-Hinweise...

Prüfung von Build-Vorabprüfungen durchführen

Bevor Capgo Cloud Build Ihr Projekt hochlädt, läuft der CLI eine Vorabscannung die lokale Probleme mit Anmeldeinformationen, Projekten und Store-Einstellungen erkennt.

Sie läuft auch standalone:

Terminal-Fenster
npx @capgo/cli@latest build prescan <appId> --platform ios

Es gibt 80 Überprüfungen heute. Es ist besser, einzelne Überprüfungs-IDs zu ignorieren, als die gesamte Überprüfung zu deaktivieren.

Terminal-Fenster
# Skip one check entirely (example: intentional Capacitor server.url / Next.js shell)
npx @capgo/cli@latest build request <appId> --platform ios \
--prescan-skip ios/capacitor-server-url-shipped
# Run the check but never block on it (error becomes warning)
npx @capgo/cli@latest build request <appId> --platform ios \
--prescan-warn ios/capacitor-server-url-shipped
# Repeatable or comma-separated
npx @capgo/cli@latest build request <appId> --platform ios \
--prescan-skip ios/capacitor-server-url-shipped \
--prescan-warn ios/capacitor-allow-navigation-wildcard,ios/plist-ats-arbitrary-loads

Standalone-Aliase aktiviert build prescan:

Terminalfenster
npx @capgo/cli@latest build prescan <appId> --platform ios \
--skip ios/capacitor-server-url-shipped \
--warn ios/capacitor-server-cleartext

Unbekannte Check-IDs scheitern schnell mit einer klaren Fehlermeldung.

FlaggeWirkung
--no-prescanDen gesamten Scan überspringen
--prescan-ignore-fatal (oder --ignore-fatal auf build prescan)Scan durchführen, Bericht drucken, nie blockieren
--fail-on-warningsWarnungen als fatal behandeln (CI)

--no-prescan und --prescan-ignore-fatal verstecken oder umgehen alle übrigen Prüfungen. Verwenden Sie stattdessen per-Prüfungs-Überprüfungen, wenn Sie nur mit einer Regel nicht einverstanden sind.

Verwenden Sie den genauen Id --prescan-skip / --prescan-warn.

Schrittweise durchsetzen bedeutet, dass die Ergebnisse nur informell sind, bis 2026-08-14dann kann es die Builds blockieren.

IdPlattformenWas es überprüftSchrittweise durchsetzen
shared/apikey-permissionios, androidDer API-Schlüssel kann native Builds anfordern
shared/app-existsiOS, AndroidDie App-ID existiert und ist für den API-Schlüssel sichtbar
shared/credentials-savediOS, AndroidFür iOS/Android werden die erforderlichen Anmeldeinformationen lokal gespeichert
shared/cap-sync-staleiOS, AndroidWeb-Assets werden erstellt und Capacitor-Plugins werden synchronisiert
shared/node-linker-layoutiOS, AndroidDie node_modules-Struktur funktioniert mit Capacitor-Pfaden für native Anwendungen
shared/bundle-id-consistencyiOS, AndroidDer Capacitor-appId entspricht dem native Bundle-Id / ApplicationId
IdPlattformenWas es überprüftSchrittweise durchsetzen
ios/p12-opensiOSiOS-Zertifikat öffnet sich mit der bereitgestellten Passwort
ios/p12-expiryiOSiOS-Zertifikat ist nicht abgelaufen
ios/profile-expiryiOSProvisioning-Profil ist nicht abgelaufen
ios/profile-bundle-matchiOSProvisioning-Profil-Bundle-Id entspricht der App
ios/profile-type-vs-modeiosProfil-Typ entspricht der App-Store- / Ad-hoc-Modus
ios/cert-profile-pairingiosDas Zertifikat ist im Provisioning-Profil eingebettet
ios/targets-coverediosAlle iOS-Ziele haben ein Provisioning-Profil
ios/infoplist-sanityiosInfo.plist enthält erforderliche Version / Identitäts-Schlüssel
ios/asc-key-validiosApp-Store-Connect API-Schlüsselfelder sehen aus, als ob sie gültig sind
ios/asc-key-accessiosASC API Schlüssel kann auf die App zugreifen (remote)
ios/plist-bundle-id-formatiOSDie CFBundleIdentifier-Format ist gültigJa
ios/plist-version-short-formatiOSDie CFBundleShortVersionString-Format ist gültigJa
ios/plist-version-build-formatiOSDie CFBundleVersion-Format ist gültigJa
ios/plist-encryption-complianceiOSITSAppUsesNonExemptEncryption ist deklariertJa
ios/plist-ats-arbitrary-loadsiosNSAllowsArbitraryLoads ist für die Produktion nicht aktiviertJa
ios/plist-launch-storyboardiosDie Startbildschirm-Anzeige ist deklariertJa
ios/plist-orientations-multitaskingiosDie Orientierung / Multitasking-Einstellungen sind konsistentJa
ios/plist-orientations-presentiosUISupportedInterfaceOrientations ist deklariertJa
ios/plist-display-nameiosDer Anzeigename ist gesetztJa
ios/plist-background-modes-sanityiosDie UIBackgroundModes-Werte sehen gültig ausJa
ios/xcode-deployment-target-capacitoriosDas iOS-Deploymentziel erfüllt die Anforderungen von CapacitorJa
ios/xcode-signing-teamiosDas Signierungsteam ist gesetztJa
ios/xcode-bundle-id-mismatch-across-configsiosDer Bundle-Id ist konsistent über Xcode-KonfigurationenJa
ios/xcode-enable-bitcode-leftoveriosENABLE_BITCODE-Reste werden entferntJa
ios/xcode-swift-version-sanityiosDie Swift-Versionseinstellung sieht vernünftig ausJa
ios/xcode-no-app-targetiosDas Xcode-Projekt hat ein AnwendungszielJa
ios/xcode-multiple-app-targetsiosMehrere App-Ziele werden absichtlich behandeltJa
ios/entitlements-vs-profile-capabilityiosZustimmungen passen zu ProfilfähigkeitenJa
ios/entitlements-aps-environment-vs-modeiosaps-environment passt zum VerteilungsmodusJa
ios/entitlements-associated-domains-formatiosAssoziierte Domains-Format ist gültigJa
ios/entitlements-app-groups-formatiosDie App-Gruppen-Format ist gültigJa
ios/capacitor-server-url-shippediosserver.url wird nicht als lebendes Reload- / Remote-Shell-Endpunkt für Store-Builds belassenJa
ios/capacitor-server-cleartextiosserver.cleartext wird für die Produktion nicht aktiviertJa
ios/capacitor-allow-navigation-wildcardiosserver.allowNavigation ist kein allgemeiner WildcardJa
ios/pods-not-installediosCocoaPods Pods / workspace sind vorhanden, wenn Pods verwendet werdenJa
ios/pods-lock-missingiosPodfile.lock piniert Pod-VersionsJa
ios/pods-capacitor-missingiosPodfile verbindet CapacitorJa
ios/spm-package-resolved-missingiosSPM Package.resolved ist vorhandenJa
ios/spm-capacitor-dependency-missingiosPackage.swift deklariert CapacitorJa
ios/appicon-empty-or-placeholderiosAppIcon.appiconset existiert und ist nicht leerJa
ios/appicon-referenced-file-missingiosContents.json Icondateien existieren auf der FestplatteJa
ios/appicon-marketing-missingios1024×1024 Marketing-Icon existiertJa
ios/spm-deployment-target-consistencyiosDie Zielplattform für die SPM-Bereitstellung ist konsistentJa
IdPlattformenWas es überprüftSchrittweise durchsetzen
android/keystore-opensandroidDas Android-Keystore öffnet sich mit den bereitgestellten Passwörtern
android/keystore-expiryAndroidDas Android-Zertifikat ist nicht abgelaufen
android/cordova-vars-presentAndroidDie Datei cordova.variables.gradle ist nach cap sync vorhanden
android/gradle-props-heuristicsAndroidGradle-Eigenschaften heuristiken für häufige Build-Brecher
android/play-sa-jsonAndroidDas Play-Service-Konto-JSON ist vorhanden, wenn konfiguriert
android/flavor-existsAndroidDas angeforderte Produktflavor existiert
android/agp8-package-attrAndroidDas Manifest-Paket-Attribut wurde für AGP 8+ entfernt
android/manifest-well-formedAndroidAndroidManifest.xml liest aus
android/manifest-tag-typoAndroidGemeinsame Manifest-Tagsyndrome
android/manifest-namespace-uriAndroidxmlns:android-Namespace-URI ist korrekt
android/manifest-missing-prefixAndroidAndroid-Attribute verwenden den Prefix android:
android/manifest-exported-missingAndroidandroid:exported wird dort gesetzt, wo erforderlich
android/manifest-multiple-uses-sdkAndroidNur ein uses-sdk-Element wird verwendet
android/manifest-duplicate-componentAndroidKeine duplizierten Komponenten
android/manifest-unique-permissionAndroidBenutzerdefinierte Berechtigungen sind einzigartig
android/manifest-hardcoded-debuggableAndroiddebuggable=true nicht für den Vertrieb geeignet
android/manifest-mock-locationAndroidACCESS_MOCK_LOCATION nicht für den Vertrieb geeignet
android/manifest-exported-unprotectedAndroidExportierte Komponenten sind geschützt
android/manifest-query-all-packagesAndroidBegründung für QUERY_ALL_PACKAGES
android/manifest-deeplink-validandroidDie Deeplink-Intent-Filter sehen aus
android/applicationid-presentandroidDie Anwendungs-ID wird in app/build.gradle deklariert
android/capacitor-build-gradle-appliedandroidcapacitor.build.gradle existiert wenn angewendet
android/gradle-wrapper-presentandroidGradle-Wrapper-Dateien sind vorhanden
android/flavor-dimensionsandroidSchmackenabmessungen werden deklariert wenn Schmacken existieren
android/google-services-fileandroidgoogle-services.json ist vorhanden wenn Plugin angewendet wird
android/local-properties-committedAndroidlokale properties ist nicht mit geheimen Informationen committet
android/sdk-floorsAndroidmin/compile/target SDK Etagen sehen aus wie gültig
android/target-sdk-playAndroidtargetSdk erfüllt Play-Anforderungen
android/min-sdk-capacitorAndroidminSdk erfüllt Capacitor Anforderungen
android/version-fieldsAndroidversionCode / versionName sind vorhanden
android/play-sa-accessAndroidDer Play-Dienst kann auf das App (remote) zugreifen

Beispiel: Remote Next.js / server.url shell

Beispiel: Remote Next.js / server.url shell

Ein native Shell bereitstellen, der eine Produktionsumgebung lädt server.url ist ein unterstütztes Capacitor Muster. Prüfflags vorab ios/capacitor-server-url-shipped weil es oft ein Live-Reload-Ableger ist.

Bekenntnis ohne andere Überprüfungen zu deaktivieren:

Terminalfenster
npx @capgo/cli@latest build request <appId> --platform ios \
--prescan-skip ios/capacitor-server-url-shipped

Oder behalte die Sichtbarkeit als Warnung:

Terminalfenster
npx @capgo/cli@latest build request <appId> --platform ios \
--prescan-warn ios/capacitor-server-url-shipped