Android / gradle: включить имя версии из аромата в имени файла apk

Я нашел похожие вопросы, но ничего не работает для того, что я хочу делать. Я развиваюсь с Android Studio и gradle, и у меня есть несколько вариантов в моем файле сборки, каждый из которых имеет имя versionName. Есть ли способ включить имя версии аромата в файл APK?

Solutions Collecting From Web of "Android / gradle: включить имя версии из аромата в имени файла apk"

EDIT: для современных версий инструментов Gradle используйте вариацию @ ptx (используйте output.outputFile вместо variant.outputFile :

 android { applicationVariants.all { variant -> variant.outputs.each { output -> output.outputFile = new File(output.outputFile.parentFile, output.outputFile.name.replace(".apk", "${variant.versionName}.apk")); } } } 

Начиная с версии плагина Gradle версии 0.14, вы должны начать использовать следующее, чтобы правильно поддерживать несколько выходных файлов (например, APK Splits):

 android { applicationVariants.all { variant -> variant.outputs.each { output -> variant.outputFile = new File(variant.outputFile.parentFile, variant.outputFile.name.replace(".apk", "${variant.versionName}.apk")); } } } 

Для более старых версий:


Да, мы делаем это в нашем приложении. Просто добавьте следующее в свой тег android в build.gradle:

 android { applicationVariants.all { variant -> def oldFile = variant.outputFile def newPath = oldFile.name.replace(".apk", "${variant.versionName}.apk") variant.outputFile = new File(oldFile.parentFile, newPath) } } 

Ответ kcoppock правильный, но есть небольшая опечатка. Должен быть:

 android { applicationVariants.all { variant -> variant.outputs.each { output -> output.outputFile = new File(output.outputFile.parentFile, output.outputFile.name.replace(".apk", "${variant.versionName}.apk")); } } } 

(Я написал это как ответ, потому что у меня нет репутации, чтобы сделать комментарий)