首页 > Android Studio多渠道打包时gradle里如何为每一个输出apk命名一个固定但不同的名字?

Android Studio多渠道打包时gradle里如何为每一个输出apk命名一个固定但不同的名字?

比如对应渠道xiaomi输出a.apk, meizu输出b.apk, baidu输出x.apk, 360输出z.apk等等,gradle里面要如何设置


在多渠道打包的基础上,生成的apk的名字也是可以自定义的,在bulid.gradle->buildTypes->release中添加方法,如下:

buildTypes--release

release {
            // 不显示Log
            buildConfigField "boolean", "LOG_DEBUG", "false"

            //是否混淆
            minifyEnabled true
            zipAlignEnabled true
            // 移除无用的resource文件
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release

            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def outputFile = output.outputFile
                    if (outputFile != null && outputFile.name.endsWith('.apk')) {
                        // 输出apk名称为XXXX_v1.0_2016-01-15_wandoujia.apk
                        def fileName = "XXXX_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
                        output.outputFile = new File(outputFile.parent, fileName)
                    }
                }
            }
        }

releaseTime方法

def releaseTime() {
    return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
}

多渠道打包,gradle productFlavors内容,可参考这个
http://xuyazhou.com/archives/461

【热门文章】
【热门文章】