Verificar construcción de prescan
Copia un prompt de configuración con los pasos de instalación y la guía de markdown completa para este plugin.
Antes de que Capgo Cloud Build suba su proyecto, el CLI ejecuta un escaneo previo 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 independientes en modo de ejecución build prescan:
npx @capgo/cli@latest build prescan <appId> --platform ios \ --skip ios/capacitor-server-url-shipped \ --warn ios/capacitor-server-cleartextLos IDs de verificación desconocidos fallan rápidamente con un error claro.
Escapadas globales (utilízalas con moderación)
Sección titulada “Escapadas globales (utilízalas 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 saltar todos los controles restantes. Utiliza sobreescripciones por control en lugar de esto cuando solo estás en desacuerdo con una regla.
Ver catálogo
Título de la sección “Ver catálogo”Utilice el id exacto en --prescan-skip / --prescan-warn.
Aplicar gradualmente significa que el resultado es solo información hasta que 2026-08-14entonces puede bloquear la compilación.
Compartido
Título de la sección “Compartido”| Id | Plataformas | Qué verifica | Aplicar gradualmente |
|---|---|---|---|
shared/apikey-permission | ios, android | API key can request native builds | — |
shared/app-exists | ios, android | El id de la aplicación existe y es visible para la clave API | — |
shared/credentials-saved | ios, android | Los credenciales de iOS/Android necesarias se guardan localmente | — |
shared/cap-sync-stale | ios, android | Los activos web se construyen y se sincronizan los plugins Capacitor | — |
shared/node-linker-layout | ios, android | La estructura de node_modules funciona con los caminos nativos Capacitor | — |
shared/bundle-id-consistency | ios, android | El appId de Capacitor coincide con el id de paquete nativo / applicationId | — |
| 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 del perfil de configuración de proveedor 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 de proveedor | — |
ios/targets-covered | ios | Todos los objetivos de iOS tienen un perfil de configuración de proveedor | — |
ios/infoplist-sanity | ios | Info.plist tiene las 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 ASC API 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 | No se habilita NSAllowsArbitraryLoads para producción | Sí |
ios/plist-launch-storyboard | ios | Se declara pantalla de arranque | Sí |
ios/plist-orientations-multitasking | ios | Los ajustes de orientación / multitarea son consistentes | Sí |
ios/plist-orientations-present | ios | Se declara UISupportedInterfaceOrientations | Sí |
ios/plist-display-name | ios | Se ha establecido el nombre de visualización | 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 firmas 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 la 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 | Las entidades de permiso coinciden 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 | No se deja server.url como un punto de conexión de carga dinámica / consola remota para compilaciones de tienda | Sí |
ios/capacitor-server-cleartext | ios | No se habilita server.cleartext para producción | Sí |
ios/capacitor-allow-navigation-wildcard | ios | server.allowNavigation no es un wildcard general | Sí |
ios/pods-not-installed | ios | Los Pods CocoaPods / workspace están presentes cuando se utilizan Pods | Sí |
ios/pods-lock-missing | ios | El archivo Podfile.lock fija versiones de Pods | Sí |
ios/pods-capacitor-missing | ios | El archivo Podfile configura Capacitor | Sí |
ios/spm-package-resolved-missing | ios | El paquete SPM Package.resolved está presente | Sí |
ios/spm-capacitor-dependency-missing | iOS | Package.swift declara Capacitor | Sí |
ios/appicon-empty-or-placeholder | iOS | El archivo 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 | Icono de marketing de 1024×1024 existe | Sí |
ios/spm-deployment-target-consistency | iOS | El objetivo de despliegue de SPM es consistente | Sí |
| Id | Plataformas | ¿Qué verifica? | Aplicar de manera gradual |
|---|---|---|---|
android/keystore-opens | Android | El keystore de Android se abre con las contraseñas proporcionadas | — |
android/keystore-expiry | __CAPGO_KEEP_0__ | El certificado de firma de Android no ha expirado | — |
android/cordova-vars-present | __CAPGO_KEEP_0__ | Se encuentra el archivo cordova.variables.gradle después de sincronizar cap | — |
android/gradle-props-heuristics | __CAPGO_KEEP_0__ | Heurísticas de gradle.properties para problemas de compilación comunes | — |
android/play-sa-json | __CAPGO_KEEP_0__ | Se encuentra el archivo JSON de servicio de Play cuando está configurado | — |
android/flavor-exists | __CAPGO_KEEP_0__ | El producto de sabor solicitado existe | — |
android/agp8-package-attr | __CAPGO_KEEP_0__ | El paquete de manifiesto attribute= eliminado para AGP 8+ | — |
android/manifest-well-formed | android | Se parsea AndroidManifest.xml | — |
android/manifest-tag-typo | android | Tipos comunes de etiquetas de manifiesto | — |
android/manifest-namespace-uri | android | La URI de espacio de nombres android:android es 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 un elemento sdk se utiliza | — |
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 | No se envía ACCESS_MOCK_LOCATION | — |
android/manifest-exported-unprotected | android | Los componentes exportados están protegidos | — |
android/manifest-query-all-packages | android | QUERY_ALL_PACKAGES justificación | — |
android/manifest-deeplink-valid | android | Los intent-filters de deeplink parecen válidos | — |
android/applicationid-present | android | El applicationId se declara en app/build.gradle | — |
android/capacitor-build-gradle-applied | android | capacitor.build.gradle existe cuando se aplica | — |
android/gradle-wrapper-present | android | Los archivos de wrapper de Gradle están presentes | — |
android/flavor-dimensions | android | Las dimensiones de sabor se declaran cuando existen sabores | — |
android/google-services-file | android | google-services.json presente cuando se aplica el plugin | — |
android/local-properties-committed | android | local.properties no está comprometido con secretos | — |
android/sdk-floors | android | min/compile/target SDK pisos de compilación parecen válidos | — |
android/target-sdk-play | android | targetSdk cumple con los requisitos de Play | — |
android/min-sdk-capacitor | android | minSdk cumple con Capacitor requisitos | — |
android/version-fields | android | versionCode / versionName están presentes | — |
android/play-sa-access | android | La cuenta de servicio de Play puede acceder a la aplicación (remota) | — |
Ejemplo: shell de Next.js remoto / server.url
Sección titulada “Ejemplo: shell de Next.js remoto / server.url”Enviar una caja nativa que carga una producción server.url es un patrón Capacitor admitido. Las banderas de prescan ios/capacitor-server-url-shipped porque a menudo es un resto de live-reload en vivo.
Reconózcalo sin deshabilitar otras comprobaciones:
npx @capgo/cli@latest build request <appId> --platform ios \ --prescan-skip ios/capacitor-server-url-shippedO mantener la visibilidad como una advertencia:
npx @capgo/cli@latest build request <appId> --platform ios \ --prescan-warn ios/capacitor-server-url-shipped