トップ 一覧 置換 検索 ヘルプ RSS ログイン

Android 作成したアプリに署名を行うの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!リリース用署名
http://magpad.jugem.jp/?eid=78
!前提
・AndroidアプリケーションをAndroid端末へインストールするためには、apkファイルへの署名が必要。
・署名に必要な非公開鍵の生成と管理を行うのがkeytool。
・keytoolで生成された非公開鍵を使用して、apkファイルへ署名を行うのがjarsigner。
・keytoolで非公開鍵を生成し、jarsignerで署名する。

!keytool
・非公開鍵を格納するためのキーストアファイル(.keystore)の作成と非公開鍵(=キー)の生成を行う。
・キーストアとキーそれぞれに対してパスワードを設定することができる。
・キーストアには複数のキーを格納することができる。(aliasで区別する。)
・-genkeyオプションは-genkeypairの旧名称だが、引き続き使用可能。
・Androidでは1つのキーストアの中に1つのキーを設定すればよい。
・Androidではデバッグ用とアプリケーション公開用の2つのキーストアファイルが必要。

!キーストア/キーの生成を行う方法
キーストア名:hoge.keystore
キーストアのパスワード:pass_keystore
キーのエイリアス:alias_key1
キーのパスワード:pass_key1
CN:CN=HOGE,O=FUGA,C=JP
生成アルゴリズム:RSA
証明書の有効日数:10000日
として、DOSからキーストア/キーの生成を行う。
 C:\>keytool -genkey -v ^
 -keystore hoge.keystore ^
 -storepass pass_keystore ^
 -alias alias_key1 ^
 -keypass pass_key1 ^
 -dname "CN=HOGE,O=FUGA,C=JP" ^
 -keyalg RSA ^
 -validity 10000
aliasとkeypassを変えて-genkeyを実行すれば、同一キーストアに対して複数のキーを登録することができる

!生成されたキーストアの内容を表示する方法
 C:\>keytool -list -v ^
 -keystore hoge.keystore ^
 -storepass pass_keystore

別名や発行者などが合っていればOK。

!jarsigner
・keytoolで生成したキーストアファイルと非公開鍵を使って、apkファイルに署名を行う。
・非公開鍵の指定はaliasで行う。
・「-verify」オプションで署名の検証を行える。
・コマンド引数の順番は「jarsigner オプション apkファイル名 エイリアス名」の順で行う。

!apkファイルに署名を行う方法
上記で生成した「hoge.keystore」を使って「piyo.apk」に署名を行う。 
 C:\>jarsigner -verbose ^
 -keystore hoge.keystore ^
 -storepass pass_keystore ^
 -keypass pass_key1 ^
 piyo.apk ^
 alias_key1

!署名の検証を行う方法
 C:\>jarsigner -verify -verbose -certs piyo.apk

!!デバッグ用署名
通常は、自動的にデバッグ用の署名が作られるので必要なし。
http://magpad.jugem.jp/?eid=77

デバッグ用のキーストア/キーは以下の値で生成する。
キーストア名「debug.keystore」
キーストアのパスワード「android」
キーのエイリアス「androiddebugkey」
キーのパスワード「android」
CN「CN=Android Debug,O=Android,C=US」

DOSから
 C:\>keytool -genkey -v ^
 -keystore debug.keystore ^
 -alias androiddebugkey ^
 -keyalg RSA ^
 -validity 10000 ^
 -dname "CN=Android Debug,O=Android,C=US"

これで「debug.keystore」が生成されるので、-listオプションを使って確認。
 C:\>keytool -list -v ^
 -keystore debug.keystore ^
 -storepass android



{{category2 プログラミング言語,OS,Android}}
{{category2 プログラミング言語,Java,Android}}