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

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

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

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

怎么做?

只要在moudlebuild.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
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值