빌드 프리 스캔 체크
설치
Capgo Cloud Build가 프로젝트를 업로드하기 전에 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알 수 없는 체크 아이디는 빠른 오류 메시지와 함께 실패합니다.
Global escapes (use sparingly)
세션 제목: 전역 탈출 (적극 사용하지 않음)| 기호 | 효과 |
|---|---|
--no-prescan | 전체 스캔 생략 |
--prescan-ignore-fatal (또는 --ignore-fatal 스캔 실행, 리포트 출력, 블록하지 않음 build prescan) | 경고를 치명적인 오류로 처리 (CI) |
--fail-on-warnings | 그리고 |
--no-prescan 숨기거나 우회 --prescan-ignore-fatal 모든 남은 검사. 단일 규칙에만 반대하는 경우에는 각 검사별 오버라이드 사용 or
Catalog 확인
Catalog 확인 섹션정확한 id를 사용하세요 --prescan-skip / --prescan-warn.
점진적 강제 이 뜻은 발견은 정보만 제공할 때까지 2026-08-14그런 다음 빌드 차단을 할 수 있습니다.
| Id | 플랫폼 | 체크하는 내용 | 점진적 강제 |
|---|---|---|---|
shared/apikey-permission | iOS, 안드로이드 | API 키는 네이티브 빌드를 요청할 수 있습니다. | — |
shared/app-exists | iOS, 안드로이드 | API 키가 앱 아이디를 볼 수 있으며 존재합니다. | — |
shared/credentials-saved | iOS, 안드로이드 | iOS/안드로이드 인증 정보가 로컬 저장소에 저장됩니다. | — |
shared/cap-sync-stale | iOS, 안드로이드 | 웹 자산이 빌드되고 Capacitor 플러그인이 동기화됩니다. | — |
shared/node-linker-layout | iOS, 안드로이드 | node_modules 레이아웃은 Capacitor 네이티브 경로와 호환됩니다. | — |
shared/bundle-id-consistency | iOS, 안드로이드 | Capacitor 앱 아이디는 네이티브 번들 아이디 / applicationId와 일치합니다. | — |
iOS
iOS 섹션| Id | 플랫폼 | 체크하는 항목 | 점진적 적용 |
|---|---|---|---|
ios/p12-opens | iOS | iOS .p12 파일이 제공된 비밀번호로 열립니다 | — |
ios/p12-expiry | iOS | iOS 인증서가 만료되지 않았습니다 | — |
ios/profile-expiry | iOS | 프로비전 프로파일이 만료되지 않았습니다 | — |
ios/profile-bundle-match | iOS | 앱의 제공 프로파일 아이디와 일치하는 프로비전 프로파일 | — |
ios/profile-type-vs-mode | iOS | 앱 스토어 / 어드혹 모드와 일치하는 프로파일 타입 | — |
ios/cert-profile-pairing | iOS | 인증서가 프로비전 프로파일에 포함되어 있습니다 | — |
ios/targets-covered | iOS | 모든 iOS 대상에 프로비전 프로파일이 있습니다 | — |
ios/infoplist-sanity | iOS | Info.plist에 필요한 버전 / 식별성 키가 있습니다 | — |
ios/asc-key-valid | iOS | 앱 스토어 연결 API 키 필드는 유효합니다 | — |
ios/asc-key-access | iOS | ASC API 키는 앱 (remote) 에 접근할 수 있습니다. | — |
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 | __CAPGO_KEEP_0__ | __CAPGO_KEEP_1__ |
ios/plist-ats-arbitrary-loads | __CAPGO_KEEP_2__ | __CAPGO_KEEP_3__ | __CAPGO_KEEP_4__ |
ios/plist-launch-storyboard | __CAPGO_KEEP_5__ | __CAPGO_KEEP_6__ | __CAPGO_KEEP_7__ |
ios/plist-orientations-multitasking | __CAPGO_KEEP_8__ | __CAPGO_KEEP_9__ | __CAPGO_KEEP_10__ |
ios/plist-orientations-present | __CAPGO_KEEP_11__ | UISupportedInterfaceOrientations이 선언되었습니다. | 네 |
ios/plist-display-name | ios | 이름이 설정되었습니다. | 네 |
ios/plist-background-modes-sanity | ios | UIBackgroundModes의 값이 유효합니다. | 네 |
ios/xcode-deployment-target-capacitor | ios | iOS 배포 대상이 Capacitor 요구 사항을 충족합니다. | 네 |
ios/xcode-signing-team | ios | __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ |
ios/xcode-bundle-id-mismatch-across-configs | iOS | __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ |
ios/xcode-enable-bitcode-leftover | iOS | __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ |
ios/xcode-swift-version-sanity | iOS | __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ |
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-environment은 배포 모드와 일치합니다. | 예 |
ios/entitlements-associated-domains-format | iOS | 관련 도메인 형식이 유효합니다. | 네 |
ios/entitlements-app-groups-format | ios | App Groups 형식이 유효합니다. | 네 |
ios/capacitor-server-url-shipped | ios | server.url은 스토어 빌드용으로 live-reload / remote shell 엔드포인트로 남겨지지 않습니다. | 네 |
ios/capacitor-server-cleartext | ios | server.cleartext는 프로덕션에서 사용되지 않습니다. | 네 |
ios/capacitor-allow-navigation-wildcard | ios | 서버. allowNavigation은 완전한 와일드 카드가 아닙니다. | 네 |
ios/pods-not-installed | iOS | CocoaPods Pods / workspace는 Pods를 사용할 때 존재합니다. | 네 |
ios/pods-lock-missing | iOS | Podfile.lock은 pod 버전을 고정합니다. | 네 |
ios/pods-capacitor-missing | iOS | Podfile은 Capacitor을 연결합니다. | 네 |
ios/spm-package-resolved-missing | iOS | SPM 패키지.해결된 패키지가 존재합니다. | 예 |
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 마케팅 아이콘 존재 | 예 |
ios/spm-deployment-target-consistency | iOS | SPM 배포 대상이 일관적입니다 | 예 |
안드로이드
ID| 플랫폼 | 체크하는 것 | 점진적 강제 | 안드로이드 |
|---|---|---|---|
android/keystore-opens | __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ 키스토어는 제공된 비밀번호로 열립니다. | — |
android/keystore-expiry | __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ 인증서는 만료되지 않았습니다. | — |
android/cordova-vars-present | __CAPGO_KEEP_0__ | cap sync 후 cordova.variables.gradle이 존재합니다. | — |
android/gradle-props-heuristics | __CAPGO_KEEP_0__ | gradle.properties는 일반적인 빌드 중단을 위한 일반적인 빌드 브레이크를 위한 heuristics입니다. | — |
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-formed | 안드로이드 | AndroidManifest.xml은 파싱됩니다. | — |
android/manifest-tag-typo | 안드로이드 | 일반적인 매니페스트 태그 오류 | — |
android/manifest-namespace-uri | 안드로이드 | xmlns:android namespace URI는 올바릅니다. | — |
android/manifest-missing-prefix | 안드로이드 | Android 속성은 android: 접두사가 사용됩니다. | — |
android/manifest-exported-missing | 안드로이드 | android:exported는 필요할 때 설정됩니다. | — |
android/manifest-multiple-uses-sdk | 안드로이드 | 단 하나의 sdk 사용 | — |
android/manifest-duplicate-component | 안드로이드 | 중복된 컴포넌트가 없습니다 | — |
android/manifest-unique-permission | 안드로이드 | 사용자 정의 권한은 고유합니다 | — |
android/manifest-hardcoded-debuggable | 안드로이드 | debuggable=true가 배포되지 않습니다 | — |
android/manifest-mock-location | 안드로이드 | ACCESS_MOCK_LOCATION이 배포되지 않습니다 | — |
android/manifest-exported-unprotected | 안드로이드 | 내보낸 컴포넌트는 보호됩니다 | — |
android/manifest-query-all-packages | 안드로이드 | 모든 패키지 조회 | — |
android/manifest-deeplink-valid | 안드로이드 | 딥링크 인텐트 필터가 유효합니다 | — |
android/applicationid-present | 안드로이드 | 앱/build.gradle에서 applicationId가 선언되어 있습니다 | — |
android/capacitor-build-gradle-applied | 안드로이드 | capacitor.build.gradle이 적용되었을 때 존재합니다 | — |
android/gradle-wrapper-present | 안드로이드 | Gradle 워커 파일이 존재합니다 | — |
android/flavor-dimensions | 안드로이드 | 플레이버 차원은 플레버가 존재할 때 선언되어 있습니다 | — |
android/google-services-file | 안드로이드 | 구글 서비스 JSON 파일이 플러그인이 적용된 경우 | — |
android/local-properties-committed | 안드로이드 | local.properties 파일에 비밀번호가 포함되지 않음 | — |
android/sdk-floors | 안드로이드 | SDK 미니/컴파일/타겟 층이 유효함 | — |
android/target-sdk-play | 안드로이드 | 타겟 SDK가 플레이 요구 사항을 충족함 | — |
android/min-sdk-capacitor | 안드로이드 | 미니 SDK가 Capacitor 요구 사항을 충족함 | — |
android/version-fields | 안드로이드 | 버전 코드/버전 이름이 존재함 | — |
android/play-sa-access | 안드로이드 | 서비스 계정은 앱에 접근할 수 있습니다 (remote) | — |
예시: remote Next.js / server.url shell
예시: remote Next.js / server.url shell생산 환경에서 로드하는 네이티브 쉘을 배송하는 것은 지원되는 __CAPGO_KEEP_0__ 패턴입니다. server.url is a supported Capacitor pattern. Prescan flags 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관련된
관련된 섹션
시작하기
Capgo Cloud Build을 처음으로 만들세요.
문제 해결
context: 지원 / 프리미엄 지원 페이지 또는 푸터 지원 섹션. 역할: 섹션 또는 페이지 제목. seen in: page support-policy.astro. Message key `support_policy_troubleshooting_title` (Support Policy Troubleshooting Title).
CLI build reference
__CAPGO_KEEP_0__ 빌드 참조