__CAPGO_KEEP_0__ - __CAPGO_KEEP_1__ 앱에 대한 실시간 업데이트

빌드 전 검사 확인

클라우드 빌드가 프로젝트를 업로드하기 전에 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

__CAPGO_KEEP_0__ build prescan:

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

__CAPGO_KEEP_1__

__CAPGO_KEEP_7__

__CAPGO_KEEP_8__
FlagEffect
--no-prescanSkip the entire scan
--prescan-ignore-fatal (또는 --ignore-fatal on build prescan)스캔 실행, 리포트 출력, 블록하지 않음
--fail-on-warningsCI에서 경고를 치명적인 것으로 처리

--no-prescan and --prescan-ignore-fatal 숨기거나 우회 모두 남은 체크를 모두 숨기고, 한 체크에 대한 오버라이드만 사용할 수 있습니다.

체크 카탈로그

Catalog 확인하기

정확한 id를 사용하세요 --prescan-skip / --prescan-warn.

강제 적용 강제 적용은 정보만 제공할 때까지 2026-08-14이후 빌드 차단합니다.

공유

공유
ID플랫폼검사하는 내용강제 적용
shared/apikey-permissioniOS, AndroidAPI 키는 네이티브 빌드를 요청할 수 있습니다
shared/app-existsios, androidAPI 키가 앱 아이디를 가지고 있으며 보이게 됩니다
shared/credentials-savedios, androidiOS/Android 인증 정보는 로컬에 저장됩니다
shared/cap-sync-staleios, android웹 자산이 빌드되고 Capacitor 플러그인이 동기화됩니다
shared/node-linker-layoutios, androidnode_modules 레이아웃은 Capacitor 네이티브 경로와 호환됩니다
shared/bundle-id-consistencyios, androidCapacitor 앱 아이디는 네이티브 번들 아이디 / 애플리케이션 아이디와 일치합니다

iOS

iOS
식별자플랫폼체크하는 것점진적 강제
ios/p12-opensiOSiOS .p12 파일이 제공된 비밀번호로 열립니다.
ios/p12-expiryiOSiOS 인증서가 만료되지 않았습니다.
ios/profile-expiryiOS배포 프로파일이 만료되지 않았습니다.
ios/profile-bundle-matchiOS__CAPGO_KEEP_0__
ios/profile-type-vs-modeiOS__CAPGO_KEEP_0__
ios/cert-profile-pairingiOS__CAPGO_KEEP_0__
ios/targets-coverediOSiOS 앱에 프로비저닝 프로파일이 모두 설정되어 있습니다.
ios/infoplist-sanityiOSInfo.plist에 필요한 버전 / 식별자 키가 있습니다.
ios/asc-key-validiOSApp Store Connect API 키 필드가 유효합니다.
ios/asc-key-accessiOSAPI 키는 앱 (remote) 에 접근할 수 있습니다.
ios/plist-bundle-id-formatiOSCFBundleIdentifier 형식이 유효합니다.
ios/plist-version-short-formatiOSCFBundleShortVersionString 형식이 유효합니다.
ios/plist-version-build-formatiOSCFBundleVersion 형식이 유효합니다.
ios/plist-encryption-complianceiOSITSAppUsesNonExemptEncryption이 선언되었습니다.Yes
ios/plist-ats-arbitrary-loadsiOSNSAllowsArbitraryLoads이 프로덕션에서 사용되지 않습니다.Yes
ios/plist-launch-storyboardiOS시작 화면이 선언되었습니다.Yes
ios/plist-orientations-multitaskingiOS정렬/멀티태스킹 설정이 일관적입니다.Yes
ios/plist-orientations-presentiOSUISupportedInterfaceOrientations이 선언되었습니다.Yes
ios/plist-display-nameiOS표시 이름이 설정되었습니다.Yes
ios/plist-background-modes-sanityiOSUIBackgroundModes의 값이 유효합니다.Yes
ios/xcode-deployment-target-capacitoriOSiOS 배포 대상이 Capacitor 요구 사항을 충족합니다.Yes
ios/xcode-signing-teamiOS인증 팀이 설정되었습니다.Yes
ios/xcode-bundle-id-mismatch-across-configsiOSBundle ID는 Xcode 설정에서 일관적입니다.Yes
ios/xcode-enable-bitcode-leftoveriOSENABLE_BITCODE의 잔여물이 제거됩니다.Yes
ios/xcode-swift-version-sanityiOSSwift 버전 설정이 정상적입니다.Yes
ios/xcode-no-app-targetiOSXcode 프로젝트에는 애플리케이션 대상이 있습니다.Yes
ios/xcode-multiple-app-targetsiOS다중 앱 대상이 의도적으로 처리됩니다.Yes
ios/entitlements-vs-profile-capabilityiOS특권이 프로파일 가능성과 일치합니다.Yes
ios/entitlements-aps-environment-vs-modeiOSaps-environment가 배포 모드와 일치합니다.Yes
ios/entitlements-associated-domains-formatiOS연관된 도메인 형식이 유효합니다.Yes
ios/entitlements-app-groups-formatios앱 그룹 형식이 유효합니다.Yes
ios/capacitor-server-url-shippedios스토어 빌드용으로 라이브 리로드 / 원격 셸 엔드포인트로 남겨둘 수 없습니다. server.urlYes
ios/capacitor-server-cleartextios프로덕션용으로 server.cleartext가 활성화되어서는 안 됩니다.Yes
ios/capacitor-allow-navigation-wildcardiosserver.allowNavigation은 전체적인 와일드카드가 아니어야 합니다.Yes
ios/pods-not-installediosCocoaPods Pods / workspace는 Pods가 사용될 때 존재합니다.Yes
ios/pods-lock-missingiosPodfile.lock은 pod 버전을 고정합니다.Yes
ios/pods-capacitor-missingiosPodfile은 Capacitor을 연결합니다.Yes
ios/spm-package-resolved-missingiosSPM Package.resolved은 존재합니다.Yes
ios/spm-capacitor-dependency-missingiOSCapacitor을 Package.swift에 선언합니다.Yes
ios/appicon-empty-or-placeholderiOSAppIcon.appiconset이 존재하고 비어있지 않습니다.Yes
ios/appicon-referenced-file-missingiOSContents.json 아이콘 파일이 디스크에 존재합니다.Yes
ios/appicon-marketing-missingiOS1024×1024 마케팅 아이콘을 찾을 수 있습니다.Yes
ios/spm-deployment-target-consistencyiOSSPM 배포 대상이 일관적입니다.Yes

