Android多渠道打包方案

很多时候我们需要根据不同的渠道生成不同的安装包,这时候我们就需要用到多渠道打包配置。
1.在项目app跟目录下创建一个channel.gradle文件,用来配置我们的渠道。
Android多渠道打包方案_第1张图片
channel.gradle

ext {
    CHANNELS = [
            "custom",
            "huawei",
            "xiaomi",
            "vivo",
            "oppo",
            "yingyongbao"
    ]
}

2.在项目app中build.gradle引入channel.gradle文件,并使用
apply from: “channel.gradle”

Android多渠道打包方案_第2张图片

 flavorDimensions "default"
    productFlavors {
        CHANNELS.each { channel ->
            "$channel" {
                buildConfigField "String", "CHANNEL_ID", "\"$name\""
                //根据渠道号修改应用名称
                if (channel == "vivo") {
                    resValue "string", "app_name", "应用程序名A"
                } else {
                    resValue "string", "app_name", "应用程序名B"
                }

            }
        }
    }

3.修改打包资源输出路径(打包后的apk输出路径)
Android多渠道打包方案_第3张图片

 applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def apkName = "默认的应用名称"
            def flavorName = variant.productFlavors[0].name
            def createTime = new Date().format("YYYY-MM-dd-HH-mm-ss", TimeZone.getTimeZone("GMT+08:00"))
            if (variant.buildType.name == "release") {
                output.outputFileName = "${apkName}-${flavorName}-${versionName}.apk"
                variant.packageApplicationProvider.get().outputDirectory =
                        new File("路径随意/${versionName}\\app/${createTime}/${variant.productFlavors[0].name}")
            }
        }
    }

4.执行打包Build->Generate Signed Bundle / APK
Android多渠道打包方案_第4张图片
Android多渠道打包方案_第5张图片
选择自己需要打包的渠道,可多选
Android多渠道打包方案_第6张图片
等待打包完成
Android多渠道打包方案_第7张图片
这个就是我们需要的安装包啦,这样就可以根据不同平台的审核规则去修改配置了

end

你可能感兴趣的:(Android,android,gradle,android,studio,多渠道打包)