keytoolコマンドで公開するandroidアプリに署名するための証明書(鍵)を生成する
(更新日:2010/6/19)

androidアプリを公開する場合、アプリのパッケージにデジタル署名をつける必要があります。
で、署名するには自分を証明する証明書(鍵)が必要になってくるわけですが、この鍵を作成、管理するのがkeytoolです。
keytoolはJDKのbinディレクトリに入っています。JDKのインストールについては「JDKのインストール~androidプログラミングの開発環境構築①」を参考にしてください。
以下はkeytoolで鍵を作成するコマンドの書式です。

>keytool -genkey -v -keyalg <鍵生成の暗号化方式> -keystore <証明書ファイル名> -alias <証明書別名> -validity <有効期限の日数>

下のサンプルでは、d:\tempandroidディレクトリにtechmaru.keystoreというファイル名の証明書を作成しています。(別名はtechkey)

>keytool -genkey -v -keyalg RSA -keystore d:\tempandroid\techmaru.keystore -alias techkey -validity 10000

そして、その後にいくつかの情報(キーストアパスワード、姓名、組織名、都市名、州名、国番号)の入力を要求されるので入力していきます。
国番号のjpを入力すると確認メッセージが出るので「yes」を押し、最後にRETURNを押します。すると、d:\tempandroidディレクトリにtechmaru.keystore証明書ファイルが作成されているはずです。

キーストアのパスワードを入力してください:
新規パスワードを再入力してください:
姓名を入力してください。
  [Unknown]:  ********
組織単位名を入力してください。
  [Unknown]:  ********
組織名を入力してください。
  [Unknown]:  ********
都市名または地域名を入力してください。
  [Unknown]:  ********
州名または地方名を入力してください。
  [Unknown]:  tokyo
この単位に該当する 2 文字の国番号を入力してください。
  [Unknown]:  jp
CN==********,, OU==********,, O==********,, L==********,, ST=tokyo, C=jp でよろしいですか?
  [no]:  yes

10,000 日間有効な 1,024 ビットの RSA の鍵ペアと自己署名型証明書 (SHA1withRSA) を生成しています
        ディレクトリ名: CN=********, OU=********, O=********, L=********, ST=tokyo, C=jp
 の鍵パスワードを入力してください。
        (キーストアのパスワードと同じ場合は RETURN を押してください):
[d:\tempandroid\techmaru.keystore を格納中]

以上でkeytoolについては終了です。
それから、keytoolで作成した証明書を利用して署名なしのandroidアプリにデジタル署名するにはjarsignerが必要です。jarsignerの使い方・詳細については「jarsignerコマンドで公開するandroidアプリにデジタル署名する」を参考にしてください。
また、eclipse上で作成したandroidアプリならjarsignerを使わなくてもelicpse上で簡単にできます。これについては「eclipse上で署名されたandroidアプリ(.apk)を作成する」を参考にしてください。


このページの内容の一部は、Google が作成、提供しているコンテンツをベースに変更したもので、クリエイティブ・コモンズの表示 3.0 ライセンスに記載の条件に従って使用しています。
詳細はこちらを参考してください。