CI 連携

GitHub Actions で Android パッケージ登録を CI 確認

リリース ワークフローでは、公開前に本番 application ID と証明書フィンガープリントを照会できます。API キーは暗号化された CI シークレット、または管理された社内プロキシの背後に置きます。

概要

Android パッケージ登録 CI を GitHub Actions に追加し、Google API キーを公開せずに本番リリースを事前確認します。

対象: GitHub Actions で Android のビルド、署名、リリースを自動化するチーム。

確認手順

  1. リリース バリアントから本番 application ID を取得する。
  2. 署名済みアーティファクトから公開 SHA-256 フィンガープリントを抽出する。
  3. 保護されたジョブまたはチーム エンドポイントから公式 Status API を呼ぶ。
  4. 未登録または不一致なら昇格を止め、手動例外の方針を適用する。

要点

シークレットGoogle API key
安全なビルド出力公開証明書 SHA-256
推奨ゲートストア昇格の前
注意点

Actions ログに API キー、キーストア パスワード、秘密署名鍵を出さないでください。公開証明書フィンガープリントは秘密鍵ではありません。

詳しい解説

リリース ゲートのジョブ

リリース APK の署名後、ストア昇格前に照会します。Google API キーは GitHub Actions secrets に保存し、Android Developer ID Status API だけに制限します。信頼できないコードがリリース資格情報へ触れる pull_request コンテキストを避けます。

以下はパッケージ名だけを確認する最小例です。証明書まで検証するには署名済みアーティファクトから SHA-256 を取得し、リクエストに certificateFingerprint を追加します。jq で state を解析し、安定した未解決状態は即時に失敗させ、RESOURCE_EXHAUSTED、INTERNAL、UNAVAILABLE だけを上限付き指数バックオフで再試行します。

  • API キーを echo しない。
  • リリース ジョブのサードパーティ Actions をコミット SHA で固定する。
  • 署名秘密情報を含めず状態アーティファクトを保存する。
GitHub Actions の最小パッケージ確認例
- name: Check Android registration
  env:
    API_KEY: ${{ secrets.ANDROID_DEVELOPER_ID_API_KEY }}
    PACKAGE_NAME: com.example.app
  run: |
    curl --fail --silent --show-error \
      -H "X-Goog-Api-Key: $API_KEY" \
      "https://androiddeveloperidstatus.googleapis.com/v1/packages/$PACKAGE_NAME/packageRegistrationStatus:check" \
      | tee status.json
    test "$(jq -r .state status.json)" = "REGISTERED"

製品版のパッケージ名を入力し、署名も照合する場合は配布 APK の証明書 SHA-256 を追加します。ストア審査やアプリの安全性とは別の確認です。

ステータスを確認 →

よくある質問

CI から PkgReady のブラウザ用エンドポイントを呼ぶべきですか?

いいえ。CI は組織が所有し保護する API キーを使い、公式のサーバー間 API を直接呼びます。

どの結果でリリースを失敗させますか?

NOT_REGISTERED と証明書不一致では失敗させます。割り当て超過やサービス障害は、上限付き再試行を伴うインフラ障害として扱います。

出典と更新情報

最終確認日: