Skip to content

ビルドのプレースキャン チェック

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)警告を致命的なものとして扱う (CI)
--fail-on-warningsそして

--no-prescan 非表示または回避 --prescan-ignore-fatal すべて 残りのチェック。1 つのルールに異議を唱える場合のみ、各チェックのオーバーライドを使用すること。 and

正確なIDを使用します。 --prescan-skip / --prescan-warn.

段階的に強制 「情報のみ」であることを意味します。つまり、検出は情報のみであり、ビルドをブロックすることはありません。 2026-08-14、するとビルドをブロックできます。

IDプラットフォームチェックするもの段階的に強制
shared/apikey-permissioniOS、AndroidAPI キーはネイティブ ビルドを要求できます
shared/app-existsiOS、AndroidAPI キーがアプリ 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 アプリ ID はネイティブ バンドル ID / アプリケーション ID と一致します

iOS

iOS
IDプラットフォームチェックするもの段階的に強制
ios/p12-opensiOSiOSの.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非特例暗号化を使用しているアプリが宣言されているはい
ios/plist-ats-arbitrary-loadsios生産環境では NSAllowsArbitraryLoads が有効になっていませんはい
ios/plist-launch-storyboardios起動画面が宣言されているはい
ios/plist-orientations-multitaskingiosオリエンテーション/マルチタスク設定が一致していますはい
ios/plist-orientations-presentiosUISupportedInterfaceOrientationsは宣言されていますはい
ios/plist-display-nameios表示名が設定されていますはい
ios/plist-background-modes-sanityiosUIBackgroundModesの値は有効ですはい
ios/xcode-deployment-target-capacitoriosiOSのデプロイメントターゲットはCapacitorの要件を満たしていますはい
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関連するドメインのフォーマットは有効です。はい
ios/entitlements-app-groups-formatiosApp Groupsフォーマットは有効です。はい
ios/capacitor-server-url-shippediosserver.urlはストアビルド用のライブリロード/リモートシェルエンドポイントとして残しておけない。はい
ios/capacitor-server-cleartextiosserver.cleartextは生産用途では有効になっていません。はい
ios/capacitor-allow-navigation-wildcardiosサーバーが移動を許可することは、全面的なワイルドカードではありません。はい
ios/pods-not-installediOSCocoaPodsのPods / ワークスペースは、Podsを使用する場合に存在します。はい
ios/pods-lock-missingiOSPodfile.lockはpodのバージョンを固定しています。はい
ios/pods-capacitor-missingiOSCapacitorをPodfileでワイヤーします。はい
ios/spm-package-resolved-missingiOSSPMパッケージ.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のデプロイ先は一貫していますはい
IDプラットフォームチェックするもの段階的な強制
android/keystore-opensAndroidAndroid キーストアは提供されたパスワードで開きます
android/keystore-expiry__CAPGO_KEEP_0__Android の署名証明書は有効期限内です
android/cordova-vars-present__CAPGO_KEEP_0__cordova.variables.gradle は cap sync 後に存在します
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__AGP 8+でManifestパッケージ属性が削除されました。
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-sdkAndroid1つの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アンドロイドDeep Link インテントフィルタが有効なようです
android/applicationid-presentアンドロイドアプリケーションIDはapp/build.gradleで宣言されています
android/capacitor-build-gradle-appliedアンドロイドcapacitor.build.gradleが適用されたときに存在します
android/gradle-wrapper-presentアンドロイドGradleワッパーファイルが存在します
android/flavor-dimensionsアンドロイドフラバーの次元が存在するときに宣言されています
android/google-services-fileアンドロイドgoogle-services.json がプラグイン適用時に存在します
android/local-properties-committedAndroidlocal.properties に秘密情報が含まれていることはコミットされません
android/sdk-floorsAndroidSDK の最小/コンパイル/ターゲットフロアが正常に表示されます
android/target-sdk-playAndroidターゲットSDKがPlayの要件を満たしています
android/min-sdk-capacitorAndroidminSdkがCapacitorの要件を満たしています
android/version-fieldsAndroidversionCode / versionName が存在しています
android/play-sa-accessAndroidサービスアカウントはアプリにアクセスできます (remote)

生産用のシェルをロードするためにネイティブシェルを配信することはサポートされています server.url Capacitor パターンは、しばしばライブリロードの残骸であるため、プリスキャンフラグになります。 ios/capacitor-server-url-shipped 他のチェックを無効にしないようにしてください:

ターミナルウィンドウ

コピー
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