使用Walle实现多渠道打包

walle的github地址:https://github.com/Meituan-Dianping/walle

1、项目的根目录 build.gradle 文件中添加Walle Gradle插件的依赖
buildscript {
    dependencies {
        classpath 'com.meituan.android.walle:plugin:1.1.6'
    }
}
2、app的 build.gradle 文件中apply这个插件,并添加依赖和配置
apply plugin: 'walle'

dependencies {
    compile 'com.meituan.android.walle:library:1.1.6'
}

walle {
    // 指定渠道包的输出路径
    apkOutputFolder = new File("${project.buildDir}/outputs/channels")
    // 定制渠道包的APK的文件名称
    apkFileNameFormat = '${appName}-${packageName}-${channel}-${buildType}-v${versionName}-${versionCode}-${buildTime}.apk'
    // 渠道配置文件
    channelFile = new File("${project.getProjectDir()}/channel")
}
3、创建一个没有后缀、名为channel的文件(注意:文件后缀.txt一定要删除,否则执行打包命令读取不到配置的渠道信息,只能生成一个没有渠道信息的包),配置渠道信息:

在这里插入图片描述

4、打包:

在控制台下的Terminal执行打包命令:

gradlew clean assembleReleaseChannels

然后在build/outputs/channels目录下会生成channel文件配置的所有渠道的包:
在这里插入图片描述

5、补充:

(1)之前项目manifest文件中配置的多渠道信息可以删除了

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

(2)之前友盟初始化方法

    UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, "");

替换为:

    //获取渠道信息
    String channel = WalleChannelReader.getChannel(this.getApplicationContext());
    UMConfigure.init(this, BuildConfig.UMENG_APPKEY, channel, UMConfigure.DEVICE_TYPE_PHONE, "");

友盟集成文档的初始化方法:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值