“ビルドはantを使います。antではデバック用とリリース用に分かれていて、デバック用のパッケージをビルドするときは
リリース用のパッケージは
- hack my life: hackmylife: 2010年8月アーカイブ
ant debugと打てば自動でビルドされます。ちなみにantでビルドするためにはbuild.xmlが必要ですが、android create project で作れば自動的に生成してくれます。(eclipseで作ったプロジェクトは生成されてなかった)
リリース用のパッケージは
ant releaseで生成できます。がこのままだと、インストール時に署名がないと怒られます。androidでは署名の入っていないapkはemulatorにすらインス トールできません。先のant debugでビルドした場合は自動でデバック用の署名をいれてくれますが、androidマーケットでは配布できません。リリース用に署名をする必要があ ります。
署名のしかた
keytoolコマンドで生成できます。
keytool -genkey -v
-keystore キーストア名
-alias 別名
-keyalg 生成アルゴリズム
-validity 有効期限(日)
一つ大事な点として、androidマーケットにだすためには、キーストアの有効期間の終了日が2033年10月22日以降になるようにしないといけません。10000日以上が推奨されているようです。
ex) keytool -genkey -v -keystore hackmylife.keystore -alias hackmylife -keyalg RSA -validity 10000
コマンドを入力するとパスワードとロケーションをきかれます。特に注意する点はありません。
keystoreができたらjarsignerで署名をします。
jarsigner -verbose -keystore キーストア名 ビルドするアプリ名 キーストアのエイリアス
ちなみに、keytoolとjarsignerはandroidの独自ツールではなくjava付属のツールです。
ex ) jarsigner -verbose -keystore hackmylife.keystore MyApp.apk hackmylife
署名が必要なのは、あくまでreleaseパッケージのみです。debugパッケージはantでビルドするときに、debug.keystoreで 署名してくれるので、手動で署名する必要はありません。が、ごくまれにemulatoreにdebugパッケージをおインストールしようとすると、署名が されていないとエラーになることがあります。ML等でもちょくちょく報告があるみたいですが、emulator側のバグのようで、一度インストールされて いるパッケージを明示的にアンインストールすると良いようです。それでもだめな場合は、バーチャルデバイスを一度作り直すしかないようです。
”- hack my life: hackmylife: 2010年8月アーカイブ