android 多渠道打包与自定义包文件名

我们在打包输出的时候希望我们的包文件名是自定义的,例如是包名版本号+渠道名+打包日期+.apk。现在我们就以此为例,来写一个gradle自定义包文件脚本。

    //多渠道命名
    productFlavors {

        m360 { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "360"] }
        yingyongbao { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "yingyongbao"] }
    }

    //自定义输出包文件名
    buildTypes {
        debug {
            signingConfig signingConfigs.release
        }
        release {
            // 不显示log
            buildConfigField("boolean", "LOG_DEBUG", "true")
            // Zipalign 优化
            zipAlignEnabled true
            debuggable false
            minifyEnabled false
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            //就是指定了新的apk的文件名
            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def outputFile = output.outputFile
                    if (outputFile != null && outputFile.name.endsWith('.apk')) {
                        //遍历渠道
                        productFlavors.each { flavor ->
                            def myFlavor = flavor
                          //定义输出文件名
                            def fileName = "${applicationId}_v${defaultConfig.versionName}_${myFlavor.manifestPlaceholders.UMENG_CHANNEL_VALUE}_${releaseTime()}_release.apk"
                            output.outputFile = new File(outputFile.parent, fileName)
                        }
                    }
                }
            }
        }
    }

你可能感兴趣的:(android 多渠道打包与自定义包文件名)