ローカルにビルド資格情報を保存して管理する - iOSおよびAndroidビルドのためのリアルタイム更新管理 - ストアの面倒ごとなくして、5分でインストール

資格情報の管理

iOSとAndroidのビルドクレデンシャルを、便利なクラウドビルドのためにローカルに管理してください。

Capgo CLIはビルドクレデンシャルを ローカルに保存します — Capgoのサーバーには保存されません。 デフォルトでは、すべてのプロジェクトで共有される1つのグローバルファイルに保存されます。 __CAPGO_KEEP_0__をプロジェクトごとに保存するには ~/.capgo-credentials/credentials.json__CAPGO_KEEP_1__を使用してください。 --local __CAPGO_KEEP_1__を使用してプロジェクトごとに保存するには __CAPGO_KEEP_0__を使用してください。 __CAPGO_KEEP_0__を使用してプロジェクトごとに保存するには .capgo-credentials.json Capgo

クレデンシャルをインタラクティブに管理する

セクション「クレデンシャルをインタラクティブに管理する」

保存されたクレデンシャルと仕事を迅速に実行するには、インタラクティブ マネージャが最適です。TUI (同じもの)を開きます build init ここでは、保存されたものを参照できます。アプリとプラットフォームごとに設定されているものを確認し、CI/CD用のファイルにエクスポートするか、プラットフォームのクレデンシャルを削除することができます。 .env ターミナル画面

コピー
bunx @capgo/cli@latest build credentials manage
説明__CAPGO_KEEP_0__
--appId <appId>Appを管理するアプリ (省略した場合は選択肢を提示します)
--platform <ios|android>プラットフォームを管理する (省略した場合は選択肢を提示します)
--localプロジェクトごとに使用する .capgo-credentials.json グローバルファイルではなく

一時的なスクリプトでコマンドを実行したい場合は、以下の個別のコマンドを使用してください。

自動的に使用できるようにローカルにビルドクレデンシャルを保存します。

ターミナル画面
bunx @capgo/cli@latest build credentials save --platform <ios|android> [options]

__CAPGO_KEEP_0__を部分的に更新して、すべてを再提供する必要がなくなる:

__CAPGO_KEEP_0__ウィンドウ
bunx @capgo/cli@latest build credentials update --platform <ios|android> [options]

__CAPGO_KEEP_1__は、プロビジョニング プロファイルの追加マージを使用します — 新しいプロファイルは既存のプロファイルとマージされます。プロビジョニング マップ全体を置き換える場合は、 update __CAPGO_KEEP_2__ — 既存の資格情報に拡張プロファイルを追加する例: __CAPGO_KEEP_0__ウィンドウ __CAPGO_KEEP_0__をクリップボードにコピー --overwrite-ios-provisioning-map.

__CAPGO_KEEP_1__コマンドは、__CAPGO_KEEP_2__と同じオプションを受け付けるが、すべてはオプションです — 提供されたフィールドのみが更新されます。

__CAPGO_KEEP_3__
bunx @capgo/cli@latest build credentials update \
--platform ios \
--ios-provisioning-profile "com.example.app.widget=./widget_profile.mobileprovision"

__CAPGO_KEEP_5__ save __CAPGO_KEEP_6__

View currently saved credentials (passwords are masked):

Terminal window
bunx @capgo/cli@latest build credentials list
# List credentials for a specific app
bunx @capgo/cli@latest build credentials list --appId com.example.app

Remove saved credentials from your local machine:

Terminal window
# 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_0__コマンドは、古い BUILD_PROVISION_PROFILE_BASE64 __CAPGO_KEEP_0__を検出し、古いキーを削除します。 CAPGO_IOS_PROVISIONING_MAP__CAPGO_KEEP_2__ __CAPGO_KEEP_2__ __CAPGO_KEEP_2__

__CAPGO_KEEP_2__

__CAPGO_KEEP_2__

完全な例

