Realizar comprobaciones de prescan
Copie un prompt de configuración con los pasos de instalación y la guía de markdown completa para este plugin.
Antes de Capgo Cloud Build sube su proyecto, el CLI ejecuta un prescan que detecta problemas de credenciales, proyectos y configuración de almacenamiento localmente.
También se ejecuta de forma independiente:
npx @capgo/cli@latest build prescan <appId> --platform iosHay 80 verificaciones hoy. Es preferible ignorar IDs de verificación individuales en lugar de desactivar la escaneo completo.
Ignorar verificaciones específicas
Sección titulada “Ignorar verificaciones específicas”# 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 de pie de página habilitado build prescan:
npx @capgo/cli@latest build prescan <appId> --platform ios \ --skip ios/capacitor-server-url-shipped \ --warn ios/capacitor-server-cleartextLos identificadores de verificación desconocidos fallan rápidamente con un error claro.
Escape global (utilízalo con moderación)
Sección titulada “Escape global (utilízalo con moderación)”| Bandera | Efecto |
|---|---|
--no-prescan | Saltar la escaneo completo |
--prescan-ignore-fatal (o --ignore-fatal en build prescan) | Ejecutar escaneo, imprimir informe, nunca bloquear |
--fail-on-warnings | Tratar advertencias como fatales (CI) |
--no-prescan y --prescan-ignore-fatal ocultar o bypassar todos verificaciones restantes. Utilice sobrescripciones por verificación en lugar de cuando solo discrepe con una regla.
Verificar catálogo
Sección titulada “Ver catálogo”Utilice el id exacto en --prescan-skip / --prescan-warn.
Aplicar gradualmente significa que la búsqueda es información hasta que 2026-08-14 , luego puede bloquear los builds.
Compartido
Sección titulada “Compartido”| Id | Plataformas | Qué verifica | Aplicar gradualmente |
|---|---|---|---|
shared/apikey-permission | ios, android | La clave API puede solicitar compilaciones nativas | — |
shared/app-exists | ios, android | El identificador de la aplicación existe y es visible para la clave API | — |
shared/credentials-saved | ios, android | Se almacenan localmente las credenciales de iOS/Android obligatorias | — |
shared/cap-sync-stale | ios, android | Se construyen activos web y se sincronizan plugins Capacitor | — |
shared/node-linker-layout | ios, android | La estructura de node_modules funciona con rutas nativas Capacitor | — |
shared/bundle-id-consistency | ios, android | La clave Capacitor appId coincide con el identificador de paquete nativo / aplicaciónId | — |
| Id | Plataformas | ¿Qué verifica? | Aplicar gradualmente |
|---|---|---|---|
ios/p12-opens | ios | El archivo .p12 de iOS se abre con la contraseña proporcionada | — |
ios/p12-expiry | ios | El certificado de firma de iOS no ha expirado | — |
ios/profile-expiry | ios | El perfil de configuración de iOS no ha expirado | — |
ios/profile-bundle-match | ios | El identificador de paquete de perfil de configuración coincide con la aplicación | — |
ios/profile-type-vs-mode | ios | El tipo de perfil coincide con el modo app_store / ad_hoc | — |
ios/cert-profile-pairing | ios | El certificado está integrado en el perfil de configuración | — |
ios/targets-covered | ios | Todos los objetivos de iOS tienen un perfil de configuración | — |
ios/infoplist-sanity | ios | Info.plist tiene claves de versión / identidad requeridas | — |
ios/asc-key-valid | ios | Los campos de la clave API de App Store Connect parecen válidos | — |
ios/asc-key-access | ios | La clave API ASC puede acceder a la aplicación (remota) | — |
ios/plist-bundle-id-format | ios | El formato de CFBundleIdentifier es válido | Sí |
ios/plist-version-short-format | ios | El formato de CFBundleShortVersionString es válido | Sí |
ios/plist-version-build-format | ios | El formato de CFBundleVersion es válido | Sí |
ios/plist-encryption-compliance | ios | Se declara ITSAppUsesNonExemptEncryption | Sí |
ios/plist-ats-arbitrary-loads | ios | NSAllowsArbitraryLoads no está habilitado para producción | Sí |
ios/plist-launch-storyboard | ios | La pantalla de arranque está declarada | Sí |
ios/plist-orientations-multitasking | ios | Los ajustes de orientación / multitasking son consistentes | Sí |
ios/plist-orientations-present | ios | UISupportedInterfaceOrientations está declarada | Sí |
ios/plist-display-name | ios | El nombre de la interfaz de usuario está configurado | Sí |
ios/plist-background-modes-sanity | ios | Los valores de UIBackgroundModes parecen válidos | Sí |
ios/xcode-deployment-target-capacitor | ios | El objetivo de despliegue de iOS cumple con los requisitos de Capacitor | Sí |
ios/xcode-signing-team | ios | El equipo de firma está configurado | Sí |
ios/xcode-bundle-id-mismatch-across-configs | ios | El identificador de paquete es consistente en las configuraciones de Xcode | Sí |
ios/xcode-enable-bitcode-leftover | ios | Se elimina el resto de ENABLE_BITCODE | Sí |
ios/xcode-swift-version-sanity | ios | La configuración de versión de Swift parece razonable | Sí |
ios/xcode-no-app-target | ios | El proyecto de Xcode tiene un objetivo de aplicación | Sí |
ios/xcode-multiple-app-targets | ios | Se manejan intencionalmente varios objetivos de aplicación | Sí |
ios/entitlements-vs-profile-capability | ios | Coinciden las entidades con las capacidades del perfil | Sí |
ios/entitlements-aps-environment-vs-mode | ios | aps-environment coincide con el modo de distribución | Sí |
ios/entitlements-associated-domains-format | ios | El formato de Dominios asociados es válido | Sí |
ios/entitlements-app-groups-format | ios | El formato de App Groups es válido | Sí |
ios/capacitor-server-url-shipped | ios | server.url no se deja como un punto de conexión de reinicio remoto / consola para compilaciones de tienda | Sí |
ios/capacitor-server-cleartext | ios | server.cleartext no está habilitado para producción | Sí |
ios/capacitor-allow-navigation-wildcard | ios | server.allowNavigation no es un wildcard general | Sí |
ios/pods-not-installed | ios | Los CocoaPods Pods / workspace están presentes cuando se utilizan Pods | Sí |
ios/pods-lock-missing | ios | El Podfile.lock pincha versiones de pod | Sí |
ios/pods-capacitor-missing | ios | El Podfile conecta Capacitor | Sí |
ios/spm-package-resolved-missing | ios | El Package.resolved de SPM está presente | Sí |
ios/spm-capacitor-dependency-missing | ios | Package.swift declara Capacitor | Sí |
ios/appicon-empty-or-placeholder | ios | AppIcon.appiconset existe y no está vacío | Sí |
ios/appicon-referenced-file-missing | ios | Los archivos de icono de Contents.json existen en disco | Sí |
ios/appicon-marketing-missing | ios | El icono de marketing de 1024×1024 existe | Sí |
ios/spm-deployment-target-consistency | ios | El objetivo de despliegue de SPM es consistente | Sí |
Android
Sección titulada “Android”| Id | Plataformas | ¿Qué verifica? | Aplicar gradualmente |
|---|---|---|---|
android/keystore-opens | android | El keystore de Android se abre con las contraseñas proporcionadas | — |
android/keystore-expiry | android | El certificado de firma Android no ha expirado | — |
android/cordova-vars-present | android | Se encuentra presente cordova.variables.gradle después de sincronizar cap | — |
android/gradle-props-heuristics | android | Heurísticas de gradle.properties para problemas de compilación comunes | — |
android/play-sa-json | android | Se encuentra presente el archivo JSON de servicio de Play cuando está configurado | — |
android/flavor-exists | android | Existe el producto flavor solicitado | — |
android/agp8-package-attr | android | Se ha eliminado el atributo de paquete del archivo Manifest para AGP 8+ | — |
android/manifest-well-formed | android | AndroidManifest.xml parsea | — |
android/manifest-tag-typo | android | Tipos de etiquetas de manifest comunes | — |
android/manifest-namespace-uri | android | La URI de namespace xmlns:android está correcta | — |
android/manifest-missing-prefix | android | Las atributos de Android utilizan la prefija android: | — |
android/manifest-exported-missing | android | Se establece android:exported donde es necesario | — |
android/manifest-multiple-uses-sdk | android | Solo se utiliza un elemento uses-sdk | — |
android/manifest-duplicate-component | android | No hay componentes duplicados | — |
android/manifest-unique-permission | android | Las permisos personalizados son únicos | — |
android/manifest-hardcoded-debuggable | android | debuggable=true no se envía | — |
android/manifest-mock-location | android | ACCESS_MOCK_LOCATION no se envía | — |
android/manifest-exported-unprotected | android | Los componentes exportados están protegidos | — |
android/manifest-query-all-packages | android | La justificación de QUERY_ALL_PACKAGES | — |
android/manifest-deeplink-valid | android | Los filtros de intención de Deeplink parecen válidos | — |
android/applicationid-present | android | El identificador de la aplicación se declara en app/build.gradle | — |
android/capacitor-build-gradle-applied | android | capacitor.build.gradle existe cuando se aplica | — |
android/gradle-wrapper-present | android | Están presentes los archivos del wrapper de Gradle | — |
android/flavor-dimensions | android | Se declaran dimensiones de sabores cuando existen sabores | — |
android/google-services-file | android | Está presente google-services.json cuando se aplica el plugin | — |
android/local-properties-committed | android | Las propiedades locales no se han comprometido con secretos | — |
android/sdk-floors | android | Las min/compilación de la plataforma objetivo SDK parece válida | — |
android/target-sdk-play | android | La plataforma objetivo cumple con los requisitos de Play | — |
android/min-sdk-capacitor | android | La plataforma mínima cumple con los requisitos de Capacitor | — |
android/version-fields | android | Están presentes el código de versión y el nombre de la versión | — |
android/play-sa-access | android | El servicio de Play puede acceder a la aplicación (remoto) | — |
Example: terminal de Next.js remoto / shell de servidor
Sección titulada “Example: terminal de Next.js remoto / shell de servidor”Enviar un shell nativo que carga una producción server.url es un patrón de Capacitor admitido. Se prescan flags ios/capacitor-server-url-shipped porque a menudo es un resto de live-reload.
Reconozca sin deshabilitar otras comprobaciones:
npx @capgo/cli@latest build request <appId> --platform ios \ --prescan-skip ios/capacitor-server-url-shippedO mantener la visibilidad como advertencia:
npx @capgo/cli@latest build request <appId> --platform ios \ --prescan-warn ios/capacitor-server-url-shipped