Android Studio 多渠道打包和打包时设置包名

1、在清单文件 AndroidManifest.xml 中添加如下带

在 AndroidManifest.xml 文件 中 application 内 添加:

<meta-data
    android:name="UMENG_CHANNEL"
    android:value="${UMENG_CHANNEL_VALUE}" />

这个是在使用友盟统计时的一个代码示例,meta-data 中的 name 是可以更改的,根据实际需求如自己修。

2、在 build.gradle 进行配置
在 build.gradle 文件中 android 的 buildTypes 的 release 下添加:
applicationVariants.all { variant ->
    variant.outputs.each { output ->
        def outputFile = output.outputFile
        if (outputFile != null && outputFile.name.endsWith('.apk')) {

            // apk_渠道名-版本号-版本名称-编译时间.apk
            def fileName = "apk_${variant.productFlavors[0].name}-${defaultConfig.versionCode}-${defaultConfig.versionName}-${releaseTime()}.apk"
            output.outputFile = new File(outputFile.parent, fileName)
        }
    }
}
完整代码:
   buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def outputFile = output.outputFile
                    if (outputFile != null && outputFile.name.endsWith('.apk')) {

                        // apk_渠道名-版本号-版本名称-编译时间.apk
                        def fileName = "apk_${variant.productFlavors[0].name}-${defaultConfig.versionCode}-${defaultConfig.versionName}-${releaseTime()}.apk"
                        output.outputFile = new File(outputFile.parent, fileName)
                    }
                }
            }
        }
    }




    productFlavors {
        qihu360 {} // 360手机助手
        yingyongbao {} // 腾讯应用宝
        wandoujia {} // 豌豆荚
   //     baidu {} // 百度手机助手
//        miui {} // 小米
//        flyme {} // 魅族
//        lenovo {} // 联想-乐商店
//        oppo {} // Oppo-可可软件商店
//        huawei {} // 华为
//        vivo {} // vivo
//        hiapk {} // 安卓市场
//        sj91 {} // 91手机助手
//        sogou {} // 搜狗手机市场
//        sohu {} // 搜狐应用中心

//        taobao {} // 淘宝手机助手
//        gfan {} // 机锋
//        appchina {} // 应用汇
//        mumayi {} // 木蚂蚁
//        wangyi163 {} // 网易应用
//        nduoa {} // N多市场
//        mm10086 {} // MM商城-中国移动
//        wostore {} // WO商店
//        youyi {} // 优异
//        uc {} // UC+开发平台
//        anzhi {} // 安智市场
//        google {} // google play
//        amazon {} // 亚马逊

    }


    productFlavors.all {
        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }



}
def releaseTime() {
    return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))
}

下面对配置文件简单说明一下:

我们看一下 meta-dataandroid:value="${UMENG_CHANNEL_VALUE}" 其中 ${UMENG_CHANNEL_VALUE} 是通配符,和 build.gradle 文件中 manifestPlaceholders = [UMENG_CHANNEL_VALUE: "c360"] 中的 UMENG_CHANNEL_VALUE 相对应。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值