Quantcast
Channel: Shiitake's tumblr.
Viewing all articles
Browse latest Browse all 46471

"ビルドはantを使います。antではデバック用とリリース用に分かれていて、デバック用のパッケージをビルドするときは ant..."

$
0
0
“ビルドはantを使います。antではデバック用とリリース用に分かれていて、デバック用のパッケージをビルドするときは

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月アーカイブ

Viewing all articles
Browse latest Browse all 46471

Trending Articles