Skip to main content

Google Play Console CI

Overview

Google Play ConsoleへのCI整備についてまとめているセクション

GitHub Actionsから参照するsecrets

  • GITHUB_TOKEN
    • GitHub Actions が自動的に生成するトークン のため新規で作成する必要はない。
    • ワークフロー実行時に、GitHub がワークフローごとに一時的なトークンを発行する。
  • ENCODED_RELEASE_KEYSTORE
    • キーストア
    • Base64形式のテキストにエンコードします
  • KEYSTORE_PASSWORD
    • キーストアのパスワード
  • KEY_PASSWORD
    • キーのパスワード
  • SERVICE_ACCOUNT_JSON
    • サービスアカウントを参照します
tip

GitHub Actions の secrets では「文字列のみ保存可能」。そのためシークレット管理は「文字列のみ」が基本

GitHub Actions で管理する secrets(シークレット)は、テキスト形式のキー・バリューのペアで保存される。 そのためシークレットには「バイナリファイルそのもの」を直接アップロードできない。
バイナリ(例: keystore ファイル)を直接入れると、GitHub Actions で受け取るときに文字化けする などの問題が起きる。

Base64にする理由
バイナリファイル(keystoreなど)をそのまま入れられないので、 Base64 で「文字列に変換」 してあげる必要がある。

Base64バイナリファイルを「安全なテキスト形式」に変換する仕組み。 ※画像(PNG/JPG)やPDFなども Base64 にするとテキストで扱える

ワークフローでの decode 手順
ワークフローでは、保存した Base64 文字列をデコード して元の keystore ファイルに戻すステップが必要になる。
具体的には以下のように書くと、文字列 → バイナリに戻せる。

- name: Decode Keystore
run: echo "${{ secrets.ENCODED_RELEASE_KEYSTORE }}" | base64 --decode > keystore.jks

良い質問ですね!答えは以下の通りです😊

🔧 keytool コマンドの正体とOS搭載状況

✅ keytool は Java Development Kit(JDK) に含まれているツール keytool は、Javaのセキュリティツールの一部として提供されるコマンドラインツールです。 ✅ OS自体には組み込まれていない macOS / Windows / Linux いずれのOSでも、OSに標準では含まれていないです。 代わりに、JDKをインストールすると一緒に入ります。

🚀 使うために必要なこと • JDKがインストールされていること 例えば、OpenJDKやOracle JDKなど。 java -version でインストール状況を確認できます。

📝 JDKが入っている場合 • macOS / Linux では通常パスが通っています。例: /usr/bin/keytool や /Library/Java/JavaVirtualMachines/ 以下 • Windowsでも、JDKの bin ディレクトリに含まれています(例: C:\Program Files\Java\jdk-17\bin\keytool.exe)

💡 まとめると: • keytool はJDKに付属していて、OS標準ツールではない。 • JDKをインストールすると使えるようになる!

もし「手元の環境で使えるか確認したい」なら、以下をターミナルで試してみてください👇

keytool -help

これで説明が出ればOKです! 他にJDKのインストールサポートなど欲しければ教えてください😊

Resource