__CAPGO_KEEP_0__ - __CAPGO_KEEP_1__ 앱을 위한 실시간 업데이트

인증 정보 관리

iOS 및 Android 빌드 인증서를 로컬로 관리하여 편리한 클라우드 빌드를 관리하세요.

Capgo CLI에서 빌드 인증서를 저장합니다. 컴퓨터에 저장 — Capgo의 서버에 저장하지 않습니다. 기본적으로 모든 프로젝트에 공유되는 하나의 전역 파일에 저장됩니다. ~/.capgo-credentials/credentials.json프로젝트당 별도로 저장 --local 을 유지하기 위해 __CAPGO_KEEP_0__를 전달합니다. __CAPGO_KEEP_1__ .capgo-credentials.json Capgo

명령어

명령어

인증 정보 관리

인증 정보 관리

저장된 인증 정보와 작업하기 가장 빠른 방법은 인터랙티브 매니저입니다. 인터랙티브 매니저는 TUI(터미널 사용자 인터페이스)를 열어 저장된 인증 정보를浏览할 수 있고, 앱 및 플랫폼별로 구성된 것을 확인할 수 있으며, CI/CD에 적합한 파일을 내보내거나 플랫폼의 인증 정보를 삭제할 수 있습니다. build init 터미널 창 .env 클립보드에 복사

선택
bunx @capgo/cli@latest build credentials manage
설명설명
--appId <appId>앱 관리 (생략 시 선택하도록 유도)
--platform <ios|android>플랫폼 관리 (생략 시 선택하도록 유도)
--local프로젝트별로 사용 .capgo-credentials.json global 파일 대신

일회성 스크립트 명령어를 선호하십니까? 아래의 개별 명령어를 사용하세요.

인증 정보 저장

인증 정보 저장

자동 사용을 위해 로컬에 빌드 인증 정보를 저장하세요:

터미널 창
bunx @capgo/cli@latest build credentials save --platform <ios|android> [options]

인증 정보 업데이트

인증 정보 업데이트

__CAPGO_KEEP_0__:

__CAPGO_KEEP_1__:
bunx @capgo/cli@latest build credentials update --platform <ios|android> [options]

__CAPGO_KEEP_3__: update __CAPGO_KEEP_4__: existing credentials을 부분적으로 업데이트하려면 다시 모든 것을 제공하지 않아도 됩니다: __CAPGO_KEEP_5__: --overwrite-ios-provisioning-map.

명령어를 사용하여

기존 프로파일과 새로운 프로파일을 합쳐서 제공합니다. 기존 프로파일을 모두 교체하려면
bunx @capgo/cli@latest build credentials update \
--platform ios \
--ios-provisioning-profile "com.example.app.widget=./widget_profile.mobileprovision"

기존 인증서에 확장 프로파일을 추가하는 예: save __CAPGO_KEEP_7__:

인증 정보 목록

인증 정보 목록 섹션

현재 저장된 인증 정보 (비밀번호는 가려져 있습니다)를 보려면:

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

인증 정보 이전

인증 정보 이전 섹션

__CAPGO_KEEP_0__을 새로운 다중 목표 형식으로 변환하세요.:

__CAPGO_KEEP_0__ 창
bunx @capgo/cli@latest build credentials migrate --platform ios

__CAPGO_KEEP_0__ 명령은 오래된 BUILD_PROVISION_PROFILE_BASE64 __CAPGO_KEEP_0__,__CAPGO_KEEP_0__으로 변환하고, 그들을 제거합니다. 자세한 내용은 CAPGO_IOS_PROVISIONING_MAP__CAPGO_KEEP_0__에서 __CAPGO_KEEP_0__로의 마이그레이션 을 참조하세요. __CAPGO_KEEP_0__ iOS 자격 증명 저장

__CAPGO_KEEP_0__ 제목 ‘__CAPGO_KEEP_0__ iOS 자격 증명 저장’

__CAPGO_KEEP_0__

예제 완료

