Создание как подписанных, так и неподписанных выпусков с помощью Ant - PullRequest
3 голосов
/ 17 января 2012

У меня есть приложение для Android, опубликованное в Android Market. Я готовлю сборки к выпуску, просто набрав ant release. У меня есть хранилище ключей, настроенное так, что я могу за один шаг создать окончательный подписанный, обфусцированный, готовый к использованию APK готовый к продаже APK. Я не изменял ни один из файлов build.xml, кроме как для указания их на мое хранилище ключей.

Теперь мне нужно выпустить приложение и в магазине Amazon. Это требует от меня создания неподписанного билда. Как часть процесса построения нормальной сборки выпуска, как описано выше, файл MyApp-release-unsigned.apk создается в каталоге bin. Это выглядит многообещающе, за исключением того, что временная метка этого файла раньше, чем вариант -unaligned.apk, который также создается. Это говорит о том, что -unsigned.apk не был zipaligned и, следовательно, не готов к выпуску.

Какие изменения мне нужно внести в процесс сборки, чтобы я мог создать (неподписанный, запутанный, zipaligned) Амазон-готовый APK с помощью одной команды?

Ответы [ 2 ]

5 голосов
/ 17 января 2012

Во-первых, глядя на операторы echo из моего build.xml, вы правы - неподписанный пакет не выровнен.

Предполагая, что вы используете самый последний SDK, я изменил build.xml, чтобы сделать дополнительный файл (projectname-release-unsigned-align.apk), например так:

Переопределить цель -set-release-mode, добавив строку между комментариями

<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 -->

Затем добавьте к цели выпуска строку между НОВЫМИ комментариями zip

<!-- 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, но он выглядит довольно просто изменить

3 голосов
/ 24 августа 2012

Вам не нужно zipalign пакета, потому что, согласно этому вопросу , amazon будет zipalign пакета после того, как они его подпишут.

И согласно этой страницена сайте разработчиков Android выравнивание по zip неподписанного пакета бесполезно, потому что операция подписания, которую сделает amazon, выровняет пакет.

...