完全な例
ターミナル画面
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>__CAPGO_KEEP_0__ の .p12 証明書ファイルのパスはい (リリース)
--p12-password <password>__CAPGO_KEEP_0__ の .p12 証明書のパスワードはい (リリース)
--ios-provisioning-profile <mapping>__CAPGO_KEEP_0__ のプロビジョニング プロファイルのマッピング (、). 複数のターゲット アプリに対して繰り返し可能です。 1 つのプロファイルと 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.App Store Connect __CAPGO_KEEP_0__ の .p8 キーのパス
--apple-key <path>Path to App Store Connect API .p8 keyApp Store Connect __CAPGO_KEEP_0__ のキーアイデンティティ
--apple-key-id <id>App Store Connect API Key ID__CAPGO_KEEP_0__
--apple-issuer-id <id>App Store Connect API Issuer ID (UUID)注記¹を参照
--apple-team-id <id>App Store Connect Team IDYes
--apple-id <email>アプリ固有のパスワードアップロード用のApple IDメールアドレス(APIキーの代替)注記²を参照
--apple-app-specific-password <password>アプリ固有のパスワード(xxxx-xxxx-xxxx-xxxx)注記²を参照
--apple-app-id <id>数字のApp Store ConnectアプリID(例えば 1234567890)注記²を参照
--ios-distribution <mode>配布モード: app_store (default) または ad_hocいいえ
--output-uploadCapgo ビルドアーティファクトの時間制限付きダウンロードリンクを有効にしますいいえ (デフォルト: false)
--output-retention <seconds>__CAPGO_KEEP_0__ ビルド出力の保持期間 (例: 3600s)いいえ (デフォルト: 3600s)
--skip-build-number-bump自動ビルド番号インクリメントをスキップ¹ App Store Connect __CAPGO_KEEP_0__ キー要件

iOS認証情報を保存すると、CLI:

  1. 証明書とプロビジョニングプロファイルファイルを読み取ります
  2. base64エンコードに変換します
  3. 保存先 ~/.capgo-credentials/credentials.json (または .capgo-credentials.json __CAPGO_KEEP_0__ --local)
  4. パスワードとIDを平文(ローカルファイルのみ)で保存します

__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>キーアリセンスファイルYes (release)
--keystore-key-password <password>キーアライアスのパスワードYes (release)
--keystore-store-password <password>キーストアのパスワードYes (release)
--play-config <path>PlayストアサービスアカウントJSONのパスYes (submission)

何が保存されるか

何が保存されるか

Androidの資格情報を保存するときにCLI:

  1. キーストアとサービスアカウントJSONファイルを読み取り
  2. base64エンコードに変換します
  3. 保存したものを ~/.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

Example output:

📋 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. File Permissions

    Terminal window
    # 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. Never Commit Credentials

    Terminal window
    # Ignore the per-project credentials file (used with --local)
    echo ".capgo-credentials.json" >> .gitignore

    グローバルファイルは、ホームディレクトリの外側のリポジトリ内にあります。

  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"

) を書き込むことができます。これには、保存済みのすべてのクレデンシャルを環境変数として含むファイルが含まれます。各行は、CI/CD プロバイダーに追加するシークレットです。両方のプラットフォームがデフォルトで組み込まれているため、 .env.capgo.<appId>.<platform> または 0600を使用して、1 つにスコープすることができます。 --platform ios export --platform android 下記

コミットしないでください。

環境変数の完全なリファレンス

The CLI reads the following environment variables for credentials:

__CAPGO_KEEP_0__は、以下の環境変数を読み取ります。

