Android Studio中,打包项目时,不论是debug还是release,不管是apk还是未来的aab,文件名一般都是很没有辨识度的,例如
有什么办法让文件名更有规律一点呢?比如带上版本号之类的。
一般使用gradle工具进行打包,通过修改build.gradle可以修改输出包的名字。
有两种做法:
示例
- applicationVariants.all {
- outputs.forEach { output ->
- if (output is com.android.build.gradle.internal.api.BaseVariantOutputImpl) {
- output.outputFileName =
- "${applicationId}-v${versionName}(${this.versionCode})-${name}.${output.outputFile.extension}"
- }
- }
- }
-
输出结果
- com.example.sampleproject-v1.0.0(101)_release.apk
-
需要注意的是
这个设置只对apk有效,对于app bundle,也就是谷歌马上要强制推行的aab文件是无效的。
需要使用下一个方案。
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
-
完美。