Как включить строку версии в имя файла при создании Android apk с помощью ant?

Обычно мы создаем пакет android в режиме отладки с помощью команды

ant debug

и получил имя файла apk AppName-debug.apk.

Есть ли способ сгенерировать файл apk в формате AppName-debug-<version-number>.apk напрямую без команды "mv"?

Спасибо.

Ответ 1

Я сделал это автоматическим способом, используя информацию из манифеста Android.

Мой подход состоял в том, чтобы изменить файл локального проекта ant build.xml для импорта пользовательской копии основного файла build.xml, в последней версии SDK находится мастер файл, импортированный в ваш локальный файл в <SDK>/tools/ant/build.xml (был android_rules.xml в предыдущих версиях) Обратите внимание на строку import в файле build.xml по умолчанию, который является вашим проектом.

Комментарии в локальном build.xml, созданные инструментами Android, содержат сведения о том, как сделать настройку, чтобы будущие обновления инструментов не нарушали ваши изменения.

В файле настраиваемых правил добавьте:

<xmlproperty file="AndroidManifest.xml" prefix="mymanifest" collapseAttributes="true"/>

Это читается в манифесте как набор свойств ant с пользовательским префиксом, чтобы избежать столкновения имен.

Затем вы можете добавить ${mymanifest.manifest.android:versionName} к любому из пятен, которые определены в имени apk, просто выполните поиск .apk в файле настраиваемых правил.

Я использовал этот процесс для автоматизации файлов версий с сервера сборки.

С некоторыми дополнительными настройками также можно автоматически подписывать ваше приложение для выпуска, покупать настройки паролей в свойствах и использовать их в задаче подписи. Фактические пароли, хранящиеся в отдельном файле свойств, который жил только на сервере сборки. В то время как незначительный риск для безопасности, в некоторых случаях, он отягощен необходимостью полной автоматизации завершения до конца.

Ответ 2

Еще одно Android-решение - использовать задачу XPATH, как это делается в ${sdk.dir}/tools/ ant/build.xml:

<xpath input="AndroidManifest.xml" expression="/manifest/@android:versionName"
                        output="versionName" default="unknown"/>
<echo message="name: ${versionName}"></echo>

Для этого требуется определение задачи:

<path id="android.antlibs">
    <pathelement path="${sdk.dir}/tools/lib/anttasks.jar" />
</path>

<taskdef name="xpath"
        classname="com.android.ant.XPathTask"
        classpathref="android.antlibs" />

Я не знаю, какая минимальная версия SDK, но она работает с SDK14.

С уважением, Майкл

Ответ 4

Да, есть способ сгенерировать файл apk с любым именем, которое я вам даю, чтобы вы запустили этот процесс, вы получили .apk, укажите свое имя.

1-Щелкните правой кнопкой мыши приложение в проводнике пакетов. 2-Выберите экспорт. 3-выбранный Android 4-Выберите Экспорт приложения Android. 5-Создать новое хранилище ключей. 6 - заполните форму. 7-: Дайте имя файла apk , что вы хотите 8-: укажите местоположение apk для хранения apk.

Затем вы найдете решение своей проблемы. Надеюсь, это поможет.