Android打包生成自定义文件名配置

xiaoxiao2021-02-28  149

Android Studio在打包的时候会根据选择的Build Variant是Debug和Release默认生成app-debug.apk或者app-release.apk。

这样其实感觉很不好,我们在实际开发中经常在上线前会提测很多测试包(beta版),测试完成后会出一个生产环境的包或者说上线包(release版)。有时候一个项目会设置很多的渠道,多渠道打包的命名也很麻烦,如果按照系统默认的打包命名方式,那么每次出包我们就需要手动修改文件名,非常麻烦。

因此我们可以动态设置打包的文件名,这样每次打出的包的文件名都不一样,非常清晰,一目了然。

怎么做?

只要在moudle的build.gradle中进行如下设置即可。

在根节点添加

// 当前beta版本号 ext.build_number = "beta1"; // 显示的时间格式,形如20170710 def releaseTime() { return new Date().format("yyyyMMdd", TimeZone.getDefault()); }

在android节点中添加

android { // 一定要写在android节点中 applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { // 显示app名称+当前版本号 def fileName = "Your App Name-V${variant.versionName}" // 如果有渠道,显示渠道名"" if (variant.flavorName!=""){ fileName = fileName + "-${variant.flavorName}" } // 加入打包时间 fileName = fileName + "-${releaseTime()}" // 如果是debug版本,加入beta版本号 if ('debug'.equals(variant.buildType.name)) { fileName = fileName + "-${build_number}.apk" } else { // 如果是release版本,直接显示 fileName = fileName + "-release.apk" } output.outputFile = new File(outputFile.parent, fileName) } } } }

这样设置之后,打出的包的文件名就形如

//没有渠道 Your App Name-V1.0.0-20170710-beta1.apk Your App Name-V1.0.0-20170710-release.apk // 有渠道 Your App Name-V1.2.1-20170710-渠道名称-beta2.apk Your App Name-V1.2.1-20170710-渠道名称-release.apk
转载请注明原文地址: https://www.6miu.com/read-25006.html

最新回复(0)