Ke Menu Utama

Konfigurasi prescan build

Sebelum Capgo Cloud Build mengunggah proyek Anda, CLI menjalankan prescan Mengenali masalah kredit, proyek, dan konfigurasi toko secara lokal.

Juga menjalankan secara mandiri:

Jendela terminal
npx @capgo/cli@latest build prescan <appId> --platform ios

Ada 80 pemeriksaan hari ini. Lebih baik mengabaikan ID pemeriksaan individu daripada mematikan pemeriksaan secara keseluruhan.

Jendela terminal
# 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

Alias mandiri pada build prescan:

Jendela terminal
npx @capgo/cli@latest build prescan <appId> --platform ios \
--skip ios/capacitor-server-url-shipped \
--warn ios/capacitor-server-cleartext

ID cek tidak diketahui gagal dengan pesan kesalahan yang jelas.

Keluaran Global (Gunakan dengan Bijak)

Penggunaan global (gunakan dengan hati-hati)
FlagBendera
--no-prescanDampaknya adalah โ€˜Lepaskan sken seluruhnyaโ€™
--prescan-ignore-fatal atau --ignore-fatal di build prescan)Run scan, print report, never block
--fail-on-warningsAnggap peringatan sebagai fatal (CI)

--no-prescan dan --prescan-ignore-fatal sembunyikan atau lewati semua periksa yang tersisa. Gunakan pengaturan per-periksaan jika Anda hanya tidak setuju dengan satu aturan.

Pakai id yang tepat di --prescan-skip / --prescan-warn.

Mengaktifkan secara bertahap berarti temuan adalah informasi saja sampai 2026-08-14, kemudian dapat menghambat pembangunan.

