__CAPGO_KEEP_1__

构建预扫描检查

在 Capgo Cloud Build 上传您的项目之前,CLI 运行一个 预扫描 它捕获本地的凭据、项目和存储配置问题。

它也可以独立运行:

终端窗口
npx @capgo/cli@latest build prescan <appId> --platform ios

80 检查今天。更倾向于忽略单个检查 ID 而不是关闭整个扫描。

终端窗口
# 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

独立别名开启 build prescan:

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

未知检查ID快速失败并显示明确的错误。

标志效果
--no-prescan跳过整个扫描
--prescan-ignore-fatal (或” --ignore-fatal 在” build prescan)运行扫描,打印报告,永不阻塞”
--fail-on-warnings将警告视为致命(CI)”,”

--no-prescan 并” --prescan-ignore-fatal 隐藏或绕过” 所有” 其余检查。使用每个检查的覆盖代替,当您只与一个规则不一致时。”

使用精确的id --prescan-skip / --prescan-warn.

逐步强制 表示发现仅为信息性,直到 2026-08-14然后它可以阻止构建。

id平台它检查什么逐步强制
shared/apikey-permissioniOS, AndroidAPI key 可以请求本机构建
shared/app-existsiOS, AndroidAPI key 可见的 App ID 存在
shared/credentials-savediOS, Android保存本地的 iOS/Android 凭证是必需的
shared/cap-sync-staleiOS, AndroidWeb 资产构建并且 Capacitor 插件同步
shared/node-linker-layoutiOS, Androidnode_modules 布局与 Capacitor 本机路径兼容
shared/bundle-id-consistencyiOS, AndroidCapacitor appId 与本机 bundle id / applicationId 匹配

iOS

iOS
Id平台检查项逐步强制
ios/p12-opensios使用提供的密码打开iOS .p12文件
ios/p12-expiryiosiOS签名证书未过期
ios/profile-expiryios未过期的分发配置文件
ios/profile-bundle-matchiOS分发配置文件的包id与应用匹配
ios/profile-type-vs-modeiOS配置文件类型与应用商店/广告模式匹配
ios/cert-profile-pairingiOS配置文件中包含证书
ios/targets-coverediOS所有iOS目标都有分发配置文件
ios/infoplist-sanityiOSInfo.plist包含所需的版本/身份键
ios/asc-key-validiOSApp Store Connect API 键字段看起来是有效的
ios/asc-key-accessiosASC API 可以访问应用程序(远程)
ios/plist-bundle-id-formatiosCFBundleIdentifier 格式有效
ios/plist-version-short-formatiosCFBundleShortVersionString 格式有效
ios/plist-version-build-formatiosCFBundleVersion 格式有效
ios/plist-encryption-complianceios是否声明了ITSAppUsesNonExemptEncryption
ios/plist-ats-arbitrary-loadsiosNSAllowsArbitraryLoads在生产环境中未启用
ios/plist-launch-storyboardios是否声明了启动屏幕
ios/plist-orientations-multitaskingios方向/多任务设置一致
ios/plist-orientations-presentios支持的界面方向是声明的
ios/plist-display-nameios显示名称已设置
ios/plist-background-modes-sanityiosUI后台模式值看起来是有效的
ios/xcode-deployment-target-capacitoriosCapacitor 的 iOS 部署目标满足要求
ios/xcode-signing-teamios签名团队已设置
ios/xcode-bundle-id-mismatch-across-configsiosXcode配置中Bundle id一致
ios/xcode-enable-bitcode-leftoveriosENABLE_BITCODE残余项已删除
ios/xcode-swift-version-sanityiosSwift版本设置看起来正常
ios/xcode-no-app-targetios__CAPGO_KEEP_0__项目有一个应用程序目标
ios/xcode-multiple-app-targetsios__CAPGO_KEEP_0__项目有多个应用程序目标是有意为之
ios/entitlements-vs-profile-capabilityios__CAPGO_KEEP_0__项目的特权与配置文件能力匹配
ios/entitlements-aps-environment-vs-modeios__CAPGO_KEEP_0__aps环境与发布模式匹配
ios/entitlements-associated-domains-formatios域名格式为 Associated Domains 格式有效
ios/entitlements-app-groups-formatiosApp Groups 格式为有效
ios/capacitor-server-url-shippediosserver.url 不应留作 live-reload 或远程 shell 端点用于商店构建
ios/capacitor-server-cleartextiosserver.cleartext 不应在生产环境下启用
ios/capacitor-allow-navigation-wildcardiosserver.allowNavigation 不是通用允许导航
ios/pods-not-installediOS使用 Pods 时,CocoaPods Pods / workspace 将会出现
ios/pods-lock-missingiOSPodfile.lock 将会锁定 pod 版本
ios/pods-capacitor-missingiOSPodfile 将会连接 Capacitor
ios/spm-package-resolved-missingiOSSPM Package.resolved存在
ios/spm-capacitor-dependency-missingiosPackage.swift声明了Capacitor
ios/appicon-empty-or-placeholderiosAppIcon.appiconset存在且不为空
ios/appicon-referenced-file-missingiosContents.json图标文件存在于磁盘上
ios/appicon-marketing-missingios1024×1024的营销图标存在
ios/spm-deployment-target-consistencyiOSSPM的部署目标一致

