Hatena::ブログ(Diary)

unigoの日記

2010-07-15

ant を使って Android の apk パッケージを作成する

EclipseAndroid プロジェクトを作成すると build.xml が作成されないので antビルドできない。後から build.xml を追加して apk パッケージを作成する手順をメモ。

プロジェクトの作成

android コマンドでプロジェクトを作成すると build.xml が生成される。ダミーのプロジェクトを作って必要なファイルだけをコピーして使う。

android create project --target 4 --name Hello --path .\Hello --activity Hello --package jp.unigo.app.hello

ビルドファイルのコピー

antビルドするために必要なファイルをコピーする。

  • build.xml
  • build.properties
  • default.properties
  • local.properties
build.xml ファイル

antビルド用ファイル。

build.properties ファイル

ビルド設定ファイル。ビルド時の設定はこのファイルに追加する。

default.properties ファイル

android コマンドが変更するビルド設定ファイル。このファイルは自動生成されたりするので設定を追加しない。

local.properties ファイル

ビルドマシン別の設定ファイル。ローカルファイルシステムのパスがベタ書きされているので、ソース管理システムには追加しない。ビルドマシン別に用意する必要がある。

コンパイルオプションの変更

コンパイルオプションを追加したり、ターゲットを定義する場合は標準の build.xml から必要な箇所だけをコピーして変更する。build.xmlAndroid のバージョン別に SDK の templates ディレクトリからコピーする。

${android.sdk}\platforms\android-${version}\templates\android_rules.xml


新しいターゲットを追加して compile ターゲットの depends に追加する場合。

<target name="new-task" ...>...</target>
<target name="compile" depends="new-task, ..." ...>...</target>

署名付き apk の作成

ant コマンドで apk パッケージを作成する。

ant release    # 署名済 apk パッケージ作成
ant debug       # debug 用パッケージ作成
adb install -r bin\Hello-release.apk    #リリース用 apk パッケージの上書きインストール

apk パッケージは bin ディレクトリの下に ${appName}-release.apk のファイル名で作成される。Keystore のパスと alias は build.properties に定義できる。

key.store=/path/to/keystore
key.alias=key_alias

パスワードを自動入力にする場合は build.properties にパスワードを追加して build.xml の release タスクを修正する。

build.properties
key.store.password=storepass
key.alias.password=aliaspass
build.xml
<target name="release" ...>
    <echo>Signing final apk...</echo>
    <signjar jar="${out.unsigned.package}" signedjar="${out.unaligned.package}" keystore="${key.store}" storepass="${key.store.password}" alias="${key.alias}" keypass="${key.alias.password}" verbose="${verbose}" />
...
</target>

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/unigo/20100715/1279200419