!!リリース用署名 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 プログラミング言語,Java,Android}}