IdPlatformApa yang dicekMenyeluruhkan pelaksanaan
shared/apikey-permissioniOS, AndroidKunci API dapat meminta bangun nativeโ€”
shared/app-existsiOS, AndroidId aplikasi ada dan terlihat oleh kunci APIโ€”
shared/credentials-savedIOS, AndroidKredensial iOS/Android yang diperlukan disimpan secara lokalโ€”
shared/cap-sync-staleIOS, AndroidAsset web dibangun dan Capacitor plugin disinkronkanโ€”
shared/node-linker-layoutIOS, AndroidStruktur node_modules berfungsi dengan Capacitor jalur nativeโ€”
shared/bundle-id-consistencyIOS, AndroidID aplikasi Capacitor sesuai dengan ID paket native / ID aplikasiโ€”
IDPlatformApa yang diperiksaMenggunakan penegakan secara bertahap
ios/p12-opensiOSiOS .p12 dibuka dengan kata sandi yang disediakanโ€”
ios/p12-expiryiOSSertifikat tanda tangan iOS tidak kedaluwarsaโ€”
ios/profile-expiryiOSProfil pengaturan tidak kedaluwarsaโ€”
ios/profile-bundle-matchiOSID bundle profil pengaturan sesuai dengan aplikasiโ€”
ios/profile-type-vs-modeiOSJenis profil sesuai dengan mode app_store / ad_hocโ€”
ios/cert-profile-pairingiOSSertifikat terintegrasi dalam profil pengaturanโ€”
ios/targets-coverediOSSemua target iOS memiliki profil pengaturanโ€”
ios/infoplist-sanityiOSInfo.plist memiliki kunci versi / identitas yang diperlukanโ€”
ios/asc-key-validiOSKunci ASC API untuk App Store Connect terlihat validโ€”
ios/asc-key-accessiOSKunci ASC API dapat mengakses aplikasi (remote)โ€”
ios/plist-bundle-id-formatiOSFormat CFBundleIdentifier validYa
ios/plist-version-short-formatiosFormat CFBundleShortVersionString validYa
ios/plist-version-build-formatiosFormat CFBundleVersion validYa
ios/plist-encryption-complianceiosITSAppUsesNonExemptEncryption telah dideklarasikanYa
ios/plist-ats-arbitrary-loadsiosNSAllowsArbitraryLoads tidak diaktifkan untuk produksiYa
ios/plist-launch-storyboardiOSScreen peluncuran telah dideklarasikanYa
ios/plist-orientations-multitaskingiOSPengaturan orientasi / multitasking konsistenYa
ios/plist-orientations-presentiOSUISupportedInterfaceOrientations telah dideklarasikanYa
ios/plist-display-nameiOSNama tampilan telah ditetapkanYes
ios/plist-background-modes-sanityIOSNilai UIBackgroundModes tampak validYes
ios/xcode-deployment-target-capacitorIOSTarget penginstalan iOS memenuhi persyaratan CapacitorYes
ios/xcode-signing-teamIOSTim signing sudah ditetapkanYes
ios/xcode-bundle-id-mismatch-across-configsIOSID paket konsisten di konfigurasi XcodeYa
ios/xcode-enable-bitcode-leftoveriOSDitinggalkan ENABLE_BITCODEYa
ios/xcode-swift-version-sanityiOSPengaturan versi Swift terlihat normalYa
ios/xcode-no-app-targetiOSProject Xcode memiliki target aplikasiYa
ios/xcode-multiple-app-targetsiOSDitangani secara sengaja beberapa target aplikasiYa
ios/entitlements-vs-profile-capabilityiOSEntitlements sesuai dengan kemampuan profilYa
ios/entitlements-aps-environment-vs-modeiOSaps-environment sesuai dengan mode distribusiYa
ios/entitlements-associated-domains-formatiOSFormat Domain Asosiasi validYa
ios/entitlements-app-groups-formatiOSFormat App Groups validYa
ios/capacitor-server-url-shippediOSserver.url tidak dibiarkan sebagai endpoint reload hidup / shell jarak jauh untuk pembangunan tokoYa
ios/capacitor-server-cleartextiOSserver.cleartext tidak diaktifkan untuk produksiYa
ios/capacitor-allow-navigation-wildcardiOSserver.allowNavigation bukanlah wildcard umumYa
ios/pods-not-installediOSPods CocoaPods / workspace ada ketika menggunakan PodsYa
ios/pods-lock-missingiOSPodfile.lock memasang versi pod tertentuYa
ios/pods-capacitor-missingiOSPodfile menghubungkan CapacitorYa
ios/spm-package-resolved-missingiOSSPM Package.resolved adaYa
ios/spm-capacitor-dependency-missingiOSPackage.swift mengklaim CapacitorYes
ios/appicon-empty-or-placeholderiOSIcon Set Aplikasi iOS Tersedia dan Tidak KosongYes
ios/appicon-referenced-file-missingiOSFile Icon Berisi di Disk TersediaYes
ios/appicon-marketing-missingiOSIcon Pemasaran Ukuran 1024x1024 TersediaYes
ios/spm-deployment-target-consistencyiOSTarget Pengembangan SPM KonsistenYa
IdPlatformApa yang diperiksaMenggunakan secara bertahap
android/keystore-opensandroidAndroid mengekspor keystore dengan kata sandi yang diberikanโ€”
android/keystore-expiryandroidAndroid sertifikat tanda tangan tidak kadaluarsaโ€”
android/cordova-vars-presentandroidcordova.variables.gradle ada setelah cap sinkronisasiโ€”
android/gradle-props-heuristicsandroidProperti Gradle untuk Menghindari Masalah Pembangunan Umumโ€”
android/play-sa-jsonandroidheuristik gradle.properties untuk masalah build umumโ€”
android/flavor-existsandroidJSON layanan Play ada ketika dikonfigurasiโ€”
android/agp8-package-attrandroidRasa produk flavor yang diminta adaโ€”
android/manifest-well-formedandroidAndroidManifest.xml diparsingโ€”
android/manifest-tag-typoandroidTag umum manifest yang salah ejaanโ€”
android/manifest-namespace-uriandroidxmlns:android namespace URI adalah benarโ€”
android/manifest-missing-prefixandroidURI namespace xmlns:android sudah benarโ€”
android/manifest-exported-missingandroidAtribut Android menggunakan prefix android:โ€”
android/manifest-multiple-uses-sdkandroidOnly one uses-sdk elementโ€”
android/manifest-duplicate-componentandroidHanya satu elemen uses-__CAPGO_KEEP_0__ yang digunakanโ€”
android/manifest-unique-permissionandroidHak istimewa kustom adalah unikโ€”
android/manifest-hardcoded-debuggableandroiddebuggable=true tidak dikirimkanโ€”
android/manifest-mock-locationandroidACCESS_MOCK_LOCATION tidak dikirimkanโ€”
android/manifest-exported-unprotectedandroidKomponen yang diekspor dilindungiโ€”
android/manifest-query-all-packagesandroidAlasan QUERY_ALL_PACKAGESโ€”
android/manifest-deeplink-validandroidIntent-filter deeplink tampaknya validโ€”
android/applicationid-presentandroidID aplikasi dideklarasikan di app/build.gradleโ€”
android/capacitor-build-gradle-appliedandroidcapacitor.build.gradle ada ketika diterapkanโ€”
android/gradle-wrapper-presentandroidFile Gradle wrapper adaโ€”
android/flavor-dimensionsandroid__CAPGO_KEEP_0__.build.gradle ada ketika diterapkanโ€”
android/google-services-fileandroidgoogle-services.json ada saat plugin diterapkanโ€”
android/local-properties-committedandroidDimensi rasa yang dideklarasikan ketika rasa adaโ€”
android/sdk-floorsandroidmin/compile/target SDK lantai terlihat validโ€”
android/target-sdk-playandroidSistem Sdk target memenuhi persyaratan Playโ€”
android/min-sdk-capacitorandroidminSdk memenuhi persyaratan Capacitorโ€”
android/version-fieldsandroidminSdk memenuhi __CAPGO_KEEP_0__ persyaratanโ€”
android/play-sa-accessandroidAkun layanan dapat mengakses aplikasi (jarak jauh)โ€”

akun layanan Play dapat mengakses aplikasi (remote)

Judul Bagian: "Contoh: Remote Next.js / server.url shell"

Judul: Contoh: remote Next.js / shell server.url server.url adalah pola yang didukung Capacitor. Flag prescan ios/capacitor-server-url-shipped mengapa sering kali merupakan sisa live-reload.

Terima tanpa menonaktifkan cek lainnya:

Tampilan terminal
npx @capgo/cli@latest build request <appId> --platform ios \
--prescan-skip ios/capacitor-server-url-shipped

atau jaga visibilitas sebagai peringatan:

Tampilan terminal
npx @capgo/cli@latest build request <appId> --platform ios \
--prescan-warn ios/capacitor-server-url-shipped