2011年12月29日木曜日

キーストア(keystore)の作り方について

android アプリを配布するには、そのアプリが署名されていなければダメなので、その方法をメモ。

署名のやり方は簡単で、まず自己証明書を用意し、それを使ってアプリに署名すればいいだけのようです。

で、その自己証明書を用意するには JDK に付属している keytool というユーティリティを利用するのですが、証明書単体を作るのではなく、証明書と鍵がセットになったキーストア(keystore)を作ります。

※ちょっと上記のキーストアや鍵・証明書などに関する認識が怪しいかもしれません。
キーストアや keytool に関する詳細は↓のサイトをご覧ください。
keytool - 鍵と証明書の管理ツール

では、そのキーストアの作り方ですが、DOS窓で以下のようなコマンドを実行するだけです。
keytool -genkey -v -keystore [ファイル名] -alias [証明書の名称] -validity [有効日数]
  • -genkey 鍵のペアを生成するコマンド。 (結果的にキーストアができる)
  • -v このオプションを指定した場合、コマンドは「冗長」モードで実行され、詳細な証明書情報が出力されます。だそうですよ。とりあえず付けとけ。
  • -keystore キーストアのファイル名。拡張子は .keystore とするといいみたい。
  • -alias キーストア内での証明書の名称。
  • -validity 証明書の有効日数。android では10000以上が推奨されています。
例えばこんな感じにします。
keytool -genkey -v -keystore C:\folder\test.keystore -alias TEST -validity 10000
で、これを実行すると以下のように質問されまくります。

「キーストアのパスワードを入力してください:」
設定したいパスワードを入力します。(画面には何も書かれない)
んで Enter 。

「新規パスワードを再入力してください:」
と言われるのでもっかいいれる。

「姓名を入力してください:」
素直に入れる。

「組織単位名を入力してください。」
会社で言うところの部署とかのことらしいよ。
個人なら personal とか android とか入れときゃOK。

「組織名を入力してください。」
会社名とかサークル名とかブランド名とか入れときゃイイんじゃん?

「都市名または地域名を入力してください。」
市区町村だべ。

「州名または地方名を入力してください。」
都道府県だべ。

「この単位に該当する 2 文字の国番号を入力してください。」
日本は jp だそうです。

「{入力した内容}でよろしいですか?」
y と入力して Enter 。

「{生成してます的なこと}」
「{証明書の名称}の鍵パスワードを入力してください。
(キーストアのパスワードと同じ場合は RETURN を押してください):」
然るべき入力をする。

んで完成。
ファイル名で指定した場所に .keystore ファイルが出来ているはずです。

corona でビルドするときにはビルドセットアップ画面の「Keystore :」欄に .keystore を。
「Key Alias :」欄に証明書の名称を入力すればOKです。

あらカンタン。