CI 連携

Fastlane で Android 登録確認をリリース前に実行

Fastlane では、署名、メタデータ、ストア送信と同様に登録をリリース条件へ組み込めます。昇格に近い位置でネットワーク照会を行い、実際に公開するパッケージを確認します。

概要

Fastlane での Android 登録確認を upload や promotion lane の直前に置き、未登録と証明書不一致を検出します。

対象: Fastlane supply、gradle、独自 lane を使うモバイル リリース チーム。

確認手順

  1. lane と同じ設定からリリース application ID を読む。
  2. lane が作った署名済み APK から証明書フィンガープリントを抽出する。
  3. 保護された Status API を呼び、安定した state を解析する。
  4. NOT_REGISTERED または不一致なら lane を止め、対応ガイドを示す。

要点

配置署名後、アップロードまたは昇格前
失敗時の出力安定状態と対応 URL
ログ禁止シークレットと秘密署名材料
注意点

再試行はネットワークまたは割り当てエラーだけに使います。fastlane の sh は既定でコマンドと出力を記録するため、資格情報を含む呼び出しは log: false または保護されたヘルパーを使い、ログを再度有効にする --troubleshoot を併用しないでください。

詳しい解説

署名後に照会を置く

Fastlane lane は、これから昇格するアーティファクトから ID を取り出すべきです。早い段階で照会すると、違う flavor、パッケージ接尾辞、証明書を検査するおそれがあります。

sh または小さな Ruby action で公式 API を呼び、JSON を解析し、安定した登録エラーには明確な UI.user_error! を出します。下のコードは構造例であり、そのままでは API キーを含むコマンドがログに出ます。実装時は log: false の sh または資格情報を隠すヘルパーで包んでください。

  • 先にビルドと署名を行う。
  • 本番 application ID を照会する。
  • 失敗メッセージから対応ガイドへ案内する。
Fastlane lane の構造例
status = sh("curl --fail --silent -H 'X-Goog-Api-Key: #{ENV.fetch('ANDROID_DEVELOPER_ID_API_KEY')}' '#{endpoint}' | jq -r .state").strip
UI.user_error!("Android package is #{status}") unless status == "REGISTERED"

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

ステータスを確認 →

よくある質問

証明書不一致を lane で再試行すべきですか?

いいえ。調査が必要な安定した ID の結果であり、同じ入力を繰り返しても解決しません。

公開フィンガープリントをログに出せますか?

秘密鍵ではありませんが、ログを最小化し、管理されたリリース証拠だけに保存する運用も選べます。

出典と更新情報

最終確認日: