「複数人で開発する際に、デバッグキーを共有したい」
という方は多いでしょう。
また、セキュリティ上危険ではありますが、
「商用署名を一時的にデバッグキー(デバッグ署名)として運用したい」
なんてこともあるかもしれません。
これらを、Eclipse/ADTのデバッグ機構で実現するには少しコツが入ります。
本稿では、Eclipse/ADTで商用署名(キーストア)をデバッグキーとして運用するために必要な
商用署名(キーストア)をデバッグ用に変更する手順
についてまとめました。
※一般的に、商用署名は厳重に管理すべきものであり、無闇に複製/編集すべきものではありません。
※商用署名を直接編集するなら、破損しても復旧できるようにバックアップは必ず取りましょう。
※本稿で使用するパスワードはテスト用です。本番環境ではセキュアなパスワードを指定してください。
今回の検証環境
---
OS: WindowsXP
Eclipse: 3.7.1(Indigo)
ADT: 21.1
---
検証で使用するキーストア情報。
---
キーストアファイル名
yuki.keystore
キーストアパスワード
yukipass
エイリアス
yukialias
エイリアスパスワード
yukialiaspass
---
●Eclipseにデバッグキーを設定する方法
下記の項目から設定します。[Window]>[Preferences]>[Android]>[Build]
ここに予め作成しておいたyuki.keystoreを指定すると...
次のエラーで弾かれてしまいます。
エラー:Keystore was tampered with, or password was incorrect
「キーストアが改ざん、あるいはパスワードが正しくない」旨のエラーです。
Eclipse/ADTで使用できるデバッグキー(キーストア)情報は下記の条件を満たす必要があります。
---
キーストアファイル名
任意
キーストアパスワード
android
エイリアス
androiddebugkey
エイリアスパスワード
android
---
つまり、デバッグキーとして使用するキーストアパスワードは
android
である必要があるのです。
yuki.keystoreのキーストアパスワードは現在"yukipass"であるため、デバッグキーとして使用できません。
それでは、yuki.keystoreをデバッグキーとして使用するためにキーストア情報を変更します。
●キーストアのパスワードを変更する方法
$keytool -storepasswd -keystore yuki.keystore キーストアのパスワードを入力してください: <現在のキーストアパスワード> 新規 keystore password: <新しいキーストアパスワード> # ★ android を指定 新規 keystore password を再入力してください: <新しいキーストアパスワードを再入力>Windowsなら下記を実行(JDK_HOMEのパスは自環境用に読み替えて下さい)
C:\Program Files\Java\jdk1.6.0_12\bin>keytool.exe -storepasswd -keystore yuki.keystoreこのキーストアをEclipseに設定してもダメです。
次のエラーで弾かれます。
エラー:Unable to find debug key in keystore!
「キーストア内にデバッグキーが見つからない」旨のエラーです。
デバッグキーとして使用するエイリアスは
androiddebugkey
である必要があります。
●エイリアスを変更する方法
$keytool -changealias -alias yukialias -keystore yuki.keystore destination の別名を入力してください: <新しいエイリアス> # ★ androiddebugkey を指定 キーストアのパスワードを入力してください: <現在のキーストアパスワードを入力> # 既に android に変更済なら android で <yukialias> の鍵パスワードを入力してください。 <現在のエイリアスパスワードを入力>Windowsなら下記を実行。
C:\Program Files\Java\jdk1.6.0_12\bin>keytool.exe -changealias -alias yukialias -keystore yuki.keystoreこのキーストアをEclipseに設定してもまだダメです。
↓のエラーで弾かれます。
エラー:Cannot recover key
「キーを復元できない」旨のエラーです。
デバッグキーとして使用するエイリアスパスワードもやはり
android
である必要があります。
●エイリアスパスワードを変更する方法
keytool -keypasswd -alias androiddebugkey -keystore yuki.keystore キーストアのパスワードを入力してください: <androiddebugkey> の鍵パスワードを入力してください。 <現在のエイリアスパスワード> 新規 <androiddebugkey> の鍵のパスワード: <新しいエイリアスパスワード> # ★ android を指定 新規 <androiddebugkey> の鍵のパスワード を再入力してください:<新しいエイリアスパスワードを再入力>Windowsなら下記を実行。
C:\Program Files\Java\jdk1.6.0_12\bin>keytool.exe -keypasswd -alias androiddebugkey -keystore yuki.keystoreこのファイルをEclipseに指定すれば見事デバッグキーとして使用できます。
●おわりに
本稿では、わざと数回に分けてキーストア情報を変更しましたが、keytoolのオプションを工夫すればコマンドをまとめることができます。keytoolコマンドに限りませんが、(テスト目的を除き)安全でないシステムで実行する場合は、コマンドやスクリプトにパスワード情報を含めてはいけません。コマンドやスクリプトはヒストリとして蓄積され、パスワードが漏洩する可能性があります。
オプションで必要なパスワードを指定しなかった場合は、パスワードの入力を求められるのでそこで入力するようにします。
参考:
keytool - 鍵と証明書の管理ツール
Android Developers - アプリケーションへの署名
以上です。