コンテンツにジャンプ

ビルドの前スキャン チェック

Cloud Buildがプロジェクトをアップロードする前に、Capgoは、CLIがローカルで prescan 単独で実行されます:

ターミナルウィンドウ

コピー
npx @capgo/cli@latest build prescan <appId> --platform ios

特定のチェックを無視する 80 「特定のチェックを無視する」のセクション

「特定のチェックを無視する」

「特定のチェックを無視する」のセクション
コピー
# 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 on build prescan)オン
--fail-on-warningsスキャン実行、レポート出力、ブロックしない

--no-prescan and --prescan-ignore-fatal そして 非表示または回避 すべて

残りのチェック。1 つのルールに異議を唱える場合のみ、チェックごとにオーバーライドを使用すること。

「カタログの確認」

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

段階的な強制 意味するのは、発見は情報のみである場合、 2026-08-14 それから、ビルドをブロックできます。

IDプラットフォームチェックするもの段階的な強制
shared/apikey-permissionios、androidAPIキーはネイティブビルドを要求できます。—
shared/app-existsiOS、AndroidApp IDが存在し、APIキーに表示されます。—
shared/credentials-savediOS、Androidローカルに保存されている必要なiOS/Androidの資格情報があります。—
shared/cap-sync-staleiOS、AndroidWebアセットがビルドされ、Capacitorプラグインが同期されます。—
shared/node-linker-layoutiOS、Androidnode_modulesレイアウトはCapacitorネイティブパスと互換性があります。—
shared/bundle-id-consistencyiOS、AndroidCapacitorApp 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プロファイルのタイプがアプリストア / ad_hoc モードと一致します。—
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-complianceiOSITSAppUsesNonExemptEncryptionは宣言されていますはい
ios/plist-ats-arbitrary-loadsiOS生産環境では NSAllowsArbitraryLoads が有効になっていませんはい
ios/plist-launch-storyboardiOS起動画面が宣言されていますはい
ios/plist-orientations-multitaskingiOSオrientation / マルチタスク設定が一致していますはい
ios/plist-orientations-presentiOSUISupportedInterfaceOrientations が宣言されていますはい
ios/plist-display-nameiOS表示名は設定されていますはい
ios/plist-background-modes-sanityiOSUIBackgroundModesの値は有効ですはい
ios/xcode-deployment-target-capacitoriOSCapacitorの要件を満たすiOSのデプロイメントターゲットはい
ios/xcode-signing-teamiOS署名チームが設定されていますはい
ios/xcode-bundle-id-mismatch-across-configsiOSバンドルIDはXcodeの設定で一貫しているはい
ios/xcode-enable-bitcode-leftoveriOSENABLE_BITCODEの残りは削除されるはい
ios/xcode-swift-version-sanityiOSSwiftのバージョン設定は正常はい
ios/xcode-no-app-targetiOSXcodeプロジェクトにはアプリケーション目標があるはい
ios/xcode-multiple-app-targetsiOS複数のアプリターゲットは意図的に処理されますはい
ios/entitlements-vs-profile-capabilityiOSエンタイトルメントはプロファイルの機能と一致していますはい
ios/entitlements-aps-environment-vs-modeiOSaps環境は配布モードと一致していますはい
ios/entitlements-associated-domains-formatiOS関連するドメインのフォーマットは有効ですはい
ios/entitlements-app-groups-formatiOSApp Groups形式は有効ですはい
ios/capacitor-server-url-shippediOSストアビルド用にリモートシェルエンドポイントとして残したserver.urlは無効ですはい
ios/capacitor-server-cleartextiOSserver.cleartextはプロダクション環境では有効ではありませんはい
ios/capacitor-allow-navigation-wildcardiOSserver.allowNavigationは全面的なワイルドカードではありませんはい
ios/pods-not-installediOSCocoaPodsのPods/ワークスペースは、Podsを使用する場合に存在しますはい
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-missingiOSディスク上のContents.jsonアイコンファイルが存在するはい
ios/appicon-marketing-missingiOS1024×1024のマーケティングアイコンが存在するYes
ios/spm-deployment-target-consistencyiOSSPMのデプロイ対象は一貫しているYes

Android

Android
IDプラットフォームチェックするもの段階的強制
android/keystore-opensandroidAndroidのキーストアは提供されたパスワードで開く—
android/keystore-expiryAndroidAndroid署名証明書は有効期限内です—
android/cordova-vars-presentAndroidCordova.variables.gradleはCapgo Sync後も存在します—
android/gradle-props-heuristicsAndroidGradleプロパティの一般的なビルドのトラブルのためのヒューリスティクス—
android/play-sa-jsonAndroidPlayサービスアカウントのJSONは設定された場合に存在します—
android/flavor-existsAndroid要求された製品フラバーが存在します—
android/agp8-package-attrAndroidManifestパッケージ=属性は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-sdkAndroiduses-sdk要素は1つだけ—
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-validAndroidDeeplink インテントフィルタは有効—
android/applicationid-presentAndroidアプリケーションIDはapp/build.gradleで宣言されている—
android/capacitor-build-gradle-appliedAndroidcapacitor.build.gradleが適用されたときに存在する—
android/gradle-wrapper-presentAndroidGradle ラッパーファイルが存在する—
android/flavor-dimensionsAndroidフラビアーディメンションはフラビアーの場合に宣言されている—
android/google-services-fileAndroidgoogle-services.jsonはプラグインが適用されたときに存在する—
android/local-properties-committedAndroidlocal.propertiesにシークレットが含まれていることはない—
android/sdk-floorsAndroidmin/compile/target SDK フロアは正常に表示される—
android/target-sdk-playAndroidtargetSdkはPlayの要件を満たしている—
android/min-sdk-capacitorAndroidminSdkはCapacitorの要件を満たしている—
android/version-fieldsAndroidversionCode / versionNameは存在する—
android/play-sa-accessAndroidPlayサービスアカウントはアプリにアクセスできる(リモート)—

例:リモート Next.js / server.url shell

例:リモート Next.js / server.url shell

生産用のシェルをロードするネイティブシェルの配信はサポートされています。 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
関連