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

자격 증명 관리

설치, 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 파일 대신
--localglobal 파일 대신 .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 app
bunx @capgo/cli@latest build credentials list --appId com.example.app

인증 정보 지우기

인증 정보 지우기 섹션

로컬 머신에서 저장된 인증 정보를 삭제합니다:

터미널 창
# Clear all credentials
bunx @capgo/cli@latest build credentials clear
# Clear credentials for a specific app + platform
bunx @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"
옵션설명필수
--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 keyApp Store Connect __CAPGO_KEEP_0__ 키 ID
--apple-key-id <id>App Store Connect API Key IDApp 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>YesYes
--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-uploadCapgo 빌드 아티팩트 다운로드 링크를 임시로 활성화합니다.아니오 (기본값: false)
--output-retention <seconds>빌드 출력을 얼마나 유지할 것인지 (예: 3600s)아니오 (기본값: 3600s)
--skip-build-number-bump자동 빌드 번호 증가를 생략합니다.아니오

When you save iOS credentials, the CLI:

  1. base64 인코딩으로 변환합니다.
  2. 다음으로 저장합니다.
  3. (또는 ~/.capgo-credentials/credentials.json 인증서와 프로비전 프로파일을 저장합니다. .capgo-credentials.json 비밀번호와 ID를 평문으로 저장합니다. (로컬 파일만) --local)
  4. 저장된 파일 구조:

클립보드에 복사

{
"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"
}
}
터미널 창
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:

  1. keystore 및 서비스 계정 JSON 파일을 읽습니다.
  2. 그것들을 base64 인코딩으로 변환합니다.
  3. 그것들을 저장합니다. ~/.capgo-credentials/credentials.json (또는 .capgo-credentials.json with --local)
  4. 비밀번호 및 별칭을 평문으로 저장합니다. (로컬 파일만)

__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__: 저장된 자격 증명이 저장되면, 빌드 시 자동으로 사용됩니다:

__CAPGO_KEEP_5__
# Credentials automatically loaded from ~/.capgo-credentials/credentials.json
bunx @capgo/cli@latest build request com.example.app --platform ios

__CAPGO_KEEP_7__

__CAPGO_KEEP_8__: 저장된 자격 증명이 저장되면, 빌드 시 자동으로 사용됩니다:
# Environment variables take precedence over saved credentials
BUILD_CERTIFICATE_BASE64="..." \
P12_PASSWORD="different-password" \
bunx @capgo/cli@latest build request com.example.app --platform ios

__CAPGO_KEEP_10__: 저장된 자격 증명이 저장되면, 빌드 시 자동으로 사용됩니다:

  1. __CAPGO_KEEP_11__: 환경 변수 (가장 높은 우선순위)
  2. 저장된 자격 증명 (~/.capgo-credentials/credentials.json, 또는 로컬 .capgo-credentials.json)
  3. 인증 정보가 없습니다 (최저 우선 순위)

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 보안 섹션
  1. 파일 권한

    터미널 창
    # Global credentials directory + file
    chmod 700 ~/.capgo-credentials
    chmod 600 ~/.capgo-credentials/credentials.json
    # Local (per-project) credentials, if you use --local
    chmod 600 .capgo-credentials.json
  2. 계정 정보는 절대 커밋하지 마세요

    터미널 창
    # Ignore the per-project credentials file (used with --local)
    echo ".capgo-credentials.json" >> .gitignore

    전역 파일은 홈 디렉토리 내에 repo 외부에 위치합니다.

  3. 계정 정보 분리

    • 개발 환경 vs CI/CD에 사용하는 계정 정보를 분리하세요.
    • 계정 정보를 정기적으로轮전하세요.
    • __CAPGO_KEEP_0__

CI/CD 사용

CI/CD 사용

CI/CD 환경에서 환경 변수를 보관된 자격 증명을

__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_BASE64code에 대한 P12/PKCS12 인증서Base64예 (릴리즈)
CAPGO_IOS_PROVISIONING_MAPJSON에 포함된 앱 아이디를 프로비전 프로파일 데이터로 매핑한 맵JSON 문자열Yes (release)
P12_PASSWORDP12 인증서의 암호평문선택 사항
APPLE_KEY_IDApp Store Connect API Key ID문자열 (예: 'ABC1234567')참고 1을 참조하십시오
APPLE_ISSUER_IDApp Store Connect API Issuer IDUUID 문자열참고 1을 참조하십시오
APPLE_KEY_CONTENTApp Store Connect API 키 (.p8 파일 내용)Base64참고 1을 참조하십시오
APP_STORE_CONNECT_TEAM_IDApple Developer Team ID문자열 (예: "XXXXXXXXXX")
CAPGO_IOS_DISTRIBUTION배포 모드: app_store (기본값) 또는 ad_hoc문자열아니오