예제 완료
터미널 창
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>__CAPGO_KEEP_0__ 인증서 파일 경로예 (릴리즈)
--p12-password <password>__CAPGO_KEEP_0__ 인증서 파일의 암호예 (릴리즈)
--ios-provisioning-profile <mapping>__CAPGO_KEEP_0__ 프로비전 프로파일 매핑 (,). 여러 대상 앱에 대해 반복 가능합니다. 단일 프로파일이 있고 __CAPGO_KEEP_0__ bundleId 접두사가 없는 경우, __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__CAPGO_KEEP_0__ App Store Connect 키 ID
--apple-key-id <id>App Store Connect API Key ID__CAPGO_KEEP_0__
--apple-issuer-id <id>App Store Connect API 발급자 ID (UUID)See note¹
--apple-team-id <id>App Store Connect 팀 IDYes
--apple-id <email>애플 ID 이메일 (앱별 암호 업로드 대안으로 API 키 사용)See note²
--apple-app-specific-password <password>앱별 암호 (xxxx-xxxx-xxxx-xxxx)See note²
--apple-app-id <id>숫자 App Store Connect 앱 ID (예 1234567890)See note²
--ios-distribution <mode>배포 모드: app_store (기본값) 또는 ad_hocNo
--output-uploadCapgo 다운로드 링크를 시간 제한된 빌드 아티팩트에 활성화하세요.No (기본값: false)
--output-retention <seconds>빌드 출력을 얼마나 유지할 것인가 (예: 3600s)No (기본값: 3600s)
--skip-build-number-bump자동 빌드 번호 증가를 생략합니다.No

iOS 인증서 및 프로비전 프로파일이 저장되는 항목입니다.

Section titled “What Gets Stored”

iOS 인증서 및 프로비전 프로파일을 저장할 때 CLI:

  1. 인증서와 프로비전 프로파일 파일을 읽습니다.
  2. base64 인코딩으로 변환합니다.
  3. 저장합니다. ~/.capgo-credentials/credentials.json (또는 .capgo-credentials.json __CAPGO_KEEP_0__ --local)
  4. __CAPGO_KEEP_0__

__CAPGO_KEEP_1__

{
"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"
}
}

__CAPGO_KEEP_3__

__CAPGO_KEEP_4__

완전한 예제

완전한 예제 섹션
터미널 창
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)Yes (release)
--keystore-key-password <password>__CAPGO_KEEP_0__의 비밀번호Yes (release)
--keystore-store-password <password>키 별칭의 키 스토어 비밀번호Yes (release)
--play-config <path>Play Store 서비스 계정 JSON의 경로Yes (submission)

안드로이드 인증서를 저장할 때 CLI:

  1. 키 스토어와 서비스 계정 JSON 파일을 읽어 base64 인코딩으로 변환합니다.
  2. What Gets Stored
  3. __CAPGO_KEEP_0__을 저장합니다. ~/.capgo-credentials/credentials.json (또는 .capgo-credentials.json--local)
  4. 비밀번호와 별칭을 평문으로 저장합니다 (로컬 파일만).

저장된 파일 구조:

{
"android": {
"ANDROID_KEYSTORE_FILE": "...",
"PLAY_CONFIG_JSON": "...",
"KEYSTORE_KEY_ALIAS": "my-key-alias",
"KEYSTORE_KEY_PASSWORD": "...",
"KEYSTORE_STORE_PASSWORD": "..."
}
}

저장된 인증 정보를 사용합니다.

인증 정보를 사용하는 방법

절에 제목이 있습니다 “인증 정보를 사용하는 방법”

인증 정보를 저장한 후, 자동으로 빌드 시 사용됩니다.
# Credentials automatically loaded from ~/.capgo-credentials/credentials.json
bunx @capgo/cli@latest build request com.example.app --platform ios

클립보드에 복사합니다.

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

우선 순위:

  1. 환경 변수 (가장 높은 우선 순위)
  2. 저장된 자격 증명 (~/.capgo-credentials/credentials.json, 또는 로컬 .capgo-credentials.json)
  3. 자격 증명이 없는 경우 (가장 낮은 우선 순위)

