Как изменить имя apk с помощью gradle, как этот формат?
Я хочу изменить имя файла app-release.apk, как показано ниже, когда я создаю приложение с помощью gradle.
[format]
(appname of package name)_V(version code)_(yyMMdd)_(R|T)
[explain]
(appname of package name) : example) com.example.myApp -> myApp
(version code) : build version code 2.2.3 -> 223
(yyMMdd) : build date 2015.11.18 -> 151118
(R|T) : if app is release, "R" but debug is "T".
Если я создам файл apk в release, результатом будет: myApp_V223_151118_R.apk.
Как сделать имя файла таким, как это, в gradle?
Ответы
Ответ 1
Обновление: Пожалуйста, проверьте ответ Anrimian ниже, который намного проще и короче.
Попробуйте следующее:
gradle.properties
applicationName = MyApp
build.gradle
android {
...
defaultConfig {
versionCode 111
...
}
buildTypes {
release {
...
applicationVariants.all { variant ->
renameAPK(variant, defaultConfig, 'R')
}
}
debug {
...
applicationVariants.all { variant ->
renameAPK(variant, defaultConfig, 'T')
}
}
}
}
def renameAPK(variant, defaultConfig, buildType) {
variant.outputs.each { output ->
def formattedDate = new Date().format('yyMMdd')
def file = output.packageApplication.outputFile
def fileName = applicationName + "_V" + defaultConfig.versionCode + "_" + formattedDate + "_" + buildType + ".apk"
output.packageApplication.outputFile = new File(file.parent, fileName)
}
}
Справка:
fooobar.com/questions/85461/...
fooobar.com/questions/44429/...
Ответ 2
Это может быть самый короткий путь:
defaultConfig {
...
applicationId "com.blahblah.example"
versionCode 1
versionName "1.0"
setProperty("archivesBaseName", applicationId + "-v" + versionCode + "(" + versionName + ")")
}
buildType: вроде так
buildTypes {
debug {
...
versionNameSuffix "-T"
}
release {
...
versionNameSuffix "-R"
}
}
Помните, что Android Studio по умолчанию добавляет versionNameSuffix по имени типа сборки, поэтому вам это может не понадобиться.
Upd. В новых версиях Android Studio вы можете писать немного короче (спасибо за комментарий szx):
defaultConfig {
...
archivesBaseName = "$applicationId-v$versionCode($versionName)"
}
Ответ 3
2019 - Как изменить имя APK для Gradle 3.3, 3.4, 3.5 и выше
android {
......
applicationVariants.all { variant ->
variant.outputs.all {
def flavor = variant.name
def versionName = variant.versionName
outputFileName = "prefix_${flavor}_${versionName}.apk"
}
}
}
Результат будет таким,
prefix_release_1.0.1.apk