最近接手的项目都需要多渠道打包,有七八个渠道。使用android studio 原生productFlavors和友盟设置多渠道id打包非常慢,是二三十分钟。目前使用过的多渠道打包方式,按教程操作接入项目就可以,但有些坑,文档不会提到的,总结如下:
1. 第三方sdk
-
腾讯乐固,下载签名多渠道打包
-
360 加固工具
2. 使用插件
-
Walle多渠道打包 github项目地址
注意:使用此方式,按文档接入,需要注释主模块builde.gradle下的原有多渠道打包方式,如:productFlavors,原文档未提。在当前app的build.gradle 文件中添加依赖,以及配置wallet插件,这里有一个不得不说的梗,原文档配置使用的插件 // 渠道配置文件
channelFile = new File("${project.getProjectDir()}/channel"), 报错找不到channel文件。正确配置如下图:
获取渠道信息
通过以下代码,可以取渠道信息
String channel = WalleChannelReader.getChannel(this.getApplicationContext());
将渠道号在application中添加到友盟统计工具中,
多渠道打包命令行:./gradlew clean assembleReleaseChannels ,
winodw 需要去掉./,
-
packer-ng-plugin github地址
原文档配置使用的插件 // 渠道配置文件
channelFile = new File(project.rootDir, "channel.txt")
出现报错,gradle编译失败,
正确配置渠道插件路径:
channelFile = new File("${project.getProjectDir()}/channel.txt")
代码中读取渠道
// 如果没有找到渠道信息或遇到错误,默认返回的是""
// com.mcxiaoke.packer.helper.PackerNg
String channel = PackerNg.getChannel(Context)