AndroidAndroidアプリへの署名の付け方
JDKのkeytoolコマンドで署名ファイルを作成し、EclipseでAndroidアプリに署名を付ける方法を説明します。
keytoolコマンドで署名ファイルの作成
unknown
-
管理者権限でコマンドプロンプトを開きます。 (コマンドプロンプトを右クリックして「管理者として実行」を押す)
-
keytoolコマンドで署名ファイルを作成します。
「キーストア名」には、keystoreの生成先と署名ファイル名。
「妥当性日数」には、証明書の有効期限を日数で指定します。#keytool -genkey -v -keystore キーストア名 -alias 鍵アルゴリズム名 -keyalg 署名アルゴリズム名 -validity 妥当性日数#「keytool.exe」があるJDKのbinフォルダに移動 C:\Windows\system32> cd C:\Program Files\Java\jdk1.7.0\bin Enter #keytoolコマンドで署名ファイルを作成 C:\Program Files\Java\jdk1.7.0\bin> keytool -genkey -v -keystore C:\Users\cocoism\.android\pjrdev.keystore -alias pjrdev -keyalg RSA -validity 10000 Enter キーストアのパスワードを入力してください: パスワード Enter 新規パスワードを再入力してください: パスワード Enter 姓名を入力してください。 #個人の場合、組織単位名と組織名のところはpersonalでよいかと。 [Unknown]: hoge sama Enter 組織単位名を入力してください。 [Unknown]: personal Enter 組織名を入力してください。 [Unknown]: personal Enter 都市名または地域名を入力してください。 [Unknown]: shibuya Enter 都道府県名を入力してください。 [Unknown]: tokyo Enter この単位に該当する2文字の国コードを入力してください。 [Unknown]: JP Enter CN=hoge sama, OU=hoge inc., O=hoge inc., L=shibuya, ST=tokyo, C=JPでよろしいですか。 [いいえ]: はい Enter 10,000日間有効な2,048ビットのRSAの鍵ペアと自己署名型証明書(SHA256withRSA)を生成しています ディレクトリ名: CN=hoge sama, OU=personal, O=personal, L=shibuya, ST=tokyo, C=JP <pjrdev>の鍵パスワードを入力してください (キーストアのパスワードと同じ場合はRETURNを押してください): パスワード Enter 新規パスワードを再入力してください: 新しい証明書(自己署名型): [ ・・・略・・・ ] [C:\Users\.android\pjrdev.keystoreを格納中] C:\Program Files\Java\jdk1.7.0\bin>
※以下は、コマンドのオプションです。
keytool -genkeypair [オプション]... -alias <alias> 処理するエントリの別名 -keyalg <keyalg> 鍵アルゴリズム名 -keysize <keysize> 鍵のビット・サイズ -sigalg <sigalg> 署名アルゴリズム名 ※例:RSA -destalias <destalias> 出力先の別名 -dname <dname> 識別名 -startdate <startdate> 証明書の有効開始日時 -ext <value> X.509拡張 -validity <valDays> 妥当性日数 ※10000推奨 -keypass <arg> 鍵のパスワード -keystore <keystore> キーストア名 -storepass <arg> キーストアのパスワード -storetype <storetype> キーストアのタイプ -providername <providername> プロバイダ名 -providerclass <providerclass> プロバイダ・クラス名 -providerarg <arg> プロバイダ引数 -providerpath <pathlist> プロバイダ・クラスパス -v 詳細出力 -protected 保護メカニズムによるパスワード
C:\Program Files\Java\jdk1.7.0\bin> keytool -help キーおよび証明書管理ツール コマンド: -certreq 証明書リクエストを生成します -changealias エントリの別名を変更します -delete エントリを削除します -exportcert 証明書をエクスポートします -genkeypair 鍵ペアを生成します -genseckey 秘密鍵を生成します -gencert 証明書リクエストから証明書を生成します -importcert 証明書または証明書チェーンをインポートします -importkeystore 別のキーストアから1つまたはすべてのエントリをインポートします -keypasswd エントリの鍵パスワードを変更します -list キーストア内のエントリをリストします -printcert 証明書の内容を出力します -printcertreq 証明書リクエストの内容を出力します -printcrl CRLファイルの内容を出力します -storepasswd キーストアのストア・パスワードを変更します
-
keytoolコマンドで指定した場所にkeystoreファイルが作成されているはずです。
Eclipseからapkファイルへに署名を付ける
unknown
- Eclipse起動
Eclipseを起動したら署名を付けるプロジェクト名を右クリックし、「プロパティ」→「Androidツール」→「Export Signed Application Package...」をクリックします。
- プロジェクトの確認
プロジェクト名を確認し、そのまま次へをクリックします。
Project Checkcs - Export Android Application
- キーストアの選択
「Use existing keystore」を選択します。
ロケーション名は、署名ファイル(***.keystore)を選択します。
キーストアのパスワードを入力し、次へをクリックします。※ここで入力するパスワードは署名ファイル作成時に設定した「キーストアのパスワード」です。
Keystore selection - Export Android Application
- キーエイリアスの選択
「Use existing keystore」を選択します。
エイリアスは署名ファイル作成時に設定した「鍵アルゴリズム名」を選択します。
その鍵のパスワードを入力し、次へをクリックします。※ここで入力するパスワードは署名ファイル作成時に設定した「phの鍵パスワード」です。
Key alias selection - Export Android Application
- デスティネーションと証明書/鍵の確認
「Destination APK fine」に、署名付きのapkファイルの出力先を指定し、完了をクリックします。
Destination and key/certificate checks - Export Android Application
指定した先に、apkファイルが出力されているはずです。