내용으로 건너뛰기

인증서를 관리하세요.

__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 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_1__ 창
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__

Complete Example

Complete Example
터미널 창
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"
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-bumpSkip automatic build-number incrementNo

iOS 인증서 저장 시 CLI:

  1. 인증서와 프로비전 프로파일 파일을 읽습니다.
  2. base64 인코딩으로 변환합니다.
  3. 그리고 저장합니다. ~/.capgo-credentials/credentials.json (또는 .capgo-credentials.json--local)
  4. 평문으로 암호화되지 않은 비밀번호와 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:

  1. 키스토어와 서비스 계정 JSON 파일을 읽습니다.
  2. base64 인코딩으로 변환합니다.
  3. 그것들을 ~/.capgo-credentials/credentials.json (or .capgo-credentials.json __CAPGO_KEEP_0__ --local)
  4. __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__

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

__CAPGO_KEEP_9__

__CAPGO_KEEP_10__
# 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 환경에서 환경 변수를 선호하세요. 저장된 인증 정보보다.

.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_BASE64P12/PKCS12 인증서 code 서명Base64Yes (release)
CAPGO_IOS_PROVISIONING_MAP__CAPGO_KEEP_0__ JSON map of bundle IDs to provisioning profile dataJSON stringYes (release)
P12_PASSWORD__CAPGO_KEEP_0__ P12 인증서 비밀번호Plain textOptional
APPLE_KEY_IDApp Store Connect API Key IDString (e.g., “ABC1234567”)See note¹
APPLE_ISSUER_IDApp Store Connect API Issuer IDUUID string참고 ¹
APPLE_KEY_CONTENT애플 스토어 연결 API 키 (.p8 파일 내용)Base64참고 ¹
APP_STORE_CONNECT_TEAM_ID애플 개발자 팀 ID문자열 (예: "XXXXXXXXXX")
CAPGO_IOS_DISTRIBUTION배포 모드: app_store (기본값) 또는 ad_hoc문자열아니오

안드로이드 자격 증명:

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

*만 제공된 암호가 하나만 있다면, 두 암호 모두에 사용될 것입니다. 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 값 준비

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

환경 변수가 더 안전한 이유

Section titled “Preparing Base64 Values”

이 접근 방식은 보안이 더 높습니다. 이유는:

  • 비밀은 CI/CD 플랫폼에서 관리됩니다.
  • 실행자에 credential 파일이 없습니다.
  • 비밀을 쉽게轮换하고 접근 제어를 하세요.
  • 비밀 사용 기록을 확인하세요.

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

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

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

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

빌드가 인증 정보가 없다고 말할 때:

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

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

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

__CAPGO_KEEP_0__ 사용되지 않는다

__CAPGO_KEEP_0__ 사용되지 않는다 섹션

__CAPGO_KEEP_1__ 플랫폼이 올바르게 지정되어 있는지 확인하세요:

__CAPGO_KEEP_2__ 창
# 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

__CAPGO_KEEP_4__ 사용되지 않는다를 삭제하고 다시 저장하세요

__CAPGO_KEEP_0__ 삭제하고 다시 저장하세요 섹션

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

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

__CAPGO_KEEP_6__에서 환경 변수로 마이그레이션

__CAPGO_KEEP_0__ 환경 변수로 마이그레이션 섹션

__CAPGO_KEEP_0__을 현재 사용 중인 환경 변수를 저장된 자격 증명으로 마이그레이션할 수 있습니다.

  1. __CAPGO_KEEP_0__ 환경 변수를 추출합니다.

    터미널 창
    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_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 빌드 테스트

  4. 터미널 창

    클립보드에 복사
    bunx @capgo/cli@latest build request com.example.app --platform ios
  5. (선택 사항) 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

도움이 필요하세요?

Need Help?

인증 관리에서 계속 진행하세요

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 액션 통합