AndroidMarketに公開するためにアプリに署名を行う


「Android Marketにデベロッパー登録をする」でデベロッパー登録の仕方を説明しました。

今回はAndroidMarketにアプリを公開するために必要な、アプリへのデジタル署名の仕方を説明します。

デジタル署名をしていなくても野良アプリとしてapkファイルを自分のサーバなどで公開することは可能ですが、AndroidMarketで公開するためにはデジタル署名は必須となります。

手順としては

  1. 証明書を作成する
  2. Androidアプリケーションに署名を行う

です。

それでは続きで説明して行きます。

証明書を作成する

証明書を作成するにはJDKに含まれているkeytoolを使います。環境によって異なりますがjavac等に対してパスを通していれば問題なく使えると思います。

例としてMacでは下記の場所にあります。

$ which keytool
/usr/bin/keytool

今回は techboosterという名前の証明書を作成してみます。有効期限は10000日とします。

keytool -genkey -v -keystore techbooster.keystore -alias techbooster -keyalg RSA -validity 10000

上記のコマンドではtechbooster.keystoreが生成されるファイルの名前で別名がtechboosterです。

途中でパスワード、住所などが聞かれるので答えて行きましょう。

Androidアプリケーションに署名を行う

では、作成した証明書でAndroidアプリケーションに署名を行います。

署名にはkeytoolと同様にJDKに含まれるにあるjarsignerを使います。

$ which jarsigner

/usr/bin/jarsigner

先ほどのkeystoreファイルと署名したいアプリのapkファイルが同じフォルダにあると仮定します。

jarsigner -verbose -keystore techbooster.keystore AsyncTaskSample.apk techbooster

keystoreファイル名や別名、apkファイルは各自読み替えてください。

これでアプリケーションに署名を行うことができました。

eclipseで署名を行う

コマンドラインから毎回署名を行うのは結構面倒なものです。

そこで開発にも使っているeclipseの登場です。eclipseから署名済みのapkを作成することができます。

署名済みのapkファイルを作りたいプロジェクトを右クリックします。

そこからAndroidTools→Export Signed Application Packageを選択します。

そうするとプロジェクト名を入力する画面になります。既に入力されている状態になっているので、問題なければそのまま進みます。別のプロジェクトを選択したい場合は、Browseから選択してください。

次はLocationに先ほど作成した証明書(keystore)を指定してパスワードを入力します。入力したらNextボタンを押してください。

さらにAliasを選択する画面に進むので選択して同様にパスワードを入力しましょう。入力したNextボタンを押して・・・

最後に作成するapkファイルのパス&名前を入力してFinishボタンを押せば完了です。

8 Comments