apkファイルに署名する方法【Androidアプリ】

やること

・apkファイルに署名をする方法を2つ
・keystoreファイルの確認方法
・apkファイルの確認方法

* Macでやってます。
(Windowsでも多分、手順は一緒です)

apkファイルに署名することで何が嬉しいか

・ストアに公開しないプリインストール用にアプリを作る(端末内で初期から入ってるアプリとか)
・身内だけにアプリを配る
など

署名する方法

署名する方法は2つ
1 コマンドから作成する
2 Android Studioから作成する(推奨)

コマンドから作成したkeystoreファイルで署名する

前提条件、Android Studioからapkファイルをリリースビルドしておく

1) ターミナルからコマンドを入力してkeystoreファイルを作成する

keytool -genkey -v -keystore keystoreファイル名 -alias エイリアス名 -keyalg RSA -validity 有効期限(日数 25年以上推奨→*50年推奨)

keytool -genkey -v -keystore test.keystore -alias TEST -keyalg RSA -validity 10000

2) 作成したkeystoreファイルでリリースビルドしたapkファイルに署名する

jarsigner -verbose -keystore keystoreファイル apkファイル キーストアのエイリアス

jarsigner -verbose -keystore test.keystore app-release-unsigned.apk TEST

Android Studioから署名付きapkファイルを作成する

1) Build>Generate Signed APKz

f:id:nananiku-s-60:20190122222536p:plain

2) Create new を選択
*既に作成済みのkeystoreファイルがある場合は、「choose existing」からファイル選択

f:id:nananiku-s-60:20190122222554p:plain

3) 適宜入力。上のストアパスと下のキーパスは必ず控えて無くさないようにすること

f:id:nananiku-s-60:20190122222609p:plain

4) Nextをクリック

f:id:nananiku-s-60:20190122222623p:plain

5) 「V1」と「V2」にチェックをつけて、Finish

f:id:nananiku-s-60:20190122222637p:plain

6) 作成完了すると、以下メッセージが表示される
locateをクリックするとapkファイルのフォルダが開かれる
(もしくは、app/releaseの中)

f:id:nananiku-s-60:20190122222652p:plain

  • もし、作成に失敗した場合、2からやり直してみる。
    既にkeystoreファイルは作成されているので選択するだけ。
    私の場合、1回目はapkファイルの作成に失敗するケースが多く、2回目に作成成功するパターンが多かったです。

keystoreファイルの確認方法

keytool -v -list -keystore keystoreファイル名 -alias エイリアス

keytool -v -list -keystore test.keystore -alias TEST

apkファイルに署名できたかどうかの確認方法

jarsigner -verify -verbose -certs app-release-signed.apk

jarsigner -verify -verbose -certs app-release-signed.apk

証明書の公開鍵を確認する方法

1) APK内の証明書を抽出

jar xvf app-release-signed.apk META-INF

2) opensslを使って確認

openssl pkcs7 -inform DER -in META-INF/CERT.RSA -noout -print_certs -text

# 参考URL

APK ファイルの署名を確認する
公式(アプリケーションへの署名)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です