iOSのクレデンシャル:変数説明フォーマット
BUILD_CERTIFICATE_BASE64P12/PKCS12 certificate for code signingBase64リリース用(Yes)
CAPGO_IOS_PROVISIONING_MAPアプリケーションIDとプロビジョニングプロファイルデータのJSONマップJSON文字列リリース用(Yes)
P12_PASSWORDP12証明書のパスワード平文任意
APPLE_KEY_IDApp Store Connect API Key ID文字列(例:「ABC1234567」)注記¹を参照
APPLE_ISSUER_IDApp Store Connect API 発行者 IDUUID文字列注記¹を参照
APPLE_KEY_CONTENTApp Store Connect API キー (.p8ファイルの内容)Base64注記¹を参照
APP_STORE_CONNECT_TEAM_IDApple Developer チーム ID文字列(例:「XXXXXXXXXX」)Yes
CAPGO_IOS_DISTRIBUTION配布モード: app_store (標準) または ad_hoc文字列No

Androidのクレデンシャル:

変数説明フォーマット必要
ANDROID_KEYSTORE_FILEAPK/AABの署名用キーストアファイルBase64Yes (リリース)
KEYSTORE_KEY_ALIASキーストア内のキーアリセイ文字列Yes (リリース)
KEYSTORE_KEY_PASSWORD__CAPGO_KEEP_0__Plain textYes*
KEYSTORE_STORE_PASSWORD__CAPGO_KEEP_0__Plain textYes*
PLAY_CONFIG_JSONGoogle Play service account JSONBase64Yes (

* KEYSTORE_KEY_PASSWORD __CAPGO_KEEP_0__ KEYSTORE_STORE_PASSWORD.

GitHub Actions Example

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 に変換する

セクション: CI/CD シークレット用に 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

Why Environment Variables Are More Secure

環境変数のセキュリティ

This approach is more secure because:

  • CI/CDプラットフォームでシークレットを管理
  • ランナー上にクレデンシャルファイルがない
  • シークレットのローテーションとアクセス制御が簡単
  • シークレットの使用履歴

クレデンシャルローテーション

クレデンシャルローテーション

定期的にクレデンシャルをローテーションする

  1. iOS: 年に1回新しい証明書とAPIキーの生成
  2. Android年次に1回のキーストアパスワードの変更
  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_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_0__を読み込む際に「許可されていません」というエラーが発生します

__CAPGO_KEEP_3__「許可されていません」というエラーが発生する場合のセクション

__CAPGO_KEEP_4__ファイルの権限を修正:

ターミナル画面
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"

    既存の古いフォーマットで保存されている資格情報がある場合 ( BUILD_PROVISION_PROFILE_BASE64)、次のコマンドを実行してください。

    ターミナル画面
    bunx @capgo/cli@latest build credentials migrate --platform ios

    このコマンドは、古い単一プロファイルを CAPGO_IOS_PROVISIONING_MAP に変換し、古い BUILD_PROVISION_PROFILE_BASE64APPLE_PROFILE_NAME キーを削除します。

  4. ビルドをテスト

    ターミナル画面
    bunx @capgo/cli@latest build request com.example.app --platform ios
  5. 環境変数を削除する (任意)

    ターミナル画面
    unset BUILD_CERTIFICATE_BASE64 BUILD_PROVISION_PROFILE_BASE64

クレデンシャルは、1 つの JSON ファイルに保存されます:

  • グローバル (デフォルト): ~/.capgo-credentials/credentials.json すべてのプロジェクトに共有されます
  • ローカル (with --local): .capgo-credentials.json プロジェクトのルートディレクトリ — そのプロジェクトごとにグローバルファイルを上書きします

自動的に最初にクレデンシャルを保存するとファイルが作成されます。追加 .capgo-credentials.json プロジェクトごとにクレデンシャルはコミットされません。 .gitignore 次のステップ

セクションのタイトル “次のステップ”

Getting Started

あなたは Managing Credential CI/CD自動化を計画するには、 Capgo CI/CD Capgo CI/CDの製品ワークフロー Capgoネイティブビルド Capgoネイティブビルドの製品ワークフロー Capgo統合 Capgo統合の製品ワークフロー CI/CD統合 CI/CD統合の実装詳細 GitHubアクション統合 GitHubアクション統合の実装詳細