コンテンツへスキップ

認証情報の管理

便利なクラウドビルドのために、iOSおよびAndroidのビルド認証情報をローカルで管理します。

Capgo CLIを使用すると、ビルド認証情報をマシンのローカルの.capgo-credentialsフォルダに保存できます。ビルドを実行すると、これらの認証情報が自動的に使用され、Capgoのビルドサーバーに安全に送信されます。

自動使用のためにビルド認証情報をローカルに保存:

Terminal window
npx @capgo/cli build credentials save --platform <ios|android> [options]

現在保存されている認証情報を表示(パスワードはマスクされます):

Terminal window
npx @capgo/cli build credentials list

ローカルマシンから保存された認証情報を削除:

Terminal window
# すべての認証情報をクリア
npx @capgo/cli build credentials clear
# iOS認証情報のみをクリア
npx @capgo/cli build credentials clear --platform ios
# Android認証情報のみをクリア
npx @capgo/cli build credentials clear --platform android
Terminal window
npx @capgo/cli build credentials save \
--platform ios \
--certificate ./cert.p12 \
--p12-password "YourP12Password" \
--provisioning-profile ./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証明書のパスワードはい(リリース)
--provisioning-profile <path>.mobileprovisionファイルへのパスはい(リリース)
--provisioning-profile-prod <path>本番用プロビジョニングプロファイル(オプション)いいえ
--apple-key <path>App Store Connect API .p8キーへのパスはい(送信)
--apple-key-id <id>App Store Connect APIキーIDはい(送信)
--apple-issuer-id <id>App Store Connect API発行者ID(UUID)はい(送信)
--apple-team-id <id>App Store ConnectチームIDはい(送信)
--apple-id <email>Apple IDメール(代替認証)いいえ
--apple-app-password <password>アプリ固有パスワード(代替認証)いいえ

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

  1. 証明書とプロビジョニングプロファイルファイルを読み取る
  2. Base64エンコーディングに変換
  3. .capgo-credentialsフォルダに認証情報を保存
  4. パスワードとIDをプレーンテキストとして保存(ローカルファイルのみ)

保存されるファイル構造:

{
"ios": {
"BUILD_CERTIFICATE_BASE64": "...",
"BUILD_PROVISION_PROFILE_BASE64": "...",
"APPLE_KEY_CONTENT": "...",
"P12_PASSWORD": "...",
"APPLE_KEY_ID": "ABC1234567",
"APPLE_ISSUER_ID": "...",
"APP_STORE_CONNECT_TEAM_ID": "TEAM123456"
}
}
Terminal window
npx @capgo/cli 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>キーエイリアスのパスワードはい(リリース)
--keystore-store-password <password>キーストアのパスワードはい(リリース)
--play-config <path>Play Storeサービスアカウント JSONへのパスはい(送信)

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

  1. キーストアとサービスアカウント JSONファイルを読み取る
  2. Base64エンコーディングに変換
  3. .capgo-credentialsフォルダに認証情報を保存
  4. パスワードとエイリアスをプレーンテキストとして保存(ローカルファイルのみ)

保存されるファイル構造:

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

認証情報を保存すると、ビルド時に自動的に使用されます:

Terminal window
# .capgo-credentialsフォルダから認証情報が自動的に読み込まれます
npx @capgo/cli build com.example.app --platform ios

環境変数を使用して保存された認証情報を上書きすることもできます:

Terminal window
# 環境変数は保存された認証情報よりも優先されます
BUILD_CERTIFICATE_BASE64="..." \
P12_PASSWORD="different-password" \
npx @capgo/cli build com.example.app --platform ios

優先順位:

  1. 環境変数(最高優先度)
  2. .capgo-credentialsフォルダに保存された認証情報
  3. 認証情報なし(最低優先度)

保存されている認証情報を一覧表示:

Terminal window
npx @capgo/cli build credentials list

出力例:

📋 保存されたビルド認証情報:
iOS認証情報:
✓ 証明書(base64)
✓ プロビジョニングプロファイル(base64)
✓ Apple Keyコンテンツ(base64)
✓ P12パスワード: ********
✓ Apple Key ID: ABC1234567
✓ Apple発行者ID: 00000000-0000-0000-0000-000000000000
✓ チームID: TEAM123456
Android認証情報:
✓ キーストア(base64)
✓ Play Store設定(base64)
✓ キーストアエイリアス: my-key-alias
✓ キーパスワード: ********
✓ ストアパスワード: ********
場所: .capgo-credentials/
🔒 これらの認証情報はマシン上にローカルにのみ保存されます。
ビルド時にCapgoに送信されますが、決して保存されません。
ビルド完了後に自動削除されます(最大24時間)。

