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
- サービスアカウントを参照します
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のインストールサポートなど欲しければ教えてください😊