クローズドテストやリリース作業でAABを作成したり、もらったりすることがあると思います。
そして、未署名で作って、とお願いしたのに署名されているなんてこともあったりします。
このようなときに、生成されたAABが未署名かどうかを確認する方法を説明します。
以下のコマンドを実行する。
jarsigner -verify -verbose your_created_aab_file.aab
-verify: 署名の検証を行うオプション
-verbose: 詳細情報を表示するオプション
すると以下のような結果が出力されます。
この例ではAABは未署名です。
$ jarsigner -verify -verbose app-prd-release.aab
s=シグネチャが検証されました
m=エントリがマニフェスト内にリストされます
k=1つ以上の証明書がキーストアで検出されました
マニフェストは存在しません。
jarは署名されていません。
署名されている場合は以下のような結果になります。
debug署名したAABを使って検証しています。
...
sm 90 Thu Jan 01 01:01:02 JST 1981 base/root/play-services-oss-licenses.properties
sm 76 Thu Jan 01 01:01:02 JST 1981 base/root/play-services-tasks.properties
141111 Thu Jan 01 01:01:02 JST 1981 META-INF/ANDROIDD.SF
1167 Thu Jan 01 01:01:02 JST 1981 META-INF/ANDROIDD.RSA
s 141062 Thu Jan 01 01:01:02 JST 1981 META-INF/MANIFEST.MF
s=シグネチャが検証されました
m=エントリがマニフェスト内にリストされます
k=1つ以上の証明書がキーストアで検出されました
- 署名者: "C=US, O=Android, CN=Android Debug"
ダイジェスト・アルゴリズム: SHA-256
署名アルゴリズム: SHA256withRSA、2048ビット・キー
jarが検証されました。
以上