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

参考链接:

Android 如何让打包出来的apk或者aab文件名更有规律?

posted @ 2022-09-21 15:59  夜行过客  阅读(1310)  评论(0编辑  收藏  举报