๐น build
์ด ํ๋ฌ๊ทธ์ธ์ ์ค์น ๋จ๊ณ์ ์ ์ฒด markdown ๊ฐ์ด๋๊ฐ ํฌํจ๋ ์ค์ ํ๋กฌํํธ๋ฅผ ๋ณต์ฌํ์ธ์.
๐๏ธ Capgo Cloud๋ฅผ ํตํด iOS/Android Native Build๋ฅผ ๊ด๋ฆฌํ์ธ์.
๋น๋ ์ก์ธ์ค ๋ฐ ์ถ๋ ฅ
โ๋น๋ ์ก์ธ์ค ๋ฐ ์ถ๋ ฅโ ์น์ Native cloud builds๋ ๋ชจ๋ Capgo ํ๋์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋น๋ ์ธ์ฆ ์ ๋ณด๋ Capgo ์๋ฒ์ ์ ์ฅ๋์ง ์์ผ๋ฉฐ, ๋น๋ ์์๋ง ์ฌ์ฉ๋ ํ ์ฆ์ ์ญ์ ๋ฉ๋๋ค. ๋น๋ ๊ฒฐ๊ณผ๋ฌผ์ ์ ํ์ ์ผ๋ก ์ ํจ ๊ธฐ๊ฐ์ด ์๋ ๋ค์ด๋ก๋ ๋งํฌ์ ํจ๊ป uploadํ ์ ์์ต๋๋ค.
์ธ์ฆ ์ ๋ณด ์ฐ์ ์ ์ฅ
โ์ธ์ฆ ์ ๋ณด ์ฐ์ ์ ์ฅโ ์น์ npx @capgo/cli build credentials save --appId YOUR_APP_ID --platform iosnpx @capgo/cli build credentials save --appId YOUR_APP_ID --platform androidCI์์ ์ถ๋ ฅ URL ์บก์ฒํ๊ธฐ
โCI์์ ์ถ๋ ฅ URL ์บก์ฒํ๊ธฐโ ์น์ ํต๊ณผ --output-record ๋ค์ด๋ก๋ URL๊ณผ QR code์ ์ ์งํ๋ ค๋ฉด ๋ค์์ ์ฌ์ฉํ์ธ์: build last-output ์ฝ์ผ๋ ค๋ฉด:
npx @capgo/cli build request APP_ID --platform android --output-upload --output-record /tmp/build.jsonnpx @capgo/cli build last-output --path /tmp/build.json --field outputUrl๐น ํ์ ์ฌํญ
โ ๐น ํ์ ์ฌํญโ ์น์ npx @capgo/cli@latest build needed๐งญ Native Build๊ฐ ํ์ํ๋ฉด โyesโ๋ฅผ ์ถ๋ ฅํ๊ณ code 1๋ก ์ข ๋ฃํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด โnoโ๋ฅผ ์ถ๋ ฅํ๊ณ code 0์ผ๋ก ์ข ๋ฃํฉ๋๋ค. ๋ช ๋ น์ด ์คํจํ๋ฉด code 2๋ก ์ข ๋ฃ๋ฉ๋๋ค.
์์:
npx @capgo/cli@latest build needed com.example.app --channel production --verbose์ต์ :
| ํ๋ผ๋ฏธํฐ | ํ์ | ์ค๋ช |
|---|---|---|
| -a | string | ๊ณ์ ์ฐ๊ฒฐ์ ์ํ API ํค |
| -c | string | ๋น๊ต ๋์ ์ฑ๋. ๊ธฐ๋ณธ๊ฐ์ CapacitorUpdater.defaultChannel ๋๋ ๊ณต๊ฐ ๊ธฐ๋ณธ ์ฑ๋์ ๋๋ค. |
| โpackage-json | string | ๋ชจ๋ ธ๋ ํฌ์ฉ package.json ํ์ผ ๊ฒฝ๋ก (์ผํ๋ก ๊ตฌ๋ถ) |
| โnode-modules | string | ๋ชจ๋ ธ๋ ํฌ์ฉ node_modules ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก (์ผํ๋ก ๊ตฌ๋ถ) |
| --verbose | boolean | ์์ธ ๋ก๊ทธ๊ฐ ํฌํจ๋ verbose ์ถ๋ ฅ์ ํ์ฑํํฉ๋๋ค |
| --supa-host | string | ์ปค์คํ Supabase host URL (self-hosting ๋๋ Capgo ๊ฐ๋ฐ์ฉ) |
| --supa-anon | string | ์ปค์คํ Supabase anon key (self-hosting์ฉ) |
๐ Init
๐ Init๋ณ์นญ: onboarding
npx @capgo/cli@latest build init๋น๋ ์ธ์ฆ ์ ๋ณด๋ฅผ ๋ํํ์ผ๋ก ์ค์ ํฉ๋๋ค (iOS: ์ธ์ฆ์ ๋ฐ ํ๋กํ ์๋ํ; Android: keystore + Google OAuth๋ฅผ ํตํด GCP ์๋น์ค ๊ณ์ ๋ฐ Play Console ์ด๋ ๊ถํ ๋ถ์ฌ)
์ต์ :
| ํ๋ผ๋ฏธํฐ | ํ์ | ์ค๋ช |
|---|---|---|
| -a | string | ๊ณ์ ์ฐ๊ฒฐ์ ์ํ API ํค |
| -p | string | ์จ๋ณด๋ฉํ ํ๋ซํผ(ios ๋๋ android). ์๋ตํ๋ฉด ๋ค์ดํฐ๋ธ ํด๋๊ฐ ํ๋์ผ ๋ ์๋ ๊ฐ์งํ๊ณ , ์๋๋ฉด ์ฌ์ฉ์์๊ฒ ๋ฌป์ต๋๋ค. |
| --supa-host | string | ์ปค์คํ Supabase host URL (self-hosting ๋๋ Capgo ๊ฐ๋ฐ์ฉ) |
| โno-analytics | boolean | ์ด๋ฒ ์คํ์์ build onboarding analytics์ terminal replay๋ฅผ ๋นํ์ฑํํฉ๋๋ค. |
๐น ์์ฒญ
๐น Request ์น์ npx @capgo/cli@latest build requestCapgo Cloud์ Native Build๋ฅผ ์์ฒญํฉ๋๋ค. ์ด ๋ช ๋ น์ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ๋ฅผ zip ํ์ผ๋ก ์์ถํ์ฌ ๋น๋๋ฅผ ์ํด Capgo์ uploadํฉ๋๋ค. ๋น๋๊ฐ ์๋ฃ๋๋ฉด ์ฑ ์คํ ์ด๋ก ์ง์ ์ ์ก๋ฉ๋๋ค. ์ธ์ฆ ์ ๋ณด๋ Capgo ์๋ฒ์ ์ ์ฅ๋์ง ์์ผ๋ฉฐ ๋น๋ ํ ์ฆ์ ์ญ์ ๋ฉ๋๋ค. ๋น๋๋ฅผ ์์ฒญํ๊ธฐ ์ ์ ์ ๋ณด๋ฅผ ์ ์ฅํด ๋์ธ์:
npx @capgo/cli build credentials save --appId APP_ID --platform ios์์:
npx @capgo/cli@latest build request com.example.app --platform ios --path .์ต์ :
| ํ๋ผ๋ฏธํฐ | ํ์ | ์ค๋ช |
|---|---|---|
| โpath | string | ๋น๋ํ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก (๊ธฐ๋ณธ๊ฐ: ํ์ฌ ๋๋ ํ ๋ฆฌ) |
| โnode-modules | string | ๋ชจ๋ ธ๋ ํฌ์ฉ node_modules ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก (์ผํ๋ก ๊ตฌ๋ถ) |
| โplatform | string | ๋์ ํ๋ซํผ: ios ๋๋ android (ํ์) |
| โbuild-mode | string | ๋น๋ ๋ชจ๋: debug ๋๋ release (๊ธฐ๋ณธ๊ฐ: release) |
| โbuild-certificate-base64 | string | iOS: Base64๋ก ์ธ์ฝ๋ฉ๋ .p12 ์ธ์ฆ์ |
| โp12-password | string | iOS: ์ธ์ฆ์ ๋น๋ฐ๋ฒํธ (์ธ์ฆ์์ ๋น๋ฐ๋ฒํธ๊ฐ ์๋ ๊ฒฝ์ฐ ์๋ต ๊ฐ๋ฅ) |
| โapple-id | string | iOS: ์ฑ ์ ์ฉ ๋น๋ฐ๋ฒํธ ์ ๋ก๋๋ฅผ ์ํ Apple ID ์ด๋ฉ์ผ (API ํค ๋์ ์ฌ์ฉ ๊ฐ๋ฅ) |
| โapple-app-specific-password | string | iOS: TestFlight ์ ๋ก๋๋ฅผ ์ํ ์ฑ ์ ์ฉ ๋น๋ฐ๋ฒํธ (xxxx-xxxx-xxxx-xxxx) |
| โapple-app-id | string | iOS: App Store Connect ์ฑ ์ซ์ ID (__apple-id__ ๋ฐ __apple-app-specific-password__์ ํจ๊ป ์ฌ์ฉ ํ์) |
| โapple-key-id | string | iOS: App Store Connect API Key ID |
| โapple-issuer-id | string | iOS: App Store Connect Issuer ID |
| โapple-key-content | string | iOS: Base64๋ก ์ธ์ฝ๋ฉ๋ App Store Connect API ํค (.p8) |
| โapp-store-connect-team-id | string | iOS: App Store Connect Team ID |
| โios-scheme | string | iOS: ๋น๋ํ Xcode scheme (๊ธฐ๋ณธ๊ฐ: App) |
| โios-target | string | iOS: ๋น๋ ์ค์ ์ ์ฝ์ด์ฌ Xcode target (๊ธฐ๋ณธ๊ฐ: scheme๊ณผ ๋์ผ) |
| โxcode-version | string | iOS: ์ง์ ํ Xcode ๋ฒ์ ์ด ์ค์น๋ ํ๊ฒฝ์์ ๋น๋ (์: 26, 26.0.1, 27). ๋ฉ์ด์ ๋ฒ์ ์ง์ ์ ๋ง์ด๋ ๋ฒ์ ์ ๋ฌด๊ดํจ. ๊ธฐ๋ณธ๊ฐ: ๋ชจ๋ ํ๊ฒฝ. ์ฐ์ ์์: CLI > ํ๊ฒฝ ๋ณ์ (CAPGO_IOS_XCODE_VERSION) > ์ ์ฅ๋ ์๊ฒฉ ์ฆ๋ช |
| โios-distribution | string | iOS: Distribution ๋ชจ๋ |
| โios-provisioning-profile | string | iOS: ํ๋ก๋น์ ๋ ํ๋กํ์ผ ๊ฒฝ๋ก ๋๋ bundleId=path ๋งคํ (์ค๋ณต ์ฌ์ฉ ๊ฐ๋ฅ) |
| โandroid-keystore-file | string | Android: Base64๋ก ์ธ์ฝ๋ฉ๋ keystore ํ์ผ |
| โkeystore-key-alias | string | Android: Keystore ํค ๋ณ์นญ(alias) |
| โkeystore-key-password | string | Android: Keystore ํค ๋น๋ฐ๋ฒํธ |
| โkeystore-store-password | string | Android: Keystore ์ ์ฅ์ ๋น๋ฐ๋ฒํธ |
| โplay-config-json | string | Android: Base64๋ก ์ธ์ฝ๋ฉ๋ Google Play ์๋น์ค ๊ณ์ JSON |
| --android-flavor | string | Android: ๋น๋ํ Product flavor (์: production). ํ๋ก์ ํธ์ ์ฌ๋ฌ flavor๊ฐ ์๋ ๊ฒฝ์ฐ ํ์์ ๋๋ค. |
| --android-track | string | Android: ์ด๋ฒ upload์ ์ ์ฉํ Google Play ํธ๋ (internal, alpha, beta, production). --submit-to-store-review ๋ฏธ์ฌ์ฉ ์ ๊ธฐ๋ณธ๊ฐ: internal. --submit-to-store-review ์ฌ์ฉ ์ ํธ๋ ๋ฏธ์ง์ ์: production. ์ฐ์ ์์: CLI > env > ์ ์ฅ๋ credentials |
| --android-release-status | string | Android: Google Play ์ถ์ ์ํ (draft, completed, inProgress, halted). โsubmit-to-store-review๊ฐ ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ: draft. โsubmit-to-store-review ์ฌ์ฉ ์ ์ํ๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด: completed. ์ฐ์ ์์: CLI > env > ์ ์ฅ๋ ์๊ฒฉ ์ฆ๋ช |
| --in-app-update-priority | string | Android: ์ด๋ฒ ๋ฆด๋ฆฌ์ค์ Google Play ์ธ์ฑ ์ ๋ฐ์ดํธ ์ฐ์ ์์ (์ ์ 0โ5; ๋์์๋ก ๋ ๊ธด๊ธ). ์ฐธ๊ณ : https://developer.android.com/guide/playcore/in-app-updates. ์ฐ์ ์์: CLI > env > ์ ์ฅ๋ ์๊ฒฉ ์ฆ๋ช |
| --no-playstore-upload | boolean | ์ด๋ฒ ๋น๋์ Play Store ์ ๋ก๋๋ฅผ ๊ฑด๋๋๋๋ค (์ ์ฅ๋ play ์ค์ ์ null๋ก ์ฒ๋ฆฌ). โoutput-upload๊ฐ ํ์ํฉ๋๋ค. |
| โsubmit-to-store-review | boolean | ์ ๋ก๋ ํ ๋น๋๋ฅผ draft/๋นํ์ฑ ์ํ๋ก ๋์ง ์๊ณ , ์คํ ์ด ์ถ์๋ฅผ ๋ฆฌ๋ทฐ์ ์ ์ถํฉ๋๋ค. Android์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก release_status๊ฐ completed์ธ production ํธ๋์ผ๋ก ์ ์ถ๋ฉ๋๋ค (โandroid-track / PLAY_STORE_TRACK ๋ฐ โandroid-release-status / PLAY_STORE_RELEASE_STATUS๋ก ์ฌ์ ์ ๊ฐ๋ฅ). iOS์์๋ ์ฒ๋ฆฌ๋ TestFlight ๋น๋๋ฅผ App Store ๋ฆฌ๋ทฐ์ ์ ์ถํฉ๋๋ค. |
| โstore-release-name | string | ์คํ ์ด ์ถ์ ์ด๋ฆ/๋ฒ์ ๋ผ๋ฒจ. Android๋ ์ด๋ฅผ Google Play์ version_name์ผ๋ก ์ ์กํ๋ฉฐ, iOS๋ ํธ์ง ๊ฐ๋ฅํ ๋ฒ์ ์ ์์ฑํ๊ฑฐ๋ ์ฌ์ฌ์ฉํ ๋ App Store ๋ฒ์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. |
| โstore-release-notes | string | ๊ธฐ๋ณธ ์คํ ์ด ์ถ์ ๋ ธํธ์ ๋๋ค. Android์์๋ Play ์คํ ์ด ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ฌ์ฉ๋๋ฉฐ, iOS์์๋ App Store์ '์๋ก์ด ๊ธฐ๋ฅ' ํ ์คํธ์ ๋์ฒด๊ฐ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. |
| โstore-release-notes-locale | string | ์ธ์ด๋ณ ์คํ ์ด ์ถ์ ๋ ธํธ(์ค๋ณต ์ฌ์ฉ ๊ฐ๋ฅ). ์: โstore-release-notes-locale en-US="Bug fixes" โstore-release-notes-locale ko-KR="๋ฒ๊ทธ ์์ ". |
| โios-testflight-groups | string | iOS: ์ธ๋ถ ๋ฒ ํ ๋ฐฐํฌ๋ฅผ ์ํ TestFlight ์ธ๋ถ ๊ทธ๋ฃน ์ด๋ฆ ๋๋ ID๋ฅผ ์ผํ๋ก ๊ตฌ๋ถํ์ฌ ์ ๋ ฅํฉ๋๋ค(์ ํ ์ฌํญ). |
| โios-automatic-release | boolean | iOS: Apple ์น์ธ ํ App Store ๋ฒ์ ์ ์๋์ผ๋ก ์ถ์ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ ์๋ ์ถ์์ ๋๋ค. |
| โno-ios-automatic-release | boolean | iOS: Apple ์น์ธ ํ App Store ๋ฒ์ ์ ์๋ ์ถ์ ๋๊ธฐ ์ํ๋ก ์ ์งํฉ๋๋ค. |
| โoutput-upload | boolean | ์ด๋ฒ ๋น๋์ ๋ํด์๋ง ๊ฒฐ๊ณผ๋ฌผ ์ ๋ก๋ ๋์์ ์ฌ์ ์ํฉ๋๋ค (ํ์ฑํ). ์ฐ์ ์์: CLI > env > ์ ์ฅ๋ ์๊ฒฉ ์ฆ๋ช |
| โno-output-upload | boolean | ์ด๋ฒ ๋น๋์ ๋ํด์๋ง ๊ฒฐ๊ณผ๋ฌผ ์ ๋ก๋ ๋์์ ์ฌ์ ์ํฉ๋๋ค (๋นํ์ฑํ). ์ฐ์ ์์: CLI > env > ์ ์ฅ๋ ์๊ฒฉ ์ฆ๋ช |
| โoutput-retention | string | ์ด๋ฒ ๋น๋์ ๋ํด์๋ง ๊ฒฐ๊ณผ๋ฌผ ๋งํฌ TTL์ ์ฌ์ ์ํฉ๋๋ค (1h ~ 7d). ์์: 1h, 6h, 2d. ์ฐ์ ์์: CLI > env > ์ ์ฅ๋ ์๊ฒฉ ์ฆ๋ช |
| โoutput-record | string | ๋น๋ ์ฑ๊ณต ํ, ์ง์ ๋ ๊ฒฝ๋ก์ JSON ๋ ์ฝ๋(jobId, status, outputUrl, qrCodeAscii, qrCodePngPath, finishedAt)๋ฅผ ๊ธฐ๋กํฉ๋๋ค. ๋ํ ํด๋น ๊ฒฝ๋ก์ code ์ ๋ฏธ์ฌ๊ฐ ๋ถ์ PNG QR ์ฝ๋๋ ํจ๊ป ์ ์ฅ๋ฉ๋๋ค. .qr.png ๊ธฐ๋ก๋ ํ๋๋ ๋ค์ ๋ช
๋ น์ด๋ก ๋ค์ ์ฝ์ ์ ์์ต๋๋ค: build last-output. |
| โno-cache | boolean | ๋น๋ ์บ์ ๋ณต์ ๊ฑด๋๋ฐ๊ธฐ ๋ฐ ์ด๋ฒ ๋น๋์ ๋ํ ์๋ก์ด ์บ์ ํญ๋ชฉ์ ์ ์ฅํ์ง ์์ต๋๋ค. ๋น๋ ์บ์๋ ์ฑ๋ณ๋ก ๊ธฐ๋ณธ ํ์ฑํ๋์ด ์์ต๋๋ค. |
| โcache-key | string | ํ๊ฒฝ, ๋ธ๋์น ๋๋ Android flavor๋ณ๋ก ๋น๋ ์บ์๋ฅผ ๋ถํ ํฉ๋๋ค (์: prod, staging). ์ฑ๋น ํ๋์ ๊ณต์ฉ ๊ธฐ๋ณธ ์บ์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์๋ตํ์ธ์. |
| โno-skip-build-number-bump | boolean | ์ ์ฅ๋ ์๊ฒฉ ์ฆ๋ช ์ ๋ฌด์ํ๊ณ ์ด๋ฒ ๋น๋์ ๋ํด์๋ง ๋น๋ ๋ฒํธ ์๋ ์ฆ๊ฐ๋ฅผ ๋ค์ ํ์ฑํํฉ๋๋ค. |
| โskip-marketing-version-bump | boolean | ์ฑ์ด ์ด๋ฏธ ์ถ์๋ ๊ฒฝ์ฐ ๋ง์ผํ ๋ฒ์ (CFBundleShortVersionString / versionName)์ ์๋ ์ฆ๊ฐ๋ฅผ ๊ฑด๋๋๋๋ค. |
| โsync-ios-version | boolean | iOS: ํ๋ก์ ํธ๋ฅผ ์ ๋ก๋ํ๊ธฐ ์ ์ package.json์ Xcode MARKETING_VERSION์ ๋๊ธฐํํฉ๋๋ค. |
| โai-analytics | boolean | ๋น๋ ์คํจ ์ ๋ก๊ทธ๋ฅผ Capgo AI๋ก ์ ์กํ์ฌ ์ง๋จํฉ๋๋ค. ๋ํํ ํฐ๋ฏธ๋์์๋ ์ฌ์ ํ์ธ ์ ์ฐจ๋ฅผ ๊ฑด๋๋ฐ๋ฉฐ, CI ํ๊ฒฝ์์๋ ์๋์ผ๋ก ์ ๋ก๋ํ ๋ค ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ stderr์ ์ถ๋ ฅํฉ๋๋ค. |
| โno-prescan | boolean | ์๋ ๋น๋ ์ ์ค์บ์ ๊ฑด๋๋๋๋ค |
| โprescan-ignore-fatal | boolean | pre-build ์ค์บ์ ์คํํ๋ ๋น๋๋ฅผ ์ฐจ๋จํ์ง๋ ์์ต๋๋ค (๋ฆฌํฌํธ๋ง) |
| โprescan-skip | string | id๋ก ํน์ prescan ์ฒดํฌ๋ฅผ ๊ฑด๋๋๋๋ค (๋ฐ๋ณต ์ง์ ๋๋ ์ผํ๋ก ๊ตฌ๋ถ). ๋ค๋ฅธ ์ฒดํฌ๋ ๊ณ์ ์คํ๋ฉ๋๋ค. |
| โprescan-warn | string | id๋ก ํน์ prescan ์ฒดํฌ๋ฅผ ๊ฒฝ๊ณ ๋ก ๋ฎ์ถฅ๋๋ค (๋ฐ๋ณต ์ง์ ๋๋ ์ผํ๋ก ๊ตฌ๋ถ). ์ฒดํฌ๋ ๊ณ์ ์คํ๋ฉ๋๋ค. |
| โfail-on-warnings | boolean | prescan ๊ฒฝ๊ณ ๋ฅผ fatal๋ก ์ฒ๋ฆฌํฉ๋๋ค |
| โsend-logs-to-support | boolean | CI/CD ๋น๋ ์คํจ ์ ๋น๋ ๋ก๊ทธ๋ฅผ Capgo ์ง์ํ์ผ๋ก ์๋ ์ ๋ก๋ํฉ๋๋ค (์ด๋ฉ์ผ ๋ถํ์). Capgo ์ง์ํ์ ์๋ฆผ์ด ์ ์ก๋๊ณ ์ด๋ฉ์ผ๋ก ํ์ ์๋ด๊ฐ ์งํ๋ฉ๋๋ค. โai-analytics์ ์ถ๊ฐ๋ก ์ ์ฉ๋ฉ๋๋ค. |
| โsend-logs | boolean | โsend-logs-to-support์ deprecated ๋ณ์นญ์ ๋๋ค |
| -a | string | ๊ณ์ ์ฐ๊ฒฐ์ ์ํ API ํค |
| --supa-host | string | ์ปค์คํ Supabase host URL (self-hosting ๋๋ Capgo ๊ฐ๋ฐ์ฉ) |
| --supa-anon | string | ์ปค์คํ Supabase anon key (self-hosting์ฉ) |
| --verbose | boolean | ์์ธ ๋ก๊ทธ๊ฐ ํฌํจ๋ verbose ์ถ๋ ฅ์ ํ์ฑํํฉ๋๋ค |
๋น๋ ์บ์: ๊ธฐ๋ณธ์ ์ผ๋ก Capgo๋ ์ฑ๋ณ๋ก ์ปดํ์ผ๋ Native Build ์ํฐํฉํธ(CocoaPods, Gradle ๋ฐ ๊ด๋ จ ์ถ๋ ฅ๋ฌผ)๋ฅผ ๋ณต๊ตฌํ๊ณ ์ ์ฅํฉ๋๋ค. --cache-key ๋ฅผ ์ฌ์ฉํ์ฌ RC์ ํ๋ก๋์
์บ์๋ฅผ ๋ถ๋ฆฌํ ์ ์์ผ๋ฉฐ, --no-cache ๋ฅผ ์ฌ์ฉํ๋ฉด ์ผํ์ฑ ํด๋ฆฐ ๋น๋๊ฐ ๊ฐ๋ฅํฉ๋๋ค. API ํตํฉ ํ๊ฒฝ์์๋ cache_key ๋๋ cache_enabled: false ๋ฅผ ๋น๋ ์์ฒญ ํ์ด๋ก๋์ ์ ๋ฌํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋น๋ ์บ์ ๋ฐ ๋ฌธ์ ํด๊ฒฐ: ์๋ชป๋ ์บ์ ๋ณต๊ตฌ.
๐น Sync-ios-version
โ ๐น Sync-ios-versionโ ์น์ npx @capgo/cli@latest build sync-ios-versionpackage.json์ MARKETING_VERSION์ ๋ก์ปฌ iOS Xcode ํ๋ก์ ํธ์ ๋๊ธฐํํฉ๋๋ค.
์์:
npx @capgo/cli@latest build sync-ios-version --path .์ต์ :
| ํ๋ผ๋ฏธํฐ | ํ์ | ์ค๋ช |
|---|---|---|
| โpath | string | ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก (๊ธฐ๋ณธ๊ฐ: ํ์ฌ ๋๋ ํ ๋ฆฌ) |
| โcheck | boolean | ์ฒดํฌ๋ง ์ํํ๋ฉฐ, MARKETING_VERSION์ด ์ผ์นํ์ง ์์ผ๋ฉด 0์ด ์๋ ์ข ๋ฃ ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค. |
๐น Prescan
โ ๐น Prescanโ ์น์ npx @capgo/cli@latest build prescan์
๋ก๋ ์ , ํด๋ผ์ฐ๋ ๋น๋ ์คํจ๋ฅผ ์ ๋ฐํ ์ ์๋ ํ๋ก์ ํธ ๋ฐ ์ ์ฅ๋ ์๊ฒฉ ์ฆ๋ช
์ ๋ฌธ์ ๋ฅผ ์ค์บํฉ๋๋ค.
์๊ฒฉ ์ฆ๋ช
(๋ง๋ฃ, ๋น๋ฐ๋ฒํธ, ํ๋กํ ํ์ด๋ง), ํ๋ก์ ํธ ์ํ(cap sync, node_modules ๊ตฌ์กฐ), ํ๋ซํผ ์ค์ ์ ํ์ธํฉ๋๋ค. ๋ค์ ๋ด์์ ์๋์ผ๋ก ์คํ๋ฉ๋๋ค: build request; ์ด ๋ช
๋ น์ ๋จ๋
(์: CI ํ๊ฒฝ)์ผ๋ก ์คํํ ์ ์์ต๋๋ค.
์์ธํ ๋ด์ฉ์ Prescan ๊ฒ์ฌ ์ ์ฒด ์ฒดํฌ ํญ๋ชฉ ๋ชฉ๋ก๊ณผ ๊ฐ๋ณ ๊ท์น์ --skip / --warn ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์ฐธ์กฐํ์ธ์.
์ต์ :
| ํ๋ผ๋ฏธํฐ | ํ์ | ์ค๋ช |
|---|---|---|
| โplatform | string | ๋์ ํ๋ซํผ: ios ๋๋ android (ํ์) |
| โpath | string | ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก (๊ธฐ๋ณธ๊ฐ: ํ์ฌ ๋๋ ํ ๋ฆฌ) |
| -a | string | ๊ณ์ ์ฐ๊ฒฐ์ ์ํ API ํค |
| โandroid-flavor | string | Android: ๋น๋์ ์ฌ์ฉํ product flavor |
| โios-dist | string | iOS: ๊ฒ์ฆํ distribution mode |
| โjson | boolean | ๊ธฐ๊ณ ํ๋ ์ด ๊ฐ๋ฅํ JSON ํ์์ผ๋ก ๋ฆฌํฌํธ ์ถ๋ ฅ |
| โfail-on-warnings | boolean | ๊ฒฝ๊ณ ๋ฐ์ ์ ์ข ๋ฃ ์ฝ๋๋ฅผ non-zero๋ก ๋ฐํ (CI์ฉ) |
| โignore-fatal | boolean | ์ง๋จ ๋ชจ๋: ๋ชจ๋ ๋ด์ฉ์ ๋ณด๊ณ ํ์ง๋ง ์ข ๋ฃ ์ฝ๋๋ ํญ์ 0์ผ๋ก ๋ฐํ |
| โskip | string | ID๋ฅผ ์ง์ ํ์ฌ ํน์ ์ฒดํฌ ํญ๋ชฉ ๊ฑด๋๋ฐ๊ธฐ (์ค๋ณต ์ฌ์ฉ ๋๋ ์ผํ๋ก ๊ตฌ๋ถ) |
| โwarn | string | ID๋ฅผ ์ง์ ํ์ฌ ํน์ ์ฒดํฌ ํญ๋ชฉ์ ๊ฒฝ๊ณ ๋ก ํํฅ ์กฐ์ (์ค๋ณต ์ฌ์ฉ ๋๋ ์ผํ๋ก ๊ตฌ๋ถ) |
| --verbose | boolean | ์์ธ ๋ก๊ทธ๊ฐ ํฌํจ๋ verbose ์ถ๋ ฅ์ ํ์ฑํํฉ๋๋ค |
| --supa-host | string | ์ปค์คํ Supabase host URL (self-hosting ๋๋ Capgo ๊ฐ๋ฐ์ฉ) |
| --supa-anon | string | ์ปค์คํ Supabase anon key (self-hosting์ฉ) |
๐น Last-output
โ ๐น Last-outputโ ์น์ npx @capgo/cli@latest build last-output์ด์ ๋น๋์์ ์์ฑ๋ ๋น๋ ์ถ๋ ฅ ๊ธฐ๋ก์ ์ฝ์ด์ต๋๋ค. build request --output-record.
๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ฒด JSON์ ์ถ๋ ฅํ๋ฉฐ, โfield ์ต์
์ผ๋ก ํน์ ํ๋๋ง, ๋๋ โqr ์ต์
์ผ๋ก ASCII QR
code๋ฅผ ์ถ๋ ฅํ ์ ์์ต๋๋ค. CI ํ๊ฒฝ์์ ๋ค์ด๋ก๋ URL์ด๋ QR ์ฝ๋๋ฅผ ๊ฐ์ ธ์ PR์ด๋ Issue์ ๋จ๊ธธ ๋ ์ ์ฉํฉ๋๋ค.
์์:
npx @capgo/cli build last-output โpath /tmp/build.json
npx @capgo/cli build last-output โpath /tmp/build.json โfield outputUrl
npx @capgo/cli build last-output โpath /tmp/build.json โqr
์ต์ :
| ํ๋ผ๋ฏธํฐ | ํ์ | ์ค๋ช |
|---|---|---|
| โpath | string | โoutput-record ๋ช ๋ น์ด๋ก ์์ฑ๋ JSON ๋ ์ฝ๋์ ๊ฒฝ๋ก (ํ์) |
| โfield | string | ํน์ ํ๋ ํ๋๋ง ์ถ๋ ฅ (jobId, appId, platform, buildMode, status, outputUrl, qrCodeAscii, qrCodePngPath, finishedAt, schemaVersion ์ค ์ ํ) |
| โqr | boolean | ๋ ๋๋ง๋ ASCII QR code ์ถ๋ ฅ (โfield qrCodeAscii์ ๋จ์ถ ๋ช ๋ น์ด) |
๐น Credentials
โ ๐น Credentialsโ ์น์ ๋ก์ปฌ ๋จธ์ ์ ์ ์ฅ๋ ๋น๋ credentials๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ๐ ๋ณด์ ์๋ด:
- Credentials๋ ~/.capgo-credentials/credentials.json (๊ธ๋ก๋ฒ) ๋๋ .capgo-credentials.json (๋ก์ปฌ)์ ์ ์ฅ๋ฉ๋๋ค
- ๋น๋ ์ Capgo๋ก ์ ์ก๋์ง๋ง, ์ ๋ ์๊ตฌ ์ ์ฅ๋์ง ์์ต๋๋ค
- Capgo์์ ๋น๋ ์งํ ์ฆ์ ์ญ์ ๋ฉ๋๋ค
- ๋น๋ ๊ฒฐ๊ณผ๋ฌผ์ ๊ธฐ๊ฐ ํ์ ๋ค์ด๋ก๋ ๋งํฌ๋ฅผ ์ํด ์ ํ์ ์ผ๋ก ์ ๋ก๋ํ ์ ์์ต๋๋ค ๐ DOCUMENTATION: iOS ์ค์ : https://capgo.app/docs/cli/cloud-build/ios/ Android ์ค์ : https://capgo.app/docs/cli/cloud-build/android/
๐น Apple-key
โ ๐น Apple-keyโ ์น์ ๋ณ์นญ: asc-key
npx @capgo/cli@latest build credentials apple-keymacOS ์ ์ฉ ๊ฐ์ด๋ ๋์ฐ๋ฏธ๋ฅผ ์ฌ์ฉํ์ฌ App Store Connect ํ API ํค๋ฅผ ์์ฑํฉ๋๋ค. ๋ด์ฅ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด Apple์ App Store Connect UI๋ฅผ ์๋ดํ๋ ๋ค์ดํฐ๋ธ ์ฐฝ์ด ์ด๋ฆฌ๋ฉฐ, Issuer ID์ Key ID๋ฅผ ์๋์ผ๋ก ์บก์ฒํ๊ณ , ์ผํ์ฉ .p8 ํ์ผ์ ๊ฐ๋ก์ฑ Apple์์ ๊ฒ์ฆํ ๋ค ~/.appstoreconnect/private_keys์ ์ ์ฅํฉ๋๋ค. ์งํ ํต๊ณ๋ Capgo analytics๋ก ์ ์ก๋ฉ๋๋ค (CAPGO_DISABLE_TELEMETRY__๋ก ๋นํ์ฑํ ๊ฐ๋ฅ). npx @capgo/cli build credentials apple-key โappId com.example.app
์์:
Example:์ต์ :
| ํ๋ผ๋ฏธํฐ | ํ์ | ์ค๋ช |
|---|---|---|
| -a | string | ๊ณ์ ์ฐ๊ฒฐ์ ์ํ API ํค |
| โappId | string | ์บก์ฒ๋ ํค๋ฅผ ํด๋น ์ฑ์ iOS build credentials์ ์ ์ฅํฉ๋๋ค |
| โlocal | boolean | ๊ธ๋ก๋ฒ ํ์ผ ๋์ ํ๋ก์ ํธ๋ณ .capgo-credentials.json์ ์ ์ฅํฉ๋๋ค |
| โjson | boolean | ์บก์ฒ๋ Key ID / Issuer ID / .p8 ๊ฒฝ๋ก๋ฅผ JSON ํ์์ผ๋ก ์ถ๋ ฅํฉ๋๋ค |
๐น ์ ์ฅ
โ ๐น Saveโ ์น์ npx @capgo/cli@latest build credentials saveiOS ๋๋ Android์ฉ ๋น๋ ์ธ์ฆ ์ ๋ณด๋ฅผ ๋ก์ปฌ์ ์ ์ฅํฉ๋๋ค. ์ธ์ฆ ์ ๋ณด ์ ์ฅ ์์น:
- ~/.capgo-credentials/credentials.json (๊ธฐ๋ณธ๊ฐ, ๊ธ๋ก๋ฒ)
- ํ๋ก์ ํธ ๋ฃจํธ์ .capgo-credentials.json (--local ํ๋๊ทธ ์ฌ์ฉ ์)
โ ๏ธ ๋น๋ ์ ํ์ ์ฌํญ: ๋น๋๋ฅผ ์์ฒญํ๊ธฐ ์ ์ ๋ฐ๋์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ ์ฅํด์ผ ํฉ๋๋ค.
๐ ์ด ์ธ์ฆ ์ ๋ณด๋ Capgo ์๋ฒ์ ์๊ตฌ์ ์ผ๋ก ์ ์ฅ๋์ง ์์ต๋๋ค.
๋น๋๊ฐ ์๋ฃ๋๋ฉด ์ฆ์ ์ญ์ ๋ฉ๋๋ค.
๐ ์ค์ ๊ฐ์ด๋:
iOS: https://capgo.app/docs/cli/cloud-build/ios/
Android: https://capgo.app/docs/cli/cloud-build/android/
npx @capgo/cli build credentials save โplatform ios
โcertificate ./cert.p12 โp12-password โpasswordโ
โios-provisioning-profile ./profile.mobileprovision
โapple-key ./AuthKey.p8 โapple-key-id โKEY123โ
โapple-issuer-id โissuer-uuidโ โapple-team-id โteam-idโ ๋ฉํฐ ํ๊ฒ ์์ (์ฑ + ์์ ฏ ์ต์คํ ์ ): npx @capgo/cli build credentials save โplatform ios
โios-provisioning-profile ./App.mobileprovision
โios-provisioning-profile com.example.widget=./Widget.mobileprovision
โฆ npx @capgo/cli build credentials save โplatform android
โkeystore ./release.keystore โkeystore-alias โmy-keyโ
โkeystore-key-password โkey-passโ
โplay-config ./service-account.json ๋ก์ปฌ ์ ์ฅ์ (ํ๋ก์ ํธ๋ณ): npx @capgo/cli build credentials save โlocal โplatform ios โฆ
์์:
iOS Example:์ต์ :
| ํ๋ผ๋ฏธํฐ | ํ์ | ์ค๋ช |
|---|---|---|
| โappId | string | App ID (์: com.example.app) (ํ์) |
| โplatform | string | Platform: ios ๋๋ android (ํ์) |
| โcertificate | string | iOS: .p12 ์ธ์ฆ์ ํ์ผ ๊ฒฝ๋ก |
| โios-provisioning-profile | string | iOS: ํ๋ก๋น์ ๋ ํ๋กํ์ผ ๊ฒฝ๋ก ๋๋ bundleId=path (์ค๋ณต ์ฌ์ฉ ๊ฐ๋ฅ) |
| โp12-password | string | iOS: ์ธ์ฆ์ ๋น๋ฐ๋ฒํธ (์ธ์ฆ์์ ๋น๋ฐ๋ฒํธ๊ฐ ์๋ ๊ฒฝ์ฐ ์๋ต ๊ฐ๋ฅ) |
| โapple-key | string | iOS: .p8 App Store Connect API ํค ๊ฒฝ๋ก |
| โapple-key-id | string | iOS: App Store Connect API Key ID |
| โapple-issuer-id | string | iOS: App Store Connect Issuer ID |
| โapple-team-id | string | iOS: App Store Connect Team ID |
| โios-distribution | string | iOS: ๋ฐฐํฌ ๋ชจ๋ |
| โapple-id | string | iOS: ์ฑ ์ ์ฉ ์ํธ ์ ๋ก๋์ฉ Apple ID ์ด๋ฉ์ผ (App Store Connect API ํค ๋์ ์ฌ์ฉ) |
| โapple-app-specific-password | string | iOS: TestFlight ์ ๋ก๋์ฉ ์ฑ ์ ์ฉ ์ํธ (xxxx-xxxx-xxxx-xxxx) |
| โapple-app-id | string | iOS: App Store Connect ์ซ์ ์ฑ ID (โapple-id ๋ฐ โapple-app-specific-password์ ํจ๊ป ํ์) |
| โkeystore | string | Android: keystore ํ์ผ ๊ฒฝ๋ก (.keystore ๋๋ .jks) |
| โkeystore-alias | string | Android: Keystore ํค ๋ณ์นญ |
| โkeystore-key-password | string | Android: Keystore ํค ๋น๋ฐ๋ฒํธ |
| โkeystore-store-password | string | Android: Keystore ์ ์ฅ์ ๋น๋ฐ๋ฒํธ |
| โplay-config | string | Android: Play Store ์๋น์ค ๊ณ์ JSON ๊ฒฝ๋ก |
| โandroid-flavor | string | Android: ๋น๋ํ Product flavor (์: production). ํ๋ก์ ํธ์ ์ฌ๋ฌ flavor๊ฐ ์๋ ๊ฒฝ์ฐ ํ์์ ๋๋ค. |
| โin-app-update-priority | string | Android: ํฅํ ๋ฆด๋ฆฌ์ค์ Google Play ์ธ์ฑ ์ ๋ฐ์ดํธ ์ฐ์ ์์ (์ ์ 0โ5; ๋์์๋ก ๊ธด๊ธ). ์๋ตํ๋ฉด Play์ ๊ธฐ์กด ๊ฐ์ ๊ทธ๋๋ก ๋ก๋๋ค. |
| โlocal | boolean | ๊ธ๋ก๋ฒ ~/.capgo-credentials/ ๋์ ํ๋ก์ ํธ ๋ฃจํธ์ .capgo-credentials.json์ ์ ์ฅ |
| โoutput-upload | boolean | ๋น๋ ๊ฒฐ๊ณผ๋ฌผ(IPA/APK/AAB)์ Capgo ์คํ ๋ฆฌ์ง์ ์ ๋ก๋ํ๊ณ ๋ค์ด๋ก๋ ๋งํฌ๋ฅผ ์ถ๋ ฅ |
| โno-output-upload | boolean | ๋น๋ ๊ฒฐ๊ณผ๋ฌผ(IPA/APK/AAB)์ Capgo ์คํ ๋ฆฌ์ง์ ์ ๋ก๋ํ์ง ๋ง์ธ์ |
| โoutput-retention | string | ์ถ๋ ฅ ๋งํฌ TTL: 1h~7d (๊ธฐ๋ณธ๊ฐ: 1h). ์์: 1h, 6h, 2d |
| โskip-build-number-bump | boolean | ํฅํ ๋น๋์์ ๋น๋ ๋ฒํธ/๋ฒ์ code ์๋ ์ฆ๊ฐ๋ฅผ ๊ฑด๋๋๋๋ค |
| โno-skip-build-number-bump | boolean | ๋น๋ ๋ฒํธ ์๋ ์ฆ๊ฐ๋ฅผ ๋ค์ ํ์ฑํํฉ๋๋ค (๊ธฐ๋ณธ ๋์) |
| โskip-marketing-version-bump | boolean | ์ฑ์ด ์ด๋ฏธ ์ถ์๋ ๊ฒฝ์ฐ ํฅํ ๋น๋์์ ๋ง์ผํ ๋ฒ์ ์๋ ์ฆ๊ฐ๋ฅผ ๊ฑด๋๋๋๋ค |
| โno-skip-marketing-version-bump | boolean | ๋ง์ผํ ๋ฒ์ ์๋ ์ฆ๊ฐ๋ฅผ ๋ค์ ํ์ฑํํฉ๋๋ค (๊ธฐ๋ณธ ๋์) |
๐ ๋ชฉ๋ก
โ ๐ Listโ ์น์ npx @capgo/cli@latest build credentials list์ ์ฅ๋ build credentials ๋ชฉ๋ก์ ๋ณด์ฌ์ค๋๋ค (๋น๋ฐ๋ฒํธ๋ ๋ง์คํน ์ฒ๋ฆฌ๋จ). ํ์ฌ ์ ์ฅ๋ credentials(global ๋ฐ local ๋ชจ๋ ํฌํจ)๋ฅผ ํ์ธํฉ๋๋ค. ์์: npx @capgo/cli build credentials list # ๋ชจ๋ ์ฑ ๋ชฉ๋ก ํ์ npx @capgo/cli build credentials list โappId com.example.app # ํน์ ์ฑ ๋ชฉ๋ก ํ์
์ต์ :
| ํ๋ผ๋ฏธํฐ | ํ์ | ์ค๋ช |
|---|---|---|
| โappId | string | ๋ชฉ๋ก์ ํ์ํ App ID (์๋ต ์ ์ ์ฒด ๋ชฉ๋ก ํ์) |
| โlocal | boolean | ๋ก์ปฌ .capgo-credentials.json ํ์ผ์ ์ธ์ฆ ์ ๋ณด๋ง ํ์ |
๐น Clear
โ ๐น Clearโ ์น์ npx @capgo/cli@latest build credentials clear์ ์ฅ๋ build credentials๋ฅผ ์ญ์ ํฉ๋๋ค. ์คํ ๋ฆฌ์ง์์ credentials๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ํน์ credentials๋ฅผ ๋์์ผ๋ก ํ๋ ค๋ฉด โappId์ โplatform์ ์ฌ์ฉํ์ธ์. ์์: npx @capgo/cli build credentials clear # ๋ชจ๋ ์ฑ ์ญ์ (global) npx @capgo/cli build credentials clear โlocal # ๋ก์ปฌ credentials ์ญ์ npx @capgo/cli build credentials clear โappId com.example.app โplatform ios
์ต์ :
| ํ๋ผ๋ฏธํฐ | ํ์ | ์ค๋ช |
|---|---|---|
| โappId | string | ์ญ์ ํ App ID (์๋ต ์ ๋ชจ๋ ์ฑ ์ญ์ ) |
| โplatform | string | ์ญ์ ํ ํ๋ซํผ: ios ๋๋ android (์๋ต ์ ๋ชจ๋ ํ๋ซํผ ์ญ์ ) |
| โlocal | boolean | ๊ธ๋ก๋ฒ ๋์ ๋ก์ปฌ .capgo-credentials.json์์ ์ญ์ |
๐น ์ ๋ฐ์ดํธ
โ ๐น Updateโ ์น์ npx @capgo/cli@latest build credentials update๋ชจ๋ ์ ๋ณด๋ฅผ ๋ค์ ์ ๋ ฅํ ํ์ ์์ด ํน์ ์๊ฒฉ ์ฆ๋ช ๋ง ์ ๋ฐ์ดํธํฉ๋๋ค. ๋ณ๊ฒฝํ๋ ค๋ ํ๋๋ง ์ ๊ณตํ์ฌ ๊ธฐ์กด ์๊ฒฉ ์ฆ๋ช ์ ์ ๋ฐ์ดํธํ์ธ์. ์ ๊ณต๋ ์ต์ ์ ํตํด ํ๋ซํผ์ด ์๋์ผ๋ก ๊ฐ์ง๋ฉ๋๋ค. ์์: npx @capgo/cli build credentials update โios-provisioning-profile ./new-profile.mobileprovision npx @capgo/cli build credentials update โlocal โkeystore ./new-keystore.jks
์ต์ :
| ํ๋ผ๋ฏธํฐ | ํ์ | ์ค๋ช |
|---|---|---|
| โappId | string | App ID (capacitor.config์ ์๋ต ์ ์๋ ๊ฐ์ง) |
| โplatform | string | Platform: ios ๋๋ android (์ต์ ์์ ์๋ ๊ฐ์ง) |
| โlocal | boolean | ๊ธ๋ก๋ฒ ๋์ ๋ก์ปฌ .capgo-credentials.json ์ ๋ฐ์ดํธ |
| โcertificate | string | P12 ์ธ์ฆ์ ํ์ผ ๊ฒฝ๋ก |
| โios-provisioning-profile | string | Provisioning profile ๊ฒฝ๋ก ๋๋ bundleId=path (์ค๋ณต ์ง์ ๊ฐ๋ฅ, ๊ธฐ๋ณธ๊ฐ์ ๋ณํฉ) |
| โoverwrite-ios-provisioning-map | boolean | ๊ธฐ์กด ํ๋ก๋น์ ๋ ๋งต์ ๋ณํฉํ์ง ์๊ณ ์ ์ฒด๋ฅผ ๊ต์ฒด (๊ธฐ๋ณธ๊ฐ: merge) |
| โp12-password | string | P12 ์ธ์ฆ์ ๋น๋ฐ๋ฒํธ |
| โapple-key | string | App Store Connect API ํค ๊ฒฝ๋ก (.p8 ํ์ผ) |
| โapple-key-id | string | App Store Connect API Key ID |
| โapple-issuer-id | string | App Store Connect Issuer ID |
| โapple-team-id | string | App Store Connect Team ID |
| โapple-id | string | iOS: ์ฑ ์ ์ฉ ์ํธ ์ ๋ก๋์ฉ Apple ID ์ด๋ฉ์ผ (App Store Connect API ํค ๋์ ์ฌ์ฉ) |
| โapple-app-specific-password | string | iOS: TestFlight ์ ๋ก๋์ฉ ์ฑ ์ ์ฉ ์ํธ (xxxx-xxxx-xxxx-xxxx) |
| โapple-app-id | string | iOS: App Store Connect ์ซ์ ์ฑ ID (โapple-id ๋ฐ โapple-app-specific-password์ ํจ๊ป ํ์) |
| โios-distribution | string | iOS: ๋ฐฐํฌ ๋ชจ๋ |
| โkeystore | string | keystore ํ์ผ ๊ฒฝ๋ก (.keystore ๋๋ .jks) |
| โkeystore-alias | string | Keystore ํค ๋ณ์นญ |
| โkeystore-key-password | string | Keystore ํค ๋น๋ฐ๋ฒํธ |
| โkeystore-store-password | string | Keystore ์ ์ฅ์ ๋น๋ฐ๋ฒํธ |
| โplay-config | string | Google Play ์๋น์ค ๊ณ์ JSON ๊ฒฝ๋ก |
| โandroid-flavor | string | Android: ๋น๋ํ Product flavor (์: production). ํ๋ก์ ํธ์ ์ฌ๋ฌ flavor๊ฐ ์๋ ๊ฒฝ์ฐ ํ์์ ๋๋ค. |
| โin-app-update-priority | string | Android: ํฅํ ๋ฆด๋ฆฌ์ค๋ฅผ ์ํ Google Play ์ธ์ฑ ์ ๋ฐ์ดํธ ์ฐ์ ์์ (์ ์ 0โ5; ๋์์๋ก ๊ธด๊ธํจ). |
| โoutput-upload | boolean | ๋น๋ ๊ฒฐ๊ณผ๋ฌผ(IPA/APK/AAB)์ Capgo ์คํ ๋ฆฌ์ง์ ์ ๋ก๋ํ๊ณ ๋ค์ด๋ก๋ ๋งํฌ๋ฅผ ์ถ๋ ฅ |
| โno-output-upload | boolean | ๋น๋ ๊ฒฐ๊ณผ๋ฌผ(IPA/APK/AAB)์ Capgo ์คํ ๋ฆฌ์ง์ ์ ๋ก๋ํ์ง ๋ง์ธ์ |
| โoutput-retention | string | ์ถ๋ ฅ ๋งํฌ TTL: 1h~7d. ์์: 1h, 6h, 2d |
| โskip-build-number-bump | boolean | ํฅํ ๋น๋์์ ๋น๋ ๋ฒํธ/๋ฒ์ code ์๋ ์ฆ๊ฐ๋ฅผ ๊ฑด๋๋๋๋ค |
| โno-skip-build-number-bump | boolean | ๋น๋ ๋ฒํธ ์๋ ์ฆ๊ฐ๋ฅผ ๋ค์ ํ์ฑํํฉ๋๋ค (๊ธฐ๋ณธ ๋์) |
| โskip-marketing-version-bump | boolean | ์ฑ์ด ์ด๋ฏธ ์ถ์๋ ๊ฒฝ์ฐ ํฅํ ๋น๋์์ ๋ง์ผํ ๋ฒ์ ์๋ ์ฆ๊ฐ๋ฅผ ๊ฑด๋๋๋๋ค |
| โno-skip-marketing-version-bump | boolean | ๋ง์ผํ ๋ฒ์ ์๋ ์ฆ๊ฐ๋ฅผ ๋ค์ ํ์ฑํํฉ๋๋ค (๊ธฐ๋ณธ ๋์) |
๐น ๊ด๋ฆฌ
โ ๐น ๊ด๋ฆฌโ ์น์ npx @capgo/cli@latest build credentials manage์ ์ฅ๋ ๋น๋ ์ธ์ฆ ์ ๋ณด๋ฅผ ๋ํํ์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค.
์ ์ฅ๋ ์ธ์ฆ ์ ๋ณด๋ฅผ ํ์ธํ๊ณ , ์ค์ ๋ด์ฉ์ ๋ณด๊ฑฐ๋, CI/CD์ฉ .env ํ์ผ์ ๋ด๋ณด๋ด๊ณ , ํน์ ํ๋ซํผ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค. ๋ค์์ TUI๋ฅผ ์ฌ์ฉํฉ๋๋ค: capgo init.
์์:
npx @capgo/cli build credentials manage
npx @capgo/cli build credentials manage โappId com.example.app
npx @capgo/cli build credentials manage โappId com.example.app โplatform ios
npx @capgo/cli build credentials manage โlocal
์ต์ :
| ํ๋ผ๋ฏธํฐ | ํ์ | ์ค๋ช |
|---|---|---|
| โappId | string | ๊ด๋ฆฌํ App ID (์ ํ ์ฌํญ, ์๋ต ์ ์ ํ ํ๋กฌํํธ ํ์) |
| โplatform | string | ๊ด๋ฆฌํ ํ๋ซํผ: ios ๋๋ android (์ ํ ์ฌํญ, ์๋ต ์ ์ ํ ํ๋กฌํํธ ํ์) |
| โlocal | boolean | ๋ก์ปฌ .capgo-credentials.json ํ์ผ๋ง ํ์ |
๐น Migrate
โ ๐น Migrateโ ์ ๋ชฉ์ ์น์ npx @capgo/cli@latest build credentials migrate๊ธฐ์กด provisioning profile์ ์๋ก์ด multi-target ํ์์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํฉ๋๋ค. BUILD_PROVISION_PROFILE_BASE64๋ฅผ CAPGO_IOS_PROVISIONING_MAP์ผ๋ก ๋ณํํฉ๋๋ค. Xcode ํ๋ก์ ํธ์์ ๋ฉ์ธ bundle ID๋ฅผ ์๋์ผ๋ก ์ฐพ์๋ ๋๋ค. npx @capgo/cli build credentials migrate โplatform ios
์์:
Example:์ต์ :
| ํ๋ผ๋ฏธํฐ | ํ์ | ์ค๋ช |
|---|---|---|
| โappId | string | App ID (capacitor.config์์ ์๋ต ์ ์๋ ๊ฐ์ง) |
| โplatform | string | Platform (ios๋ง ์ง์) |
| โlocal | boolean | ๊ธ๋ก๋ฒ ๋์ ๋ก์ปฌ .capgo-credentials.json์์ ๋ง์ด๊ทธ๋ ์ด์ |