인증서를 관리하세요.
__CAPGO_KEEP_4__
__CAPGO_KEEP_11__
개요
개요 제목Capgo CLI에서 빌드 인증서를 저장합니다. 컴퓨터에 저장합니다. — Capgo의 서버에 절대 저장하지 않습니다. 기본적으로 인증서들은 모든 프로젝트에 공유되는 하나의 글로벌 파일에 저장됩니다. 프로젝트별로 저장하려면 옵션을 전달하세요. 빌드를 실행할 때 저장된 인증서가 자동으로 사용되고 Capgo로 안전하게 전송되며 빌드가 완료되면 삭제됩니다. __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ ~/.capgo-credentials/credentials.json__CAPGO_KEEP_0__ --local __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ .capgo-credentials.json Capgo
명령어
명령어인증 정보를 직접 관리하기
인증 정보를 직접 관리하기저장된 인증 정보를 작업하기 위해 가장 빠른 방법은 인터랙티브 매니저입니다. 인터랙티브 매니저는 TUI(터미널 사용자 인터페이스)를 열어 저장된 인증 정보를浏览할 수 있고, 앱 및 플랫폼별로 구성된 것을 확인할 수 있으며, CI/CD-준비된 파일을 내보내거나 플랫폼의 인증 정보를 삭제할 수 있습니다. build init 터미널 창 .env 클립보드에 복사
bunx @capgo/cli@latest build credentials manage| __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ |
|---|---|
--appId <appId> | 앱을 관리하세요 (생략 시 선택하도록 유도합니다) |
--platform <ios|android> | 플랫폼을 관리하세요 (생략 시 선택하도록 유도합니다) |
--local | 프로젝트별로 사용하세요 .capgo-credentials.json global 파일 대신 |
일회성 스크립트 명령을 선호하십니까? 아래의 개별 명령어를 사용하세요.
인증 정보 저장
인증 정보 저장자동 사용을 위해 로컬에 빌드 인증 정보를 저장하세요:
bunx @capgo/cli@latest build credentials save --platform <ios|android> [options]인증 정보 업데이트
인증 정보 업데이트기존 인증 정보 일부 업데이트하기:
bunx @capgo/cli@latest build credentials update --platform <ios|android> [options]The update 명령어는 추가적인 병합 프로비전 프로파일에 사용 — 새로운 프로파일은 기존 프로파일과 병합됩니다. 전체 프로비전 맵 대신에 대체하려면 --overwrite-ios-provisioning-map.
예시 — 기존 인증 정보에 확장 프로파일 추가:
bunx @capgo/cli@latest build credentials update \ --platform ios \ --ios-provisioning-profile "com.example.app.widget=./widget_profile.mobileprovision"업데이트 명령어는 save 와 동일한 옵션을 받습니다. 그러나 모든 옵션은 선택 사항이며 — 제공한 필드만 업데이트됩니다.
인증 정보 목록
인증 정보 목록 섹션현재 저장된 인증 정보(비밀번호는 가려져 있습니다)를 보려면:
bunx @capgo/cli@latest build credentials list
# List credentials for a specific appbunx @capgo/cli@latest build credentials list --appId com.example.app인증 정보 삭제
인증 정보 삭제 섹션컴퓨터에서 저장된 인증 정보를 삭제합니다:
# Clear all credentialsbunx @capgo/cli@latest build credentials clear
# Clear credentials for a specific app + platformbunx @capgo/cli@latest build credentials clear --appId com.example.app --platform ios인증 정보 이전
인증 정보 이전 섹션__CAPGO_KEEP_0__을 새로운 다중 목표 형식으로 변환합니다.
bunx @capgo/cli@latest build credentials migrate --platform ios__CAPGO_KEEP_1__ 명령은 오래된 BUILD_PROVISION_PROFILE_BASE64 __CAPGO_KEEP_0__,__CAPGO_KEEP_0__을 변환하고, 그들을 제거합니다. 자세한 내용은 CAPGO_IOS_PROVISIONING_MAP__CAPGO_KEEP_1__에서 확인하십시오. __CAPGO_KEEP_2__ iOS 인증서 저장 __CAPGO_KEEP_2__
__CAPGO_KEEP_3__
__CAPGO_KEEP_1__에서 __CAPGO_KEEP_2__에 대한 자세한 내용은Complete Example
Complete Examplebunx @capgo/cli@latest build credentials save \ --platform ios \ --certificate ./cert.p12 \ --p12-password "YourP12Password" \ --ios-provisioning-profile "com.example.app=./profile.mobileprovision" \ --apple-key ./AuthKey_ABC1234567.p8 \ --apple-key-id "ABC1234567" \ --apple-issuer-id "00000000-0000-0000-0000-000000000000" \ --apple-team-id "TEAM123456"| Option | 설명 | 필수 |
|---|---|---|
--certificate <path> | __CAPGO_KEEP_0__ 인증서 파일 경로 | 예 (릴리즈) |
--p12-password <password> | __CAPGO_KEEP_0__ 인증서 파일의 암호 | 예 (릴리즈) |
--ios-provisioning-profile <mapping> | 프로비전 프로파일 매핑 (, ). 여러 타겟 앱에 대해 반복 가능합니다. 단일 프로파일만 있고 __CAPGO_KEEP_0__ bundleId 접두사가 없으면 프로파일에서 자동으로 추론됩니다.bundleId=path). Repeatable for multi-target apps. If only one profile and no bundleId prefix, CLI auto-infers from the profile. | 앱 스토어 연결 __CAPGO_KEEP_0__ .p8 키 경로 |
--apple-key <path> | Path to App Store Connect API .p8 key | 앱 스토어 연결 __CAPGO_KEEP_0__ 키 ID |
--apple-key-id <id> | App Store Connect API Key ID | __CAPGO_KEEP_0__ |
--apple-issuer-id <id> | App Store Connect API 발급자 ID (UUID) | 참고 사항 1을 참조하십시오 |
--apple-team-id <id> | App Store Connect 팀 ID | 예 |
--ios-distribution <mode> | 배포 모드: app_store (기본값) 또는 ad_hoc | 아니오 |
--output-upload | 빌드 아티팩트에 대한 시간 제한 Capgo 다운로드 링크를 활성화합니다 | 아니오 (기본값: false) |
--output-retention <seconds> | 빌드 출력을 얼마나 유지할 것인지 (예: 3600s) | 자동 빌드 번호 증가를 생략합니다 3600s) |
--skip-build-number-bump | Skip automatic build-number increment | No |
저장되는 항목
Section titled “저장되는 항목”iOS 인증서 저장 시 CLI:
- 인증서와 프로비전 프로파일 파일을 읽습니다.
- base64 인코딩으로 변환합니다.
- 그리고 저장합니다.
~/.capgo-credentials/credentials.json(또는.capgo-credentials.json와--local) - 평문으로 암호화되지 않은 비밀번호와 ID (로컬 파일만) 저장합니다.
저장된 파일 구조:
{ "ios": { "BUILD_CERTIFICATE_BASE64": "...", "CAPGO_IOS_PROVISIONING_MAP": "{\"com.example.app\":{\"profile\":\"...\",\"name\":\"match AppStore com.example.app\"}}", "APPLE_KEY_CONTENT": "...", "P12_PASSWORD": "...", "APPLE_KEY_ID": "ABC1234567", "APPLE_ISSUER_ID": "...", "APP_STORE_CONNECT_TEAM_ID": "TEAM123456", "CAPGO_IOS_DISTRIBUTION": "app_store" }}Android 인증서 저장
Android 인증서 저장 섹션예시 완료
예시 완료 섹션bunx @capgo/cli@latest build credentials save \ --platform android \ --keystore ./release.keystore \ --keystore-alias "my-key-alias" \ --keystore-key-password "KeyPassword123" \ --keystore-store-password "StorePassword123" \ --play-config ./play-store-service-account.json안드로이드 옵션
안드로이드 옵션 섹션| 옵션 | 설명 | 필수 |
|---|---|---|
--keystore <path> | .keystore 또는 .jks 파일의 경로 | 예 (릴리즈) |
--keystore-alias <alias> | 키스토어의 키 별칭 | 예 (릴리즈) |
--keystore-key-password <password> | 키 별칭의 비밀번호 | Yes (release) |
--keystore-store-password <password> | __CAPGO_KEEP_0__ 비밀번호 | Yes (release) |
--play-config <path> | Play Store 서비스 계정 JSON 파일 경로 | Yes (submission) |
저장되는 항목
저장되는 항목에 대한 섹션Android 인증서를 저장할 때 CLI:
- 키스토어와 서비스 계정 JSON 파일을 읽습니다.
- base64 인코딩으로 변환합니다.
- 그것들을
~/.capgo-credentials/credentials.json(or.capgo-credentials.json__CAPGO_KEEP_0__--local) - __CAPGO_KEEP_1__
__CAPGO_KEEP_2__
{ "android": { "ANDROID_KEYSTORE_FILE": "...", "PLAY_CONFIG_JSON": "...", "KEYSTORE_KEY_ALIAS": "my-key-alias", "KEYSTORE_KEY_PASSWORD": "...", "KEYSTORE_STORE_PASSWORD": "..." }}__CAPGO_KEEP_4__
__CAPGO_KEEP_5____CAPGO_KEEP_6__
# Credentials automatically loaded from ~/.capgo-credentials/credentials.jsonbunx @capgo/cli@latest build request com.example.app --platform ios__CAPGO_KEEP_9__
# Environment variables take precedence over saved credentialsBUILD_CERTIFICATE_BASE64="..." \P12_PASSWORD="different-password" \bunx @capgo/cli@latest build request com.example.app --platform ios순위 우선 순서:
- 환경 변수 (가장 높은 우선 순위)
- 저장된 자격 증명 (
~/.capgo-credentials/credentials.json, 또는 로컬.capgo-credentials.json) - 자격 증명이 없는 경우 (가장 낮은 우선 순위)
저장된 자격 증명을 보는 중
제목이 “저장된 자격 증명을 보는 중”인 섹션저장된 자격 증명이 무엇인지 목록화:
bunx @capgo/cli@latest build credentials list예제 출력:
📋 Saved Build Credentials:
iOS Credentials: ✓ Certificate (base64) ✓ Provisioning Map (JSON) ✓ Apple Key Content (base64) ✓ P12 Password: ******** ✓ Apple Key ID: ABC1234567 ✓ Apple Issuer ID: 00000000-0000-0000-0000-000000000000 ✓ Team ID: TEAM123456
Android Credentials: ✓ Keystore (base64) ✓ Play Store Config (base64) ✓ Keystore Alias: my-key-alias ✓ Key Password: ******** ✓ Store Password: ********
Location: ~/.capgo-credentials/credentials.json
🔒 These credentials are stored locally on your machine only. When building, they are sent to Capgo but NEVER stored there. They are auto-deleted after build completion.보안 최적화 방법
보안 최적화 방법 섹션로컬 스토리지 보안
로컬 스토리지 보안 섹션-
파일 권한
터미널 창 # Global credentials directory + filechmod 700 ~/.capgo-credentialschmod 600 ~/.capgo-credentials/credentials.json# Local (per-project) credentials, if you use --localchmod 600 .capgo-credentials.json -
계정 정보는 절대 커밋하지 마세요
터미널 창 # Ignore the per-project credentials file (used with --local)echo ".capgo-credentials.json" >> .gitignore전역 파일은 홈 디렉토리 내에 repo 외부에 위치합니다.
-
계정 정보는 분리하세요
- 개발 환경과 CI/CD에서 사용하는 인증 정보를 다르게 사용하세요.
- 인증 정보를 정기적으로 회전하세요.
- 팀원들 사이에 인증 정보를 공유하지 마세요.
CI/CD 사용 방법
CI/CD 사용 방법CI/CD 환경에서 환경 변수를 선호하세요. 저장된 인증 정보보다.
.env 파일을 준비한 채로 내보내세요. .env (권장)
.env 파일을 준비한 채로 내보내기 (권장)각 인증 파일을 수동으로 base64로 인코딩하는 대신 (참조) 아래) let build credentials manage 파일을 생성해 줍니다:
bunx @capgo/cli@latest build credentials manage# pick your app → choose "Export to .env"파일 (권한 .env.capgo.<appId>.<platform> )에 저장된 모든 인증 정보를 환경 변수로 저장합니다 — 각 줄은 CI/CD 제공자의 비밀 키를 추가하는 데 사용할 수 있습니다. 두 플랫폼은 기본적으로 결합됩니다. 하나만으로 제한하고 싶다면 0600주의 --platform ios 주의 --platform android 파일을 생성해 줍니다:
환경 변수 전체 참조
제목 “환경 변수 전체 참조”The CLI는 다음 환경 변수를 읽어 인증 정보를 읽습니다:
iOS 인증서:
| 변수 | 설명 | 형식 | 필수 |
|---|---|---|---|
BUILD_CERTIFICATE_BASE64 | P12/PKCS12 인증서 code 서명 | Base64 | Yes (release) |
CAPGO_IOS_PROVISIONING_MAP | __CAPGO_KEEP_0__ JSON map of bundle IDs to provisioning profile data | JSON string | Yes (release) |
P12_PASSWORD | __CAPGO_KEEP_0__ P12 인증서 비밀번호 | Plain text | Optional |
APPLE_KEY_ID | App Store Connect API Key ID | String (e.g., “ABC1234567”) | See note¹ |
APPLE_ISSUER_ID | App Store Connect API Issuer ID | UUID string | 참고 ¹ |
APPLE_KEY_CONTENT | 애플 스토어 연결 API 키 (.p8 파일 내용) | Base64 | 참고 ¹ |
APP_STORE_CONNECT_TEAM_ID | 애플 개발자 팀 ID | 문자열 (예: "XXXXXXXXXX") | 예 |
CAPGO_IOS_DISTRIBUTION | 배포 모드: app_store (기본값) 또는 ad_hoc | 문자열 | 아니오 |
안드로이드 자격 증명:
| 변수 | 설명 | 형식 | 필수 |
|---|---|---|---|
ANDROID_KEYSTORE_FILE | APK/AAB을 위한 서명 키스토어 파일 | Base64 | 예 (릴리즈) |
KEYSTORE_KEY_ALIAS | 키스토어 내의 키 별칭 | 문자열 | 예 (릴리즈) |
KEYSTORE_KEY_PASSWORD | 키 별칭의 비밀번호 | 평문 | Yes* |
KEYSTORE_STORE_PASSWORD | __CAPGO_KEEP_0__ | __CAPGO_KEEP_1__ | Yes* |
PLAY_CONFIG_JSON | Google Play 서비스 계정 JSON | Base64 | Yes (submission) |
*만 제공된 암호가 하나만 있다면, 두 암호 모두에 사용될 것입니다. KEYSTORE_KEY_PASSWORD 그리고 KEYSTORE_STORE_PASSWORD.
GitHub 액션 예시
GitHub 액션 예시 제목name: Cloud Build
on: push: branches: [main]
jobs: build-ios: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: oven-sh/setup-bun@v2 - run: bun install - run: bunx @capgo/cli@latest build request com.example.app --platform ios env: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} CAPGO_IOS_PROVISIONING_MAP: ${{ secrets.CAPGO_IOS_PROVISIONING_MAP }} P12_PASSWORD: ${{ secrets.P12_PASSWORD }} APPLE_KEY_ID: ${{ secrets.APPLE_KEY_ID }} APPLE_ISSUER_ID: ${{ secrets.APPLE_ISSUER_ID }} APPLE_KEY_CONTENT: ${{ secrets.APPLE_KEY_CONTENT }} APP_STORE_CONNECT_TEAM_ID: ${{ secrets.APP_STORE_CONNECT_TEAM_ID }}
build-android: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: oven-sh/setup-bun@v2 - run: bun install - run: bunx @capgo/cli@latest build request com.example.app --platform android env: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} ANDROID_KEYSTORE_FILE: ${{ secrets.ANDROID_KEYSTORE_FILE }} KEYSTORE_KEY_ALIAS: ${{ secrets.KEYSTORE_KEY_ALIAS }} KEYSTORE_KEY_PASSWORD: ${{ secrets.KEYSTORE_KEY_PASSWORD }} KEYSTORE_STORE_PASSWORD: ${{ secrets.KEYSTORE_STORE_PASSWORD }} PLAY_CONFIG_JSON: ${{ secrets.PLAY_CONFIG_JSON }}Base64 값 준비
Base64 값 준비CI/CD 비밀을 위해 자격 증명 파일을 Base64으로 변환하려면:
# iOS Certificate (.p12)base64 -i certificate.p12 | tr -d '\n' > certificate_base64.txt
# iOS Provisioning Profiles — use the CLI to generate CAPGO_IOS_PROVISIONING_MAP:bunx @capgo/cli@latest build credentials save --platform ios \ --ios-provisioning-profile "com.example.app=./profile.mobileprovision" \ # ... other options# Then copy CAPGO_IOS_PROVISIONING_MAP from ~/.capgo-credentials/credentials.json to your CI secrets
# iOS App Store Connect Key (.p8)base64 -i AuthKey_XXXXXX.p8 | tr -d '\n' > apple_key_base64.txt
# Android Keystore (.keystore or .jks)base64 -i release.keystore | tr -d '\n' > keystore_base64.txt
# Google Play Service Account JSONbase64 -i play-store-service-account.json | tr -d '\n' > play_config_base64.txt환경 변수가 더 안전한 이유
Section titled “Preparing Base64 Values”이 접근 방식은 보안이 더 높습니다. 이유는:
- 비밀은 CI/CD 플랫폼에서 관리됩니다.
- 실행자에 credential 파일이 없습니다.
- 비밀을 쉽게轮换하고 접근 제어를 하세요.
- 비밀 사용 기록을 확인하세요.
비밀轮换
제목: 비밀轮换정기적으로 비밀을轮환하세요:
- iOS: 연간 새로운 인증서와 API 키를 생성하세요.
- Android: 연간 키스토어 비밀번호를 변경하세요.
- 팀 구성원 변경 후: 팀 구성원이 떠날 때 회전
저장된 인증 정보 업데이트:
# Re-run save command with new credentialsbunx @capgo/cli@latest build credentials save --platform ios --certificate ./new-cert.p12 ...문제 해결
제목이 '문제 해결'인 섹션인증 정보가 없습니다.
제목이 '인증 정보가 없습니다.'인 섹션빌드가 인증 정보가 없다고 말할 때:
-
인증 정보가 저장되어 있는지 확인:
터미널 창 bunx @capgo/cli@latest build credentials list -
인증 정보가 없으면 저장:
터미널 창 bunx @capgo/cli@latest build credentials save --platform ios ... -
인증 파일이 존재하는지 확인:
터미널 창 ls -la ~/.capgo-credentials/credentials.json # globalls -la .capgo-credentials.json # local (--local)
인증 파일 읽기 시
제목:파일 권한 설정:
chmod 600 ~/.capgo-credentials/credentials.json # globalchmod 600 .capgo-credentials.json # local__CAPGO_KEEP_0__ 사용되지 않는다
__CAPGO_KEEP_0__ 사용되지 않는다 섹션__CAPGO_KEEP_1__ 플랫폼이 올바르게 지정되어 있는지 확인하세요:
# Make sure --platform matches saved credentialsbunx @capgo/cli@latest build request com.example.app --platform ios # Uses ios credentialsbunx @capgo/cli@latest build request com.example.app --platform android # Uses android credentials__CAPGO_KEEP_4__ 사용되지 않는다를 삭제하고 다시 저장하세요
__CAPGO_KEEP_0__ 삭제하고 다시 저장하세요 섹션__CAPGO_KEEP_5__가 손상된 것처럼 보인다면:
# Clear all credentialsbunx @capgo/cli@latest build credentials clear
# Save againbunx @capgo/cli@latest build credentials save --platform ios ...__CAPGO_KEEP_6__에서 환경 변수로 마이그레이션
__CAPGO_KEEP_0__ 환경 변수로 마이그레이션 섹션__CAPGO_KEEP_0__을 현재 사용 중인 환경 변수를 저장된 자격 증명으로 마이그레이션할 수 있습니다.
-
__CAPGO_KEEP_0__ 환경 변수를 추출합니다.
터미널 창 echo $BUILD_CERTIFICATE_BASE64 # Verify they exist -
base64 파일을 원래 파일로 되돌리기 (필요한 경우)
터미널 창 echo "$BUILD_CERTIFICATE_BASE64" | base64 -d > cert.p12echo "$BUILD_PROVISION_PROFILE_BASE64" | base64 -d > profile.mobileprovision -
CLI를 저장합니다.
터미널 창 bunx @capgo/cli@latest build credentials save \--platform ios \--certificate ./cert.p12 \--ios-provisioning-profile ./profile.mobileprovision \--p12-password "$P12_PASSWORD" \--apple-key-id "$APPLE_KEY_ID" \--apple-issuer-id "$APPLE_ISSUER_ID" \--apple-team-id "$APP_STORE_CONNECT_TEAM_ID"__CAPGO_KEEP_0__를 현재 사용 중인 환경 변수를 저장된 자격 증명으로 마이그레이션할 수 있습니다.
BUILD_PROVISION_PROFILE_BASE64) run:터미널 창 bunx @capgo/cli@latest build credentials migrate --platform ios이전의 단일 프로파일을
CAPGO_IOS_PROVISIONING_MAP과 제거합니다.BUILD_PROVISION_PROFILE_BASE64키를 제거합니다.APPLE_PROFILE_NAME빌드 테스트 -
터미널 창
클립보드에 복사 bunx @capgo/cli@latest build request com.example.app --platform ios -
(선택 사항) legacy single-profile을
터미널 창 unset BUILD_CERTIFICATE_BASE64 BUILD_PROVISION_PROFILE_BASE64
파일 위치
파일 위치인증 정보는 단일 JSON 파일에 저장됩니다.:
- 전역 (기본):
~/.capgo-credentials/credentials.json모든 프로젝트에서 공유 - 로컬 (프로젝트 루트에
--local):.capgo-credentials.json인증 정보 파일은 프로젝트 루트에 자동으로 생성됩니다. 첫 번째 저장 시.
프로젝트 루트에 .capgo-credentials.json to your .gitignore so per-project credentials are never committed.
다음 단계
Next Steps- 시작하기 - 첫 번째 빌드를 생성하세요
- iOS 빌드 - iOS 전용 빌드 설정
- Android 빌드 - Android 전용 빌드 설정
- 문제 해결 - 일반적인 문제와 해결책
도움이 필요하세요?
Need Help?- 📚 문제 해결 가이드
- 💬 Discord community
- 📧 이메일: support@capgo.app
인증 관리에서 계속 진행하세요
Section titled “Keep going from Managing Credentials”인증 관리를 사용 중이시면 Managing Credentials CI/CD 자동화 계획을 위해 연결하세요. Capgo CI/CD 제품 워크플로우에 대한 CI/CD에서 Capgo Capgo 네이티브 빌드 제품 워크플로우에 대한 Capgo 네이티브 빌드 Capgo 통합 제품 워크플로우에 대한 Capgo 통합 CI/CD 통합 CI/CD 통합에 대한 구현 세부 정보, 및 GitHub 액션 통합 구현 세부 정보에 대한 GitHub 액션 통합