Androidキーストアの確認方法 — keytoolコマンドでSHA1/SHA256を素早く確認する

Androidキーストアの確認方法 — keytoolコマンドでSHA1/SHA256を素早く確認する

はじめに

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.gradlesigningConfigs セクションを見ます。

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に追加(恒久的な対処)

  1. システムのプロパティ → 環境変数を開く
  2. PathC:\Program Files\Java\jdk-17\bin を追加
  3. ターミナルを再起動

対処法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が必要になったとき、このコマンドで素早く確認できます。