Android 자격 증명:

변수설명형식필수
ANDROID_KEYSTORE_FILEAPK/AAB을 위한 서명 키스토어 파일Base64예 (릴리즈)
KEYSTORE_KEY_ALIAS키스토어 내의 키 별칭문자열예 (릴리즈)
KEYSTORE_KEY_PASSWORD키 별칭의 비밀번호평문예*
KEYSTORE_STORE_PASSWORD키스토어 파일의 비밀번호__CAPGO_KEEP_0__Yes*
PLAY_CONFIG_JSONGoogle Play 서비스 계정 JSONBase64Yes (제출)

*만 제공된 패스워드가 하나만 있다면, 두 개 모두 사용할 것입니다. KEYSTORE_KEY_PASSWORD 그리고 KEYSTORE_STORE_PASSWORD.

GitHub 액션 예시

GitHub 액션 예시 제목
github/워크플로우/빌드.yml
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 Values

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 JSON
base64 -i play-store-service-account.json | tr -d '\n' > play_config_base64.txt

CI/CD 비밀 키를 위한 Base64 변환을 위해 자격 증명 파일을 변환하세요.

CI/CD 비밀 키를 위한 Base64 변환을 위해 자격 증명 파일을 변환하세요.

CI/CD 비밀 키를 위한 Base64 변환을 위해 자격 증명 파일을 변환하세요.

  • CI/CD 비밀 키를 위한 Base64 변환을 위해 자격 증명 파일을 변환하세요.
  • No credential files on runners
  • 쉘 실행자에 인증 파일이 없습니다
  • 쉘 실행자에 인증 파일이 없습니다

쉘 실행자에 인증 파일이 없습니다

쉘 실행자에 인증 파일이 없습니다

쉘 실행자에 인증 파일이 없습니다

  1. 쉘 실행자에 인증 파일이 없습니다: Generate new certificates and API keys yearly
  2. 쉘 실행자에 인증 파일이 없습니다쉘 실행자에 인증 파일이 없습니다
  3. 쉘 실행자에 인증 파일이 없습니다쉘 실행자에 인증 파일이 없습니다

__CAPGO_KEEP_0__ 저장된 인증 정보 업데이트:

__CAPGO_KEEP_1__ 터미널 창
# Re-run save command with new credentials
bunx @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__ 빌드가 인증 정보가 없다고 말하는 경우:

  1. __CAPGO_KEEP_8__ 인증 정보가 저장되어 있는지 확인:

    __CAPGO_KEEP_1__ 터미널 창
    bunx @capgo/cli@latest build credentials list
  2. __CAPGO_KEEP_9__ 인증 정보가 없으면 저장:

    터미널 창
    bunx @capgo/cli@latest build credentials save --platform ios ...
  3. 인증 파일이 존재하는지 확인:

    터미널 창
    ls -la ~/.capgo-credentials/credentials.json # global
    ls -la .capgo-credentials.json # local (--local)

인증 파일을 읽을 때 "권한이 거부됨" 오류

권한이 거부됨

권한 설정을 수정하세요:

터미널 창
chmod 600 ~/.capgo-credentials/credentials.json # global
chmod 600 .capgo-credentials.json # local

인증 정보가 사용되지 않음

인증 정보가 사용되지 않는 이유

정확한 플랫폼이 지정되었는지 확인하세요:

터미널 창
# Make sure --platform matches saved credentials
bunx @capgo/cli@latest build request com.example.app --platform ios # Uses ios credentials
bunx @capgo/cli@latest build request com.example.app --platform android # Uses android credentials

인증 정보를 초기화하고 다시 저장

인증 정보를 초기화하고 다시 저장

인증 정보가 손상된 것처럼 보인다면:

터미널 창
# Clear all credentials
bunx @capgo/cli@latest build credentials clear
# Save again
bunx @capgo/cli@latest build credentials save --platform ios ...

현재 사용 중인 환경 변수를 추출하세요

  1. __CAPGO_KEEP_0__

    __CAPGO_KEEP_0__
    echo $BUILD_CERTIFICATE_BASE64 # Verify they exist
  2. __CAPGO_KEEP_2__ (if needed) __CAPGO_KEEP_3__

    __CAPGO_KEEP_4__
    echo "$BUILD_CERTIFICATE_BASE64" | base64 -d > cert.p12
    echo "$BUILD_PROVISION_PROFILE_BASE64" | base64 -d > profile.mobileprovision
  3. 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 키를 제거합니다.

  4. 빌드를 테스트하세요

    터미널 창
    bunx @capgo/cli@latest build request com.example.app --platform ios
  5. 환경 변수 제거 (선택 사항)

    터미널 창
    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.

도움이 필요합니다

도움이 필요합니다 섹션

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 액션 통합에서 구현 세부 정보.