はじめに
Androidアプリの開発・リリースで頻繁に必要になるのが、キーストアの情報確認です。
- Google Play ConsoleでSHA1/SHA256が必要
- Firebase設定でフィンガープリントが必要
- 署名が正しいか確認したい
これらの場面で使うコマンドをまとめます。
基本:キーストアの全情報を確認する
keytool -list -v -keystore your-keystore.jks
パスワードを入力すると以下が表示されます。
キーストアの種類: JKS
キーストアプロバイダ: SUN
キーストアに含まれるエントリー数: 1
エイリアス名: mykey
作成日: 2024/01/01
エントリー・タイプ: PrivateKeyEntry
証明書チェーンの長さ: 1
証明書[1]:
オーナー: CN=My App, OU=Development, O=My Company
SHA1: AB:CD:EF:12:34:56:...
SHA256: 01:23:45:67:89:AB:...
SHA1・SHA256はFirebaseやPlay Consoleに登録するフィンガープリントとして使います。
エイリアス名だけ確認したい場合
keytool -list -keystore release.jks
-v を省くと簡易表示になります。エイリアス名と種類だけ確認したい場合に使います。
APKがどのキーで署名されているか確認
リリース済みのAPKに対して署名情報を確認できます。
apksigner verify --print-certs app-release.apk
または:
keytool -printcert -jarfile app-release.apk
これでAPKのSHA1/SHA256を確認できます。「このAPKは正しいキーで署名されているか」を確認するときに使います。
debug.keystoreの確認
Android Studioが自動生成するdebug.keystoreはデフォルトの場所にあります。
場所:
C:\Users\ユーザー名\.android\debug.keystore (Windows)
~/.android/debug.keystore (Mac/Linux)
確認コマンド:
# Windows
keytool -list -v -keystore %USERPROFILE%\.android\debug.keystore
# Mac/Linux
keytool -list -v -keystore ~/.android/debug.keystore
デフォルト情報:
| 項目 | 値 |
|---|---|
| パスワード | android |
| エイリアス | androiddebugkey |
| 有効期限 | 30年 |
build.gradleの設定を確認する
どのキーストアを使ってビルドしているか確認したい場合は、app/build.gradle の signingConfigs セクションを見ます。
Groovy (build.gradle):
signingConfigs {
release {
storeFile file("release.jks")
storePassword "xxxxx"
keyAlias "mykey"
keyPassword "xxxxx"
}
}
Kotlin (build.gradle.kts):
signingConfigs {
create("release") {
storeFile = file("release.jks")
storePassword = System.getenv("STORE_PASSWORD")
keyAlias = "mykey"
keyPassword = System.getenv("KEY_PASSWORD")
}
}
パスワードを直接書くのではなく、環境変数から読むのがCI/CD環境では安全です。
Windowsでkeytoolが見つからない場合
'keytool' is not recognized as an internal or external command
このエラーはJDKのbinディレクトリがPATHに追加されていないときに出ます。
対処法1: フルパスで実行
"C:\Program Files\Java\jdk-17\bin\keytool.exe" -list -v -keystore release.jks
対処法2: PATHに追加(恒久的な対処)
- システムのプロパティ → 環境変数を開く
PathにC:\Program Files\Java\jdk-17\binを追加- ターミナルを再起動
対処法3: Android StudioのJDKを使う
"C:\Program Files\Android\Android Studio\jbr\bin\keytool.exe" -list -v -keystore release.jks
Android StudioにはJDKが同梱されているので、インストール済みであれば常に使えます。
まとめ
| 目的 | コマンド |
|---|---|
| キーストアの全情報確認 | keytool -list -v -keystore xxx.jks |
| エイリアス名だけ確認 | keytool -list -keystore xxx.jks |
| APKの署名確認 | apksigner verify --print-certs xxx.apk |
| debug.keystore確認 | keytool -list -v -keystore %USERPROFILE%\.android\debug.keystore |
Firebase設定やPlay Console設定でSHA1/SHA256が必要になったとき、このコマンドで素早く確認できます。