Gradle-自定义生成的apk或aar名称
Gradle-自定义生成的apk或aar名称
我们平时用Android Studio打包时候,如果不加规则限制,打包出来的名称都是
- app-debug.apk
- app-release.apk
- app.aab
那么怎么让我们打包的时候更有观赏性,让名称一目了然呢?
解决方法
一般我们都是在build.gradle里面添加配置,目前有两种方法:
方法一
android{
applicationVariants.all { variant ->
variant.outputs.all {
def df = new SimpleDateFormat("MMdd")
outputFileName = "xxx_${df.format(new Date())}_v${defaultConfig.versionName}_${variant.name}.apk"
}
}
}
输出结果
xxx_0526_v1.0.0_release.apk
需要注意的是这个设置只对apk有效,对于app bundle,也就是谷歌马上要强制推行的aab文件是无效的。
需要使用下一个方案。
方法二
设置archivesBaseName, archivesBaseName的话,只是最终输出文件的基本名,不含文件后缀,所以,可以对任何输出结果都有效。
示例:
android {
...
defaultConfig {
...
setProperty("archivesBaseName", "${applicationId}-v${versionName}(${versionCode})")
}
}
输出结果:
com.example.sampleproject-v1.0.0(101)-release.apk
或者
com.example.sampleproject-v1.0.0(101).aab
如果想要把git提交的commit号也添加到输出文件里,可以用以下设置:
def gitCommit = "git rev-parse --short HEAD".execute().text.trim()
archivesBaseName = "${defaultConfig.applicationId}-${defaultConfig.versionName}v${defaultConfig.versionCode}-${gitCommit}"
println 'outputFileName: after = ' + archivesBaseName
参考链接: