자격 증명 관리
Copy-ready
설치, Sync, 및 소스 마크다운 가이드를 포함합니다.
iOS 및 Android 빌드 자격 증명을 지역적으로 관리하여 편리한 클라우드 빌드를 관리합니다.
개요Capgo CLI stores your build credentials 컴퓨터에 저장 — Capgo 서버에 저장하지 않습니다. 기본적으로 모든 프로젝트에 공유되며 하나의 파일에 저장됩니다. 전역 파일, ~/.capgo-credentials/credentials.json모든 프로젝트에 공유되며 하나의 파일에 저장됩니다. --local 프로젝트별로 저장 대신 사용하세요. 빌드가 완료될 때 저장된 인증 정보가 자동으로 __CAPGO_KEEP_0__로 보냈으며, 빌드가 완료된 후 삭제됩니다. 인증 정보를 얻는 데 도움이 필요하세요? .capgo-credentials.json instead. When you run a build, the saved credentials are used automatically and sent securely to Capgo, then deleted after the build completes.
명령어
명령어 섹션인터랙티브로 자격 증명 관리
인증 정보를 상호 작용적으로 관리하는 섹션 제목저장된 인증 정보를 작업하기 위해 가장 빠른 방법은 상호 작용 매니저입니다. 이 매니저는 TUI(터미널 사용자 인터페이스)를 열어 저장된 항목을浏览할 수 있고, 앱 및 플랫폼별로 구성된 항목을 확인할 수 있으며, CI/CD에 적합한 파일을 내보내거나 플랫폼의 인증 정보를 삭제할 수 있습니다. build init 터미널 창 .env 클립보드에 복사
bunx @capgo/cli@latest build credentials manage| 관리할 앱을 선택하세요 ( omitted 시 입력을 유도합니다 ) | 관리할 플랫폼을 선택하세요 ( omitted 시 입력을 유도합니다 ) |
|---|---|
--appId <appId> | 프로젝트별로 사용 |
--platform <ios|android> | global 파일 대신 |
--local | global 파일 대신 .capgo-credentials.json global 파일 대신 |
Prefer one-shot, scriptable commands? Use the individual commands below.
인증 정보 저장
인증 정보 저장자동 사용을 위해 로컬에서 빌드 인증 정보를 저장하세요:
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인증 정보 이동
인증 정보 이동 섹션기존 단일 프로파일 형식에서 새로운 다중 대상 형식으로 변환합니다:
bunx @capgo/cli@latest build credentials migrate --platform ios이동 명령어는 이전 버전의 인증 정보를 감지합니다. BUILD_PROVISION_PROFILE_BASE64 인증 정보, 이를 iOS로 변환하고 CAPGO_IOS_PROVISIONING_MAP, 그리고 레거시 키를 제거합니다. 자세한 내용은 Single Profile에서 Migration iOS 인증서 저장
iOS 인증서 저장
주의완전한 예제
완전한 예제 섹션bunx @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"iOS 옵션
iOS 옵션 섹션| 옵션 | 설명 | 필수 |
|---|---|---|
--certificate <path> | .p12 인증서 파일 경로 | 예 (릴리즈) |
--p12-password <password> | .p12 인증서 파일의 암호 | Yes (release) |
--ios-provisioning-profile <mapping> | 프로비전 프로파일 매핑 (, ). 여러 타겟 앱에 대해 반복 가능합니다. 단일 프로파일이 있고 번들 ID 접두사가 없는 경우, __CAPGO_KEEP_0__ 프로파일에서 자동으로 추론됩니다.bundleId=path). Repeatable for multi-target apps. If only one profile and no bundleId prefix, CLI auto-infers from the profile. | __CAPGO_KEEP_0__ App Store Connect .p8 키 경로 |
--apple-key <path> | Path to App Store Connect API .p8 key | App Store Connect __CAPGO_KEEP_0__ 키 ID |
--apple-key-id <id> | App Store Connect API Key ID | App Store Connect __CAPGO_KEEP_0__ 발급자 ID (UUID) |
--apple-issuer-id <id> | App Store Connect API Issuer ID (UUID) | App Store Connect 팀 ID |
--apple-team-id <id> | Yes | Yes |
--apple-id <email> | 애플 ID 이메일 (앱별 암호 업로드 대체 옵션, API 키) | 참고 사항 2 |
--apple-app-specific-password <password> | 앱별 암호 (xxxx-xxxx-xxxx-xxxx) | 참고 사항 2 |
--apple-app-id <id> | 숫자 앱 스토어 연결 앱 ID (예: 1234567890) | 참고 사항 2 |
--ios-distribution <mode> | 배포 모드: app_store (기본값) 또는 ad_hoc | 아니오 |
--output-upload | Capgo 빌드 아티팩트 다운로드 링크를 임시로 활성화합니다. | 아니오 (기본값: false) |
--output-retention <seconds> | 빌드 출력을 얼마나 유지할 것인지 (예: 3600s) | 아니오 (기본값: 3600s) |
--skip-build-number-bump | 자동 빌드 번호 증가를 생략합니다. | 아니오 |
When you save iOS credentials, the CLI:
- base64 인코딩으로 변환합니다.
- 다음으로 저장합니다.
- (또는
~/.capgo-credentials/credentials.json인증서와 프로비전 프로파일을 저장합니다..capgo-credentials.json비밀번호와 ID를 평문으로 저장합니다. (로컬 파일만)--local) - 저장된 파일 구조:
클립보드에 복사
{ "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) 파일 경로 | Yes (release) |
--keystore-alias <alias> | keystore의 키 별칭 | Yes (release) |
--keystore-key-password <password> | 키 별칭의 비밀번호 | Yes (release) |
--keystore-store-password <password> | keystore의 비밀번호 | Yes (release) |
--play-config <path> | Play Store 서비스 계정 JSON 파일의 경로 | Yes (submission) |
저장되는 항목
저장되는 항목에 대한 제목안드로이드 인증서를 저장할 때 CLI:
- keystore 및 서비스 계정 JSON 파일을 읽습니다.
- 그것들을 base64 인코딩으로 변환합니다.
- 그것들을 저장합니다.
~/.capgo-credentials/credentials.json(또는.capgo-credentials.jsonwith--local) - 비밀번호 및 별칭을 평문으로 저장합니다. (로컬 파일만)
__CAPGO_KEEP_0__: 저장된 파일 구조:
{ "android": { "ANDROID_KEYSTORE_FILE": "...", "PLAY_CONFIG_JSON": "...", "KEYSTORE_KEY_ALIAS": "my-key-alias", "KEYSTORE_KEY_PASSWORD": "...", "KEYSTORE_STORE_PASSWORD": "..." }}__CAPGO_KEEP_2__: 저장된 자격 증명 사용
__CAPGO_KEEP_3__: 저장된 자격 증명 사용__CAPGO_KEEP_4__: 저장된 자격 증명이 저장되면, 빌드 시 자동으로 사용됩니다:
# Credentials automatically loaded from ~/.capgo-credentials/credentials.jsonbunx @capgo/cli@latest build request com.example.app --platform ios__CAPGO_KEEP_7__
# 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_KEEP_10__: 저장된 자격 증명이 저장되면, 빌드 시 자동으로 사용됩니다:
- __CAPGO_KEEP_11__: 환경 변수 (가장 높은 우선순위)
- 저장된 자격 증명 (
~/.capgo-credentials/credentials.json, 또는 로컬.capgo-credentials.json) - 인증 정보가 없습니다 (최저 우선 순위)
Saved Credentials 보기
Viewing Saved Credentials저장된 인증 정보 목록:
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.보안 최적화 방법
보안 최적화 방법Local Storage 보안
Local Storage 보안 섹션-
파일 권한
터미널 창 # 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 외부에 위치합니다.
-
계정 정보 분리
- 개발 환경 vs CI/CD에 사용하는 계정 정보를 분리하세요.
- 계정 정보를 정기적으로轮전하세요.
- __CAPGO_KEEP_0__
CI/CD 사용
CI/CD 사용CI/CD 환경에서 환경 변수를 보관된 자격 증명을
__CAPGO_KEEP_1__ (권장) .env __CAPGO_KEEP_2__
__CAPGO_KEEP_3__ (아래 참조)__CAPGO_KEEP_4__ __CAPGO_KEEP_5____CAPGO_KEEP_6__ 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 내보낸 파일에는 서명 비밀을 포함하고 있습니다.
완전한 환경 변수 참조
완전한 환경 변수 참조CLI은 다음 환경 변수를 인증 정보로 읽습니다:
iOS 인증서:
| 변수 | 설명 | 형식 | 필수 |
|---|---|---|---|
BUILD_CERTIFICATE_BASE64 | code에 대한 P12/PKCS12 인증서 | Base64 | 예 (릴리즈) |
CAPGO_IOS_PROVISIONING_MAP | JSON에 포함된 앱 아이디를 프로비전 프로파일 데이터로 매핑한 맵 | JSON 문자열 | Yes (release) |
P12_PASSWORD | P12 인증서의 암호 | 평문 | 선택 사항 |
APPLE_KEY_ID | App Store Connect API Key ID | 문자열 (예: 'ABC1234567') | 참고 1을 참조하십시오 |
APPLE_ISSUER_ID | App Store Connect API Issuer ID | UUID 문자열 | 참고 1을 참조하십시오 |
APPLE_KEY_CONTENT | App Store Connect API 키 (.p8 파일 내용) | Base64 | 참고 1을 참조하십시오 |
APP_STORE_CONNECT_TEAM_ID | Apple Developer Team ID | 문자열 (예: "XXXXXXXXXX") | 예 |
CAPGO_IOS_DISTRIBUTION | 배포 모드: app_store (기본값) 또는 ad_hoc | 문자열 | 아니오 |
Android 자격 증명:
| 변수 | 설명 | 형식 | 필수 |
|---|---|---|---|
ANDROID_KEYSTORE_FILE | APK/AAB을 위한 서명 키스토어 파일 | Base64 | 예 (릴리즈) |
KEYSTORE_KEY_ALIAS | 키스토어 내의 키 별칭 | 문자열 | 예 (릴리즈) |
KEYSTORE_KEY_PASSWORD | 키 별칭의 비밀번호 | 평문 | 예* |
KEYSTORE_STORE_PASSWORD | 키스토어 파일의 비밀번호 | __CAPGO_KEEP_0__ | Yes* |
PLAY_CONFIG_JSON | Google Play 서비스 계정 JSON | Base64 | Yes (제출) |
*만 제공된 패스워드가 하나만 있다면, 두 개 모두 사용할 것입니다. 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 값 준비
Preparing Base64 ValuesCI/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.txtCI/CD 비밀 키를 위한 Base64 변환을 위해 자격 증명 파일을 변환하세요.
CI/CD 비밀 키를 위한 Base64 변환을 위해 자격 증명 파일을 변환하세요.CI/CD 비밀 키를 위한 Base64 변환을 위해 자격 증명 파일을 변환하세요.
- CI/CD 비밀 키를 위한 Base64 변환을 위해 자격 증명 파일을 변환하세요.
- No credential files on runners
- 쉘 실행자에 인증 파일이 없습니다
- 쉘 실행자에 인증 파일이 없습니다
쉘 실행자에 인증 파일이 없습니다
쉘 실행자에 인증 파일이 없습니다쉘 실행자에 인증 파일이 없습니다
- 쉘 실행자에 인증 파일이 없습니다: Generate new certificates and API keys yearly
- 쉘 실행자에 인증 파일이 없습니다쉘 실행자에 인증 파일이 없습니다
- 쉘 실행자에 인증 파일이 없습니다쉘 실행자에 인증 파일이 없습니다
__CAPGO_KEEP_0__ 저장된 인증 정보 업데이트:
# Re-run save command with new credentialsbunx @capgo/cli@latest build credentials save --platform ios --certificate ./new-cert.p12 ...__CAPGO_KEEP_3__ 문제 해결
__CAPGO_KEEP_4__ "문제 해결" 제목__CAPGO_KEEP_5__ "인증 정보가 없습니다"
__CAPGO_KEEP_6__ "인증 정보가 없습니다" 제목__CAPGO_KEEP_7__ 빌드가 인증 정보가 없다고 말하는 경우:
-
__CAPGO_KEEP_8__ 인증 정보가 저장되어 있는지 확인:
__CAPGO_KEEP_1__ 터미널 창 bunx @capgo/cli@latest build credentials list -
__CAPGO_KEEP_9__ 인증 정보가 없으면 저장:
터미널 창 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인증 정보가 사용되지 않음
인증 정보가 사용되지 않는 이유정확한 플랫폼이 지정되었는지 확인하세요:
# 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인증 정보를 초기화하고 다시 저장
인증 정보를 초기화하고 다시 저장인증 정보가 손상된 것처럼 보인다면:
# Clear all credentialsbunx @capgo/cli@latest build credentials clear
# Save againbunx @capgo/cli@latest build credentials save --platform ios ...환경 변수에서 환경 변수로 마이그레이션
환경 변수를 사용 중인 경우 저장된 인증 정보로 마이그레이션할 수 있습니다:현재 사용 중인 환경 변수를 추출하세요
-
__CAPGO_KEEP_0__
__CAPGO_KEEP_0__ echo $BUILD_CERTIFICATE_BASE64 # Verify they exist -
__CAPGO_KEEP_2__ (if needed) __CAPGO_KEEP_3__
__CAPGO_KEEP_4__ echo "$BUILD_CERTIFICATE_BASE64" | base64 -d > cert.p12echo "$BUILD_PROVISION_PROFILE_BASE64" | base64 -d > profile.mobileprovision -
Save using the CLI
__CAPGO_KEEP_7__ 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_9__
BUILD_PROVISION_PROFILE_BASE64__CAPGO_KEEP_10____CAPGO_KEEP_11__ 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 -
환경 변수 제거 (선택 사항)
터미널 창 unset BUILD_CERTIFICATE_BASE64 BUILD_PROVISION_PROFILE_BASE64
파일 위치
파일 위치 섹션인증 정보는 단일 JSON 파일에 저장됩니다.
- 전역 (기본):
~/.capgo-credentials/credentials.json— 모든 프로젝트에 공유됩니다. - 프로젝트 (프로젝트 루트에 — 해당 프로젝트에 대한 전역 파일을 오버라이드합니다.
--local):.capgo-credentials.json파일은 인증 정보를 저장할 때 처음으로 자동으로 생성됩니다. 프로젝트별 인증 정보는 항상 커밋되지 않도록
프로젝트 루트에 .capgo-credentials.json 이러한 .gitignore so per-project credentials are never committed.
다음 단계
다음 단계 섹션- 시작하기 - 첫 번째 빌드 생성
- iOS 빌드 - iOS 전용 빌드 설정
- Android 빌드 - Android 전용 빌드 설정
- 문제 해결 - 일반적인 문제와 해결 방법
도움이 필요합니다
도움이 필요합니다 섹션- 📚 [Troubleshooting guide](https://capgo.app/troubleshooting-guide)
- 💬 [Discord community](https://discord.com/invite/capgo)
- 📧 Email: support@capgo.app
Managing Credentials에서 계속하기
Managing Credentials에서 계속하기란관리하는 경우 Managing Credentials CI/CD 자동화 계획을 위해 연결하세요. Capgo CI/CD에서 제품 워크플로우를 위해 Capgo Native Builds을 사용하세요. Capgo CI/CD에서 제품 워크플로우를 위해 제품 워크플로우에서 Capgo 네이티브 빌드를 Capgo 통합 Capgo 통합에서 제품 워크플로우 CI/CD 통합 CI/CD 통합에서 구현 세부 정보, 및 GitHub 액션 통합 GitHub 액션 통합에서 구현 세부 정보.