ビルドの前スキャン チェック
このプラグインのインストール手順と完全なマークダウンガイドを含む設定プロンプトをコピーする
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-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-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-permission | ios、android | APIキーはネイティブビルドを要求できます。 | — |
shared/app-exists | iOS、Android | App IDが存在し、APIキーに表示されます。 | — |
shared/credentials-saved | iOS、Android | ローカルに保存されている必要なiOS/Androidの資格情報があります。 | — |
shared/cap-sync-stale | iOS、Android | Webアセットがビルドされ、Capacitorプラグインが同期されます。 | — |
shared/node-linker-layout | iOS、Android | node_modulesレイアウトはCapacitorネイティブパスと互換性があります。 | — |
shared/bundle-id-consistency | iOS、Android | CapacitorApp IDはネイティブバンドルID/アプリケーションIDと一致します。 | — |
iOS
iOS| ID | プラットフォーム | チェックするもの | 段階的強制 |
|---|---|---|---|
ios/p12-opens | iOS | iOSの.p12ファイルは指定されたパスワードで開きます | — |
ios/p12-expiry | iOS | iOSの署名証明書は期限切れではありません | — |
ios/profile-expiry | iOS | プロビジョニングプロファイルは期限切れではありません | — |
ios/profile-bundle-match | iOS | アプリケーションプロビジョニングプロファイルのバンドルIDがアプリケーションと一致します。 | — |
ios/profile-type-vs-mode | iOS | プロファイルのタイプがアプリストア / ad_hoc モードと一致します。 | — |
ios/cert-profile-pairing | iOS | プロビジョニングプロファイルに証明書が埋め込まれています。 | — |
ios/targets-covered | iOS | すべてのiOSターゲットにプロビジョニングプロファイルが存在します。 | — |
ios/infoplist-sanity | iOS | Info.plistには必要なバージョン / アイデンティティキーが含まれています。 | — |
ios/asc-key-valid | iOS | App Store Connect API キーフィールドが有効です。 | — |
ios/asc-key-access | iOS | ASC API キーでアプリにアクセスできます (リモート) | — |
ios/plist-bundle-id-format | iOS | CFBundleIdentifier形式は有効です | はい |
ios/plist-version-short-format | iOS | CFBundleShortVersionString形式は有効です | はい |
ios/plist-version-build-format | iOS | CFBundleVersion形式は有効です | はい |
ios/plist-encryption-compliance | iOS | ITSAppUsesNonExemptEncryptionは宣言されています | はい |
ios/plist-ats-arbitrary-loads | iOS | 生産環境では NSAllowsArbitraryLoads が有効になっていません | はい |
ios/plist-launch-storyboard | iOS | 起動画面が宣言されています | はい |
ios/plist-orientations-multitasking | iOS | オrientation / マルチタスク設定が一致しています | はい |
ios/plist-orientations-present | iOS | UISupportedInterfaceOrientations が宣言されています | はい |
ios/plist-display-name | iOS | 表示名は設定されています | はい |
ios/plist-background-modes-sanity | iOS | UIBackgroundModesの値は有効です | はい |
ios/xcode-deployment-target-capacitor | iOS | Capacitorの要件を満たすiOSのデプロイメントターゲット | はい |
ios/xcode-signing-team | iOS | 署名チームが設定されています | はい |
ios/xcode-bundle-id-mismatch-across-configs | iOS | バンドルIDはXcodeの設定で一貫している | はい |
ios/xcode-enable-bitcode-leftover | iOS | ENABLE_BITCODEの残りは削除される | はい |
ios/xcode-swift-version-sanity | iOS | Swiftのバージョン設定は正常 | はい |
ios/xcode-no-app-target | iOS | Xcodeプロジェクトにはアプリケーション目標がある | はい |
ios/xcode-multiple-app-targets | iOS | 複数のアプリターゲットは意図的に処理されます | はい |
ios/entitlements-vs-profile-capability | iOS | エンタイトルメントはプロファイルの機能と一致しています | はい |
ios/entitlements-aps-environment-vs-mode | iOS | aps環境は配布モードと一致しています | はい |
ios/entitlements-associated-domains-format | iOS | 関連するドメインのフォーマットは有効です | はい |
ios/entitlements-app-groups-format | iOS | App Groups形式は有効です | はい |
ios/capacitor-server-url-shipped | iOS | ストアビルド用にリモートシェルエンドポイントとして残したserver.urlは無効です | はい |
ios/capacitor-server-cleartext | iOS | server.cleartextはプロダクション環境では有効ではありません | はい |
ios/capacitor-allow-navigation-wildcard | iOS | server.allowNavigationは全面的なワイルドカードではありません | はい |
ios/pods-not-installed | iOS | CocoaPodsのPods/ワークスペースは、Podsを使用する場合に存在します | はい |
ios/pods-lock-missing | iOS | Podfile.lockはPodのバージョンを固定しています | はい |
ios/pods-capacitor-missing | iOS | PodfileはCapacitorをワイヤーしています | はい |
ios/spm-package-resolved-missing | iOS | SPM Package.resolvedは存在します | はい |
ios/spm-capacitor-dependency-missing | iOS | Package.swiftではCapacitorが宣言されている | はい |
ios/appicon-empty-or-placeholder | iOS | AppIcon.appiconsetが存在し、空ではない | はい |
ios/appicon-referenced-file-missing | iOS | ディスク上のContents.jsonアイコンファイルが存在する | はい |
ios/appicon-marketing-missing | iOS | 1024×1024のマーケティングアイコンが存在する | Yes |
ios/spm-deployment-target-consistency | iOS | SPMのデプロイ対象は一貫している | Yes |
Android
Android| ID | プラットフォーム | チェックするもの | 段階的強制 |
|---|---|---|---|
android/keystore-opens | android | Androidのキーストアは提供されたパスワードで開く | — |
android/keystore-expiry | Android | Android署名証明書は有効期限内です | — |
android/cordova-vars-present | Android | Cordova.variables.gradleはCapgo Sync後も存在します | — |
android/gradle-props-heuristics | Android | Gradleプロパティの一般的なビルドのトラブルのためのヒューリスティクス | — |
android/play-sa-json | Android | PlayサービスアカウントのJSONは設定された場合に存在します | — |
android/flavor-exists | Android | 要求された製品フラバーが存在します | — |
android/agp8-package-attr | Android | Manifestパッケージ=属性はAGP 8以降削除されました | — |
android/manifest-well-formed | Android | AndroidManifest.xmlはパースされます | — |
android/manifest-tag-typo | Android | 共通のマニフェストタグのタイプミス | — |
android/manifest-namespace-uri | Android | xmlns:androidの名前空間URIは正しい | — |
android/manifest-missing-prefix | Android | Android属性はandroid:プレフィックスを使用します | — |
android/manifest-exported-missing | Android | android:exportedは必要な場合にのみ設定されます | — |
android/manifest-multiple-uses-sdk | Android | uses-sdk要素は1つだけ | — |
android/manifest-duplicate-component | Android | 重複コンポーネントなし | — |
android/manifest-unique-permission | Android | カスタムパーミッションは一意 | — |
android/manifest-hardcoded-debuggable | Android | debuggable=true には非配信 | — |
android/manifest-mock-location | Android | ACCESS_MOCK_LOCATION には非配信 | — |
android/manifest-exported-unprotected | Android | エクスポートされたコンポーネントは保護 | — |
android/manifest-query-all-packages | Android | QUERY_ALL_PACKAGES の正当化 | — |
android/manifest-deeplink-valid | Android | Deeplink インテントフィルタは有効 | — |
android/applicationid-present | Android | アプリケーションIDはapp/build.gradleで宣言されている | — |
android/capacitor-build-gradle-applied | Android | capacitor.build.gradleが適用されたときに存在する | — |
android/gradle-wrapper-present | Android | Gradle ラッパーファイルが存在する | — |
android/flavor-dimensions | Android | フラビアーディメンションはフラビアーの場合に宣言されている | — |
android/google-services-file | Android | google-services.jsonはプラグインが適用されたときに存在する | — |
android/local-properties-committed | Android | local.propertiesにシークレットが含まれていることはない | — |
android/sdk-floors | Android | min/compile/target SDK フロアは正常に表示される | — |
android/target-sdk-play | Android | targetSdkはPlayの要件を満たしている | — |
android/min-sdk-capacitor | Android | minSdkはCapacitorの要件を満たしている | — |
android/version-fields | Android | versionCode / versionNameは存在する | — |
android/play-sa-access | Android | Playサービスアカウントはアプリにアクセスできる(リモート) | — |
例:リモート 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