Android

ID
平台它检查什么逐渐强制Android
android/keystore-opensandroidAndroid.keystore使用提供的密码打开
android/keystore-expiry__CAPGO_KEEP_0__Android签名证书未过期
android/cordova-vars-present__CAPGO_KEEP_0__cordova.variables.gradle存在于cap同步后
android/gradle-props-heuristics__CAPGO_KEEP_0__Gradle属性的常见构建问题
android/play-sa-json__CAPGO_KEEP_0__Play服务帐户JSON存在于配置时
android/flavor-exists__CAPGO_KEEP_0__请求的产品风味存在
android/agp8-package-attr__CAPGO_KEEP_0__Manifest package= 属性已在 AGP 8+ 中移除
android/manifest-well-formedandroidAndroidManifest.xml 解析
android/manifest-tag-typoandroid常见的清单标签错误
android/manifest-namespace-uriandroidxmlns:android 命名空间 URI 正确
android/manifest-missing-prefixandroidAndroid 属性使用 android: 前缀
android/manifest-exported-missingandroidandroid:exported 在需要时设置
android/manifest-multiple-uses-sdkandroid仅允许一个使用sdk元素
android/manifest-duplicate-componentandroid不允许重复组件
android/manifest-unique-permissionandroid自定义权限是独特的
android/manifest-hardcoded-debuggableandroiddebuggable=true 不会被发布
android/manifest-mock-locationandroidACCESS_MOCK_LOCATION 不会被发布
android/manifest-exported-unprotectedandroid导出的组件是受保护的
android/manifest-query-all-packagesandroidQUERY_ALL_PACKAGES 说明
android/manifest-deeplink-valid安卓深度链接意图过滤器看起来有效
android/applicationid-present安卓在 app/build.gradle 中声明了 applicationId
android/capacitor-build-gradle-applied安卓capacitor.build.gradle 存在于应用中
android/gradle-wrapper-present安卓存在 Gradle 包装文件
android/flavor-dimensions安卓存在多个口味维度
android/google-services-file安卓Google 服务文件存在于插件应用时
android/local-properties-committedAndroid本地 properties 文件不包含敏感信息
android/sdk-floorsAndroidSDK 最小/编译/目标楼层看起来有效
android/target-sdk-playAndroid目标 SDK 满足 Play 要求
android/min-sdk-capacitorAndroid最小 SDK 满足 Capacitor 要求
android/version-fieldsAndroidversionCode / versionName 存在
android/play-sa-accessAndroidPlay 服务账户可以访问应用 (远程)

示例:远程 Next.js / server.url shell

标题:示例:远程 Next.js / server.url shell

将一个本地 shell 加载到生产环境中 server.url 这是一个支持的 Capacitor 模式。 Prescan flags ios/capacitor-server-url-shipped 因为它经常是 live-reload 的遗留问题。

确认它而不禁用其他检查:

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

或保持它作为一个警告:

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