2012-01-16 13 views
3

私はAndroidマーケットにAndroidアプリを公開しています。単純にant releaseと入力してリリース用のビルドを準備します。私はキーストアを設定して、署名入り、難読化された最後のzipalignedマーケット対応のAPKを1回で構築することができます。 build.xmlファイルを変更して、それらを私のキーストアに指定する以外にはありません。Antで署名付きリリースと署名なしリリースの両方を構築する

今、Amazonストアでもアプリをリリースする必要があります。これは、私に署名のないビルドを生成する必要があります。上記のような通常のビルドビルドのプロセスの一部として、ディレクトリにMyApp-release-unsigned.apkファイルが作成されます。このファイルのタイムスタンプが生成された-unaligned.apkよりも早いことを除けば、これは有望です。これは、-unsigned.apkがzipalignedでないことを示しているため、リリースの準備ができていません。

1つのコマンドで、(署名されていない、難読化された、zipaligned)Amazon対応のAPKを作成できるように、変更プロセスにどのような変更を加える必要がありますか?

答えて

3

this questionによると、アマゾンはパッケージに署名した後にパッケージを作成するため、パッケージをzipalignする必要はありません。

this page on the Android developer siteによれば、署名されていないパッケージのジップアライメントは無用です。なぜなら、アマゾンが行う署名操作はパッケージをデアライズするからです。

5

まず、私のbuild.xmlからechoステートメントを見ると正しいと思います。つまり、署名されていないパッケージは整列していません。

上書き-setリリース・モードのターゲット:

あなたは、最新のSDKを使用していると仮定すると、私は(プロジェクト名-リリース - 符号なし-aligned.apk)このような余分なファイルを作るためのbuild.xmlを修正しました、コメント

<target name="-set-release-mode" depends="-set-mode-check"> 
<property name="out.packaged.file" location="${out.absolute.dir}/${ant.project.name}-release-unsigned.apk" /> 
<!-- NEW PROPERTY FOR UNSIGNED ALIGNED FILE --> 
<property name="out.unsignedaligned.file" location="${out.absolute.dir}/${ant.project.name}-release-unsigned-aligned.apk" /> 
<!-- NEW PROPERTY FOR UNSIGNED ALIGNED FILE END --> 

の間にラインを追加することで、これは余計なことを与える必要がありNEWジップコメント

<!-- Zip aligns the APK --> 
<zipalign-helper in.package="${out.unaligned.file}"out.package="${out.final.file}" /> 
<!-- NEW Zip aligns the unsigned APK --> 
<zipalign-helper in.package="${out.packaged.file}" out.package="${out.unsignedaligned.file}" /> 
<!-- NEW Zip aligns the unsigned APK END --> 

の間、リリース対象に行を追加します。署名されていない整列されたファイル。私は結果として生じるAPKをテストしていませんが、変更するのはかなり簡単です

+0

あなたの提案された変更は、大変ありがとうございました。あなたの答えをインスピレーションとして使って、私は署名のステップを完全に取り除くためにリリースターゲットだけを修正しました(-set-release-modeターゲットではありません)。 (私は私のAmazonビルドと私の通常のAndroidマーケットビルドのための別のbuild.xmlを持っています) –

+1

build.xmlファイル全体を投稿できますか?私は 'common'と呼ばれるライブラリプロジェクトを持っています。これは参照され、このエラーが発生します: ' BUILD FAILED /srv/android-sdk-linux_x86/tools/ant/build.xml:466:これを実行中に次のエラーが発生しました行: ターゲット "$ {build.target}"はプロジェクト "common"に存在しません。 –

関連する問題