저장된 자격 증명 목록:

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

보안 최적화 방법

보안 최적화 방법 섹션

로컬 스토리지 보안

로컬 스토리지 보안 섹션
  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. 분리된 인증 정보

    • 로컬 개발과 CI/CD를 위한 별도의 인증 정보를 사용하세요.
    • 인증 정보를 정기적으로轮전하세요.
    • 팀원들 사이에 인증 정보를 공유하지 마세요.

CI/CD 사용

CI/CD 사용

CI/CD 환경에서 환경 변수를 저장된 인증 정보보다 선호하세요. 준비된 상태로 내보내세요.

수동으로 각 자격 증명 파일을 base64로 인코딩하는 대신 (아래 참조 ),파일을 생성해 주세요: build credentials manage 터미널 창

복사
bunx @capgo/cli@latest build credentials manage
# pick your app → choose "Export to .env"

)을 생성합니다. 기본적으로 두 플랫폼이 결합되어 있습니다. 하나만으로 제한하려면 .env.capgo.<appId>.<platform> 또는 0600을 추가하세요. --platform ios 권한 --platform android 을 추가하세요.

환경 변수 전체 참조

환경 변수 전체 참조

CLI는 다음 환경 변수를 읽어 인증 정보를 읽습니다:

iOS 인증 정보:

변수설명형식필수
BUILD_CERTIFICATE_BASE64P12/PKCS12 인증서로 code에 서명하는 것Base64예 (릴리즈)
CAPGO_IOS_PROVISIONING_MAP앱 번들 ID를 프로비저닝 프로파일 데이터로 매핑한 JSON 객체JSON 문자열예 (릴리즈)
P12_PASSWORDP12 인증서의 암호평문선택 사항
APPLE_KEY_ID앱 스토어 연결 API 키 ID문자열 (예: 'ABC1234567')참고 ¹을 참조하십시오
APPLE_ISSUER_ID애플 스토어 연결 API 발급자 IDUUID 문자열참고사항 1을 참조하십시오
APPLE_KEY_CONTENT애플 스토어 연결 API 키 (.p8 파일 내용)Base64참고사항 1을 참조하십시오
APP_STORE_CONNECT_TEAM_ID애플 개발자 팀 ID문자열 (예: "XXXXXXXXXX")
CAPGO_IOS_DISTRIBUTION배포 모드: app_store (기본값) 또는 ad_hoc문자열No

안드로이드 인증 정보:

변수설명형식필수
ANDROID_KEYSTORE_FILEAPK/AAB을 위한 키스토어 파일Base64Yes (release)
KEYSTORE_KEY_ALIAS키스토어 내의 키 별칭문자열Yes (release)
KEYSTORE_KEY_PASSWORD__CAPGO_KEEP_0__ 키 별칭의 비밀번호평문Yes*
KEYSTORE_STORE_PASSWORD__CAPGO_KEEP_0__ 키 스토어 파일의 비밀번호평문Yes*
PLAY_CONFIG_JSONGoogle Play 서비스 계정 JSONBase64Yes (submission)

*만 비밀번호 하나가 제공되면, 두 개 모두에 사용됩니다. KEYSTORE_KEY_PASSWORD 그리고 KEYSTORE_STORE_PASSWORD.

GitHub 액션 예시

GitHub 액션 예시 제목
github/workflows/build.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 }}

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 플랫폼에서 비밀을 관리합니다
  • 실행자에 비밀 파일이 없습니다
  • 비밀을 쉽게轮换하고 접근 제어를 적용할 수 있습니다
  • 비밀 사용 기록을 관리할 수 있습니다

정기적으로 비밀을轮환하세요:

  1. iOS: 연간 새로운 인증서와 API 키를 생성하세요
  2. 안드로이드: 연간 키 스토어 비밀번호 변경
  3. 팀 구성 변경 후: 팀 구성원 떠나는 경우 회전