안드로이드

안드로이드
ID플랫폼무엇을 확인합니까?강제 적용을 점진적으로
android/keystore-opens안드로이드안드로이드 키스토어는 제공된 비밀번호로 열립니다.
android/keystore-expiry안드로이드안드로이드 서명 인증서는 만료되지 않았습니다.
android/cordova-vars-present안드로이드cordova.variables.gradle은 cap sync 후에 존재합니다.
android/gradle-props-heuristics안드로이드gradle.properties는 일반적인 빌드 중단에 대한 가이드라인을 제공합니다.
android/play-sa-json안드로이드Play 서비스 계정 JSON이 구성되었을 때 존재합니다.
android/flavor-exists안드로이드요청된 제품 맛집이 존재합니다.
android/agp8-package-attr안드로이드AGP 8+부터 Manifest 패키지= 속성이 제거되었습니다.
android/manifest-well-formed안드로이드AndroidManifest.xml은 android를 분석합니다.
android/manifest-tag-typo안드로이드Common manifest 태그 오류
android/manifest-namespace-uri안드로이드xmlns:android 네임스페이스 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안드로이드QUERY_ALL_PACKAGES의 정당성
android/manifest-deeplink-validandroidDeep Link Intent 필터가 유효합니다
android/applicationid-presentandroidapplicationId는 app/build.gradle에서 선언됩니다
android/capacitor-build-gradle-appliedandroidcapacitor.build.gradle이 적용되었을 때 존재합니다
android/gradle-wrapper-presentandroidGradle Wrapper 파일이 존재합니다
android/flavor-dimensionsandroid플레이버드 차원은 플레버드가 존재할 때 선언됩니다
android/google-services-fileandroidgoogle-services.json이 플러그인이 적용되었을 때 존재합니다
android/local-properties-committed안드로이드__CAPGO_KEEP_0__에 대한 비밀을 포함하지 않도록 local.properties가 커밋되지 않았습니다.
android/sdk-floors안드로이드SDK 층의 최소/컴파일/타겟 설정이 유효합니다.
android/target-sdk-play안드로이드Play 요구 사항을 충족하는 targetSdk가 있습니다.
android/min-sdk-capacitor안드로이드Capacitor 요구 사항을 충족하는 minSdk가 있습니다.
android/version-fields안드로이드versionCode / versionName이 존재합니다.
android/play-sa-access안드로이드Play 서비스 계정은 앱에 대한 원격 접근이 가능합니다.

__CAPGO_KEEP_0__ : 원격 Next.js / 서버 URL 셸 예시

원격 Next.js / 서버 URL 셸 예시

생산 환경에서 로드하는 네이티브 셸을 배송하는 것은 지원되는 __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