Effectuer des vérifications de prescan
Copiez un prompt de configuration avec les étapes d'installation et le guide Markdown complet pour ce plug-in.
Avant que Capgo Cloud Build télécharge votre projet, le CLI exécute une pré-étude Détection locale de problèmes de credenciaux, de projet et de configuration de magasin.
Elle s'exécute également de manière indépendante :
npx @capgo/cli@latest build prescan <appId> --platform iosIl y a 80 checks today. Prefer ignoring individual check ids over turning the whole scan off.
Ignorer des vérifications spécifiques
Section intitulée « Ignore des vérifications spécifiques »# 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-separatednpx @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-loadsAlias standalone activé build prescan:
npx @capgo/cli@latest build prescan <appId> --platform ios \ --skip ios/capacitor-server-url-shipped \ --warn ios/capacitor-server-cleartextUnknown check ids fail fast with a clear error.
Échappements mondiaux (utilisez-les avec parcimonie)
Échappements mondiaux (utiliser avec parcimonie)| Flag | Effet |
|---|---|
--no-prescan | Passer la totalité de l'analyse |
--prescan-ignore-fatal (ou --ignore-fatal context build prescan) | Run scan, print report, never block |
--fail-on-warnings | Traitez les avertissements comme des erreurs fatales (CI) |
--no-prescan and --prescan-ignore-fatal Considérer les avertissements comme mortels (CI) et remaining checks. Use per-check overrides instead when you only disagree with one rule.
Vérifiez le catalogue
Section intitulée « Vérifiez le catalogue »Utilisez l'identifiant exact dans --prescan-skip / --prescan-warn.
Appliquer progressivement means the finding is information-only until 2026-08-14puis il peut bloquer les builds.
| Id | Plateformes | Ce qu'il vérifie | Appliquer progressivement |
|---|---|---|---|
shared/apikey-permission | ios, android | API clé peut demander des builds natifs | — |
shared/app-exists | ios, android | L'identifiant d'application existe et est visible à la clé API | — |
shared/credentials-saved | ios, android | Les informations de connexion iOS/Android sont enregistrées localement | — |
shared/cap-sync-stale | ios, android | Web assets built and Capacitor plugins synced | — |
shared/node-linker-layout | ios, android | La structure de node_modules fonctionne avec les chemins natifs Capacitor | — |
shared/bundle-id-consistency | ios, android | Capacitor appId correspond à l'identifiant de bundle natif / applicationId | — |
| Id | Plateformes | Ce qu'il vérifie | Application de l'enforcement progressif |
|---|---|---|---|
ios/p12-opens | ios | iOS .p12 s'ouvre avec le mot de passe fourni | — |
ios/p12-expiry | ios | Le certificat de signature iOS n'est pas expiré | — |
ios/profile-expiry | ios | Le profil de provisionnement n'est pas expiré | — |
ios/profile-bundle-match | ios | L'identifiant du profil de provisionnement correspond à l'application | — |
ios/profile-type-vs-mode | iOS | Le type de profil correspond au mode app_store / ad_hoc | — |
ios/cert-profile-pairing | iOS | Le certificat est intégré au profil de provisionnement | — |
ios/targets-covered | iOS | Tous les cibles iOS ont un profil de provisionnement | — |
ios/infoplist-sanity | iOS | Info.plist a des clés de version / d'identité requises | — |
ios/asc-key-valid | iOS | Les champs de la clé API d'App Store Connect semblent valides | — |
ios/asc-key-access | iOS | ASC API clé peut accéder à l'application (distante) | — |
ios/plist-bundle-id-format | ios | Le format de CFBundleIdentifier est valide | Oui |
ios/plist-version-short-format | ios | Le format de CFBundleShortVersionString est valide | Oui |
ios/plist-version-build-format | ios | Le format de CFBundleVersion est valide | Oui |
ios/plist-encryption-compliance | ios | L'entête ITSAppUsesNonExemptEncryption est déclaré | Oui |
ios/plist-ats-arbitrary-loads | ios | NSAllowsArbitraryLoads n'est pas activé pour la production | Oui |
ios/plist-launch-storyboard | ios | L'écran de démarrage est déclaré | Oui |
ios/plist-orientations-multitasking | ios | Les paramètres d'orientation et de multitâche sont cohérents | Oui |
ios/plist-orientations-present | ios | UISupportedInterfaceOrientations est déclaré | Oui |
ios/plist-display-name | iOS | Le nom d'affichage est défini | Oui |
ios/plist-background-modes-sanity | iOS | Les valeurs de UIBackgroundModes semblent valides | Oui |
ios/xcode-deployment-target-capacitor | iOS | La cible de déploiement iOS répond aux exigences de Capacitor | Oui |
ios/xcode-signing-team | iOS | L'équipe de signature est définie | Oui |
ios/xcode-bundle-id-mismatch-across-configs | ios | Bundle id is consistent across Xcode configs | Oui |
ios/xcode-enable-bitcode-leftover | ios | Laisser ENABLE_BITCODE est supprimé | Oui |
ios/xcode-swift-version-sanity | ios | La version Swift est configurée de manière raisonnable | Oui |
ios/xcode-no-app-target | ios | Le projet Xcode a un cible d'application | Oui |
ios/xcode-multiple-app-targets | ios | Les cibles d'applications multiples sont gérées intentionnellement | Oui |
ios/entitlements-vs-profile-capability | ios | Les autorisations correspondent aux capacités de profil | Oui |
ios/entitlements-aps-environment-vs-mode | ios | L'environnement APS correspond au mode de distribution | Oui |
ios/entitlements-associated-domains-format | ios | Le format des domaines associés est valide | Oui |
ios/entitlements-app-groups-format | ios | La forme d'App Groups est valide | Oui |
ios/capacitor-server-url-shipped | ios | server.url is not left as a live-reload / remote shell endpoint for store builds | Oui |
ios/capacitor-server-cleartext | ios | server.cleartext n'est pas activé pour la production | Oui |
ios/capacitor-allow-navigation-wildcard | ios | server.allowNavigation n'est pas un saut de page sauvage | Oui |
ios/pods-not-installed | ios | Les Pods CocoaPods / workspace sont présents lors de l'utilisation de Pods. | Oui |
ios/pods-lock-missing | ios | Podfile.lock fixe les versions des pods | Oui |
ios/pods-capacitor-missing | ios | Podfile configure Capacitor | Oui |
ios/spm-package-resolved-missing | ios | Le Package.resolved SPM est présent | Oui |
ios/spm-capacitor-dependency-missing | ios | Package.swift déclare Capacitor | Oui |
ios/appicon-empty-or-placeholder | ios | L'icône AppIcon.appiconset existe et n'est pas vide | Oui |
ios/appicon-referenced-file-missing | ios | Les fichiers d'icône Contents.json existent sur le disque | Oui |
ios/appicon-marketing-missing | ios | Une icône de marketing de 1024×1024 existe | Oui |
ios/spm-deployment-target-consistency | ios | Le cible de déploiement SPM est cohérent | Oui |
Android
Sous-titre « Android »| Id | Plateformes | Ce qu'il vérifie | Appliquer progressivement |
|---|---|---|---|
android/keystore-opens | android | Clé de stockage Android s'ouvre avec les mots de passe fournis | — |
android/keystore-expiry | android | Le certificat de signature Android n'est pas expiré | — |
android/cordova-vars-present | android | cordova.variables.gradle est présent après la synchronisation cap | — |
android/gradle-props-heuristics | android | Heuristiques de gradle.properties pour les ruptures de build courantes | — |
android/play-sa-json | android | Le fichier JSON de compte de service est présent lorsque configuré. | — |
android/flavor-exists | android | Le produit flavor demandé existe | — |
android/agp8-package-attr | android | L'attribut package du fichier Manifest est supprimé pour AGP 8+ | — |
android/manifest-well-formed | android | AndroidManifest.xml est analysé | — |
android/manifest-tag-typo | android | Typographes courants de balises de manifeste | — |
android/manifest-namespace-uri | android | La valeur de la balise xmlns:android est correcte | — |
android/manifest-missing-prefix | android | Les attributs Android utilisent la préfixe android: | — |
android/manifest-exported-missing | android | android:exported est défini là où cela est requis | — |
android/manifest-multiple-uses-sdk | android | Seul un élément uses-sdk est utilisé | — |
android/manifest-duplicate-component | android | Aucun composant n'est dupliqué | — |
android/manifest-unique-permission | android | Les permissions personnalisées sont uniques | — |
android/manifest-hardcoded-debuggable | android | debuggable=true n'est pas expédié | — |
android/manifest-mock-location | android | ACCESS_MOCK_LOCATION n'est pas expédié | — |
android/manifest-exported-unprotected | android | Les composants exportés sont protégés | — |
android/manifest-query-all-packages | android | Justification de QUERY_ALL_PACKAGES | — |
android/manifest-deeplink-valid | android | Les filtres d'intention deeplink semblent valides | — |
android/applicationid-present | android | L'identifiant d'application est déclaré dans app/build.gradle | — |
android/capacitor-build-gradle-applied | android | Le fichier capacitor.build.gradle existe lors de l'application. | — |
android/gradle-wrapper-present | android | Les fichiers de wrapper Gradle sont présents | — |
android/flavor-dimensions | android | Les dimensions de saveur sont déclarées lorsque des saveurs existent | — |
android/google-services-file | android | google-services.json présent lors de l'application du plugin | — |
android/local-properties-committed | android | local.properties n'est pas commit avec des secrets | — |
android/sdk-floors | android | les min/compile/target SDK étages semblent valides | — |
android/target-sdk-play | android | targetSdk répond aux exigences de Play | — |
android/min-sdk-capacitor | android | minSdk répond aux exigences de Capacitor | — |
android/version-fields | android | versionCode / versionName sont présents | — |
android/play-sa-access | android | le compte de service Play peut accéder à l'application (distante) | — |
Exemple : shell Next.js distant / URL serveur shell
Section intitulée « Exemple : shell Next.js distant / URL serveur shell »Envoyer un shell natif qui charge une production server.url C'est un modèle Capacitor pris en charge. Drapeaux de prescan ios/capacitor-server-url-shipped car il s'agit souvent d'un résidu de live-reload.
Le reconnaître sans désactiver d'autres vérifications :
npx @capgo/cli@latest build request <appId> --platform ios \ --prescan-skip ios/capacitor-server-url-shippedOu garder la visibilité comme un avertissement :
npx @capgo/cli@latest build request <appId> --platform ios \ --prescan-warn ios/capacitor-server-url-shipped