セキュリティのベストプラクティス

Section titled “セキュリティのベストプラクティス”

ローカルストレージのセキュリティ

Section titled “ローカルストレージのセキュリティ”
  1. ファイル権限

    Terminal window
    # 認証情報フォルダが他のユーザーから読み取れないようにする
    chmod 700 .capgo-credentials
    chmod 600 .capgo-credentials/*
  2. 認証情報をコミットしない

    Terminal window
    # .gitignoreに追加
    echo ".capgo-credentials/" >> .gitignore
  3. 認証情報の分離

    • ローカル開発とCI/CDで異なる認証情報を使用
    • 認証情報を定期的にローテーション
    • チームメンバー間で認証情報を共有しない

CI/CD環境では、保存された認証情報よりも環境変数を優先してください:

# GitHub Actions
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.IOS_CERTIFICATE }}
P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
# ... その他のシークレット

これはより安全です:

  • シークレットはCI/CDプラットフォームによって管理される
  • ランナーに認証情報ファイルがない
  • ローテーションとアクセス制御が簡単
  • シークレット使用の監査証跡

認証情報を定期的にローテーション:

  1. iOS: 年に1回、新しい証明書とAPIキーを生成
  2. Android: 年に1回、キーストアパスワードを変更
  3. チーム変更後: チームメンバーが退職したときにローテーション

保存された認証情報を更新:

Terminal window
# 新しい認証情報でsaveコマンドを再実行
npx @capgo/cli build credentials save --platform ios --certificate ./new-cert.p12 ...

ビルドで認証情報が見つからないと表示される場合:

  1. 認証情報が保存されているか確認:

    Terminal window
    npx @capgo/cli build credentials list
  2. 認証情報がない場合は保存:

    Terminal window
    npx @capgo/cli build credentials save --platform ios ...
  3. 認証情報フォルダが存在することを確認:

    Terminal window
    ls -la .capgo-credentials/

認証情報を読み取る際の「Permission denied」

Section titled “認証情報を読み取る際の「Permission denied」”

ファイル権限を修正:

Terminal window
chmod 700 .capgo-credentials
chmod 600 .capgo-credentials/*

正しいプラットフォームが指定されていることを確認:

Terminal window
# --platformが保存された認証情報と一致することを確認
npx @capgo/cli build com.example.app --platform ios # ios認証情報を使用
npx @capgo/cli build com.example.app --platform android # android認証情報を使用

認証情報が破損しているように見える場合:

Terminal window
# すべての認証情報をクリア
npx @capgo/cli build credentials clear
# 再度保存
npx @capgo/cli build credentials save --platform ios ...

現在環境変数を使用している場合、保存された認証情報に移行できます:

  1. 現在の環境変数を抽出

    Terminal window
    echo $BUILD_CERTIFICATE_BASE64 # 存在することを確認
  2. Base64ファイルを元のファイルにデコード(必要に応じて)

    Terminal window
    echo "$BUILD_CERTIFICATE_BASE64" | base64 -d > cert.p12
    echo "$BUILD_PROVISION_PROFILE_BASE64" | base64 -d > profile.mobileprovision
  3. CLIを使用して保存

    Terminal window
    npx @capgo/cli build credentials save \
    --platform ios \
    --certificate ./cert.p12 \
    --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"
  4. ビルドをテスト

    Terminal window
    npx @capgo/cli build com.example.app --platform ios
  5. 環境変数を削除(オプション)

    Terminal window
    unset BUILD_CERTIFICATE_BASE64 BUILD_PROVISION_PROFILE_BASE64

認証情報は.capgo-credentialsフォルダに保存されます:

  • macOS/Linux: .capgo-credentials/(プロジェクトルートまたはホームディレクトリ内)
  • Windows: .capgo-credentials\(プロジェクトルートまたはホームディレクトリ内)

フォルダは、最初に認証情報を保存したときに自動的に作成されます。