Android 自动化脚本多渠道打包
相关的参考技术文档
技术方案
- 使用 VasDolly 多渠道打包;
- 其他市场直接上架,需要加固的市场让运营的同事手动加固一下。
集成 VasDolly
添加对 VasDolly Plugin 的依赖
在根工程的 build.gradle 中,添加对打包 Plugin 的依赖:
1 | dependencies { |
引用 VasDolly Plugin
在主 App 工程的 build.gradle 中,添加对 VasDolly Plugin 的引用:
1 | apply plugin: 'channel' |
添加对 VasDolly helper 类库的依赖
在主 App 工程的 build.gradle 中,添加读取渠道信息的 helper 类库依赖:
1 | dependencies { |
以下流程可略过,在下面的自动化脚本多渠道打包流程中一起操作。
配置渠道列表
指定渠道文件 channel.txt,一行一个渠道信息。
通过 Gradle 生成多渠道包
(略)
通过命令行生成渠道包、读取渠道信息
从 V1.0.5 版本开始支持命令行,具体使用文档可参考 command 目录下的 README。
读取渠道信息
通过 helper 类库中的 ChannelReaderUtil 类读取渠道信息。
1 | String channel = ChannelReaderUtil.getChannel(getApplicationContext()); |
如果没有渠道信息,那么这里返回 null,开发者需要自己判断。
更详细的集成文档和参数说明请查看 VasDolly 文档。
自动化脚本多渠道打包
新增目录结构
在项目根目录下新增一个 vasdolly 文件夹,里面包含一下几个文件:
- channel.txt:指定渠道文件,一行一个渠道信息。
- multi-channel.gradle:多渠道打包命令脚本
- VasDolly.jar:命令行工具,可在 VasDolly 仓库中获取。
- README.md:本说明文档,非必须。
编辑 channel.txt
添加渠道信息,一行一个,例如:
1 | official |
multi-channel.gradle
1 | ext { |
app 的 build.gradle 中添加
1 | apply from: "../vasdolly/multi-channel.gradle" |
任务名 assembleMultiChannelRelease 和 apk 输出路径 appBuildOutputPath 可根据项目的实际情况改变,以避免在 多 module / 多 productFlavors 情况下出现的路径错误和冲突。
代码中获取渠道名称
1 | fun getChannelName(ctx: Activity): String { |
编译打包
最终我们执行 ./gradlew assembleMultiChannelRelease
记得打包前 clean:./gradlew clean。
查看结果,在目标文件夹下即可找到生成的多渠道包。
至此便完成了自动化脚本多渠道打包的功能,通过一个命令即可快速生成多渠道包。