저장된 자격 증명 업데이트:

터미널 창
# Re-run save command with new credentials
bunx @capgo/cli@latest build credentials save --platform ios --certificate ./new-cert.p12 ...

빌드가 자격 증명이 없다고 말하는 경우:

  1. __CAPGO_KEEP_0__을 확인합니다.:

    __CAPGO_KEEP_1__ 창
    bunx @capgo/cli@latest build credentials list
  2. __CAPGO_KEEP_0__이 없으면 __CAPGO_KEEP_0__을 저장합니다.:

    __CAPGO_KEEP_1__ 창
    bunx @capgo/cli@latest build credentials save --platform ios ...
  3. __CAPGO_KEEP_0__ 파일이 존재하는지 확인합니다.:

    __CAPGO_KEEP_1__ 창
    ls -la ~/.capgo-credentials/credentials.json # global
    ls -la .capgo-credentials.json # local (--local)

__CAPGO_KEEP_2__가 읽을 때 __CAPGO_KEEP_2__가 발생합니다.

__CAPGO_KEEP_2__ 제목 ‘__CAPGO_KEEP_2__가 읽을 때 __CAPGO_KEEP_2__가 발생합니다.’

__CAPGO_KEEP_2__ 파일 권한을 수정합니다.

터미널 창
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. 현재 환경 변수를 추출하세요

    터미널 창
    echo $BUILD_CERTIFICATE_BASE64 # Verify they exist
  2. base64 파일을 원본 파일로 되돌리세요 (만약 필요하다면) (만약 필요하다면)

    터미널 창
    echo "$BUILD_CERTIFICATE_BASE64" | base64 -d > cert.p12
    echo "$BUILD_PROVISION_PROFILE_BASE64" | base64 -d > profile.mobileprovision
  3. 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_1__ existing__CAPGO_KEEP_2__ (__CAPGO_KEEP_3__) BUILD_PROVISION_PROFILE_BASE64__CAPGO_KEEP_4__: __CAPGO_KEEP_5__

    __CAPGO_KEEP_6__
    bunx @capgo/cli@latest build credentials migrate --platform ios

    __CAPGO_KEEP_1__ existing__CAPGO_KEEP_2__ (__CAPGO_KEEP_3__) CAPGO_IOS_PROVISIONING_MAP __CAPGO_KEEP_4__ converts the legacy single-profile to a __CAPGO_KEEP_7__ and removes the old __CAPGO_KEEP_8__ and __CAPGO_KEEP_9__ keys. BUILD_PROVISION_PROFILE_BASE64 __CAPGO_KEEP_10__ APPLE_PROFILE_NAME __CAPGO_KEEP_6__

  4. __CAPGO_KEEP_0__

    __CAPGO_KEEP_1__ existing__CAPGO_KEEP_2__ (__CAPGO_KEEP_3__)
    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 — 모든 프로젝트에 걸쳐 공유됩니다
  • 지역 (with --local): .capgo-credentials.json 프로젝트 루트에서 — 전역 파일을 해당 프로젝트에 대체합니다.

파일은 처음으로 자격 증명을 저장할 때 자동으로 생성됩니다. 추가 .capgo-credentials.json 프로젝트에 .gitignore 따라서 프로젝트별 자격 증명은 절대 커밋되지 않습니다.

관리 자격 증명에서 계속하기

관리 자격 증명 사용 중인 경우

관리 자격 증명에서 계속하기로 이동하기 관리 자격 증명 사용 중인 경우 CI/CD 자동화 계획을 수립하기 위해 연결하세요. Capgo CI/CD Capgo CI/CD에서 제품 워크플로우를 위해 Capgo 네이티브 빌드 Capgo 네이티브 빌드에서 제품 워크플로우를 위해 Capgo 통합 Capgo 통합에서 제품 워크플로우를 위해 CI/CD 통합 CI/CD 통합 구현 세부 사항에 대해 GitHub 액션 통합 GitHub 액션 통합 구현 세부 사항에 대해