Androidのデバッグ用apkの署名方法と確認方法

Androidでデバッグ用にbuildしたapkに署名をつけるのが何気に面倒だったので忘れないようにメモ。

1. keystore

デバッグ用keystoreは、android sdkを入れると

$HOME\.android\debug.keystore

に、defaultのものが作成される。公式ドキュメントは:Signing in Debug Mode
このkeystoreのパラメータは下記の通り。
keyvalue
Keystore namedebug.keystore
Keystore passwordandroid
Key aliasandroiddebugkey
Key passwordandroid
CNCN=Android Debug,O=Android,C=US

当然ながら、このkeystoreで署名したものはGoogle Play上にリリースできない(ハズ)。


2. apkの作成

eclipse上での作業。「Package Explorer」を右クリックして、
「Android Tools」-「Export Unsigned Application Package...」
を指定。もしかしたら、Signed Package作成で、上記keystoreを指定すれば、BuildConfig.DEBUG =true で作成されるのかもしれない。

Signed Packageでも、自動ビルドを外した状態で一旦綺麗にcleanしないとデバッグモードのapkができたことがあったので、eclipse上でclean&build後apk作成でいけるかも。


3. 署名

署名するには、jarsignerコマンドを実行。
jarsignerは、Javaと共にinstallされる(Androidのsdkではない)。場所は下記のようなjdk配下のbinの中。
C:\Program Files\Java\jdk1.6.0_38\bin\jarsigner.exe

実行例:
C:\Users\user01\Documents\android-test>jarsigner -verbose -keystore ..\.android\debug.keystore -storepass android -keypass android test.apk androiddebugkey

   追加中: META-INF/MANIFEST.MF
   追加中: META-INF/ANDROIDD.SF
   追加中: META-INF/ANDROIDD.RSA
  署名中: res/layout/main.xml
  署名中: AndroidManifest.xml
  署名中: resources.arsc
  署名中: res/drawable-hdpi/ic_launcher.png
  署名中: res/drawable-ldpi/ic_launcher.png
  署名中: res/drawable-mdpi/ic_launcher.png
  署名中: res/drawable-xhdpi/ic_launcher.png
  署名中: classes.dex
keystoreとapkの場所さえ間違わなければ、defaultのものを使う限りパラメータはいつも一緒なのでコピペでいける。
問題なければ、指定したapkに署名がされる。

4. 署名の確認

署名の確認も、同じく、jarsignerコマンドにて可能。

実行例:
C:\Users\user01\Documents\android-test>jarsigner -verify -verbose -certs test.apk

         691 Mon Feb 11 23:48:44 JST 2013 META-INF/MANIFEST.MF
         812 Mon Feb 11 23:48:44 JST 2013 META-INF/ANDROIDD.SF
         776 Mon Feb 11 23:48:44 JST 2013 META-INF/ANDROIDD.RSA
sm      1556 Mon Feb 11 23:39:34 JST 2013 res/layout/main.xml

      X.509, CN=Android Debug, O=Android, C=US
      [証明書は 12/12/30 0:56 から 42/12/23 0:56 まで有効です]

sm      1684 Mon Feb 11 23:39:34 JST 2013 AndroidManifest.xml

      X.509, CN=Android Debug, O=Android, C=US
      [証明書は 12/12/30 0:56 から 42/12/23 0:56 まで有効です]

  ・・・

  s = 署名が検証されました。
  m = エントリがマニフェスト内にリストされます。
  k = 1 つ以上の証明書がキーストアで検出されました。
  i = 1 つ以上の証明書がアイデンティティスコープで検出されました。

jar が検証されました。
例の通り、どの署名がされてるかは、CNを見るとわかる。


関連記事

Comment

(編集・削除用)
管理者にだけ表示を許可

Trackback

URL
http://nosource.blog35.fc2.com/tb.php/95-1689af6d
この記事にトラックバック(FC2Blog User)

カテゴリ

Amazon

最新コメント

最新トラックバック

アクセスランキング

[ジャンルランキング]
コンピュータ
1009位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
172位
アクセスランキングを見る>>

RSSリンクの表示

ブロとも申請フォーム

Copyright © nopgm