使用 setProperty
来设置 archivesBaseName
属性,archivesBaseName
是一个用于构建生成的输出文件名的属性,通常用于在构建输出中包含特定的标识符或信息。
每次构建时,通过调用 releaseTime()
方法获取当前日期和时间,并将其与固定文本和应用程序版本信息组合在一起,从而生成一个唯一的文件名
def releaseTime() {
return new Date().format("yyyy.MM.dd HH.mm.ss", TimeZone.getDefault());
}
android {
// ...
defaultConfig {
// ...
setProperty("archivesBaseName", "myapp_${releaseTime()}-v1.0.0")
}
// ...
}
配置 build 变体 | Android 开发者 | Android Developers
applicationVariants.all { variant ->
if (variant.buildType.name == "release" || variant.buildType.name == "debug") {
variant.outputs.all { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name != null) {
def suffix = ""
if (outputFile.name.endsWith('.apk')) {
suffix = ".apk"
} else if (outputFile.name.endsWith('.aab')) {
suffix = ".aab"
}
if(suffix != ""){
def fileName = "XXX-V${versionName}-${variant.buildType.name}_${getAPKSuffix()}$suffix"
if (variant.buildType.name == "release") {
fileName = "XXX-V${versionName}$suffix"
}
outputFileName = fileName
}
}
}
}
}