您的位置:首页 > 其它

腾讯 VasDolly 接入(快速多渠道打包)

2018-03-08 18:38 501 查看
最近有朋友问关于腾讯VasDolly多渠道打包的接入问题,github上有接入教程,不过在通过Gradle生成多渠道包那一步骤有些问题,本文着重会对这一步骤做详细描述。

接入流程

1.添加对VasDolly Plugin的依赖

在根工程的
build.gradle
中,添加对打包Plugin的依赖:dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
classpath 'com.leon.channel:plugin:1.1.7'
}

2.引用VasDolly Plugin

在主App工程的
build.gradle
中,添加对VasDolly Plugin的引用:
apply plugin: 'channel'

3.添加对VasDolly helper类库的依赖

在主App工程的
build.gradle
中,添加读取渠道信息的helper类库依赖:
dependencies {
api 'com.leon.channel:helper:1.1.7'
}

4.配置渠道列表

目前有两种方式配置渠道列表,最终的渠道列表是两者的累加之和:
(1)在
gradle.properties
文件指定渠道文件名称,该渠道文件必须位于根工程目录下,一行一个渠道信息。channel_file=channel.txt


(2)在
channel
或者
rebuildChannel
属性中通过
channelFile
属性指定渠道文件,一行一个渠道信息。channel{
//指定渠道文件
channelFile = file("../channel.txt")
}
rebuildChannel{
//指定渠道文件
channelFile = file("../channel.txt")
}

6.通过Gradle生成多渠道包(敲黑板)

一种方式直接编译生成多渠道包

若是直接编译生成多渠道包,首先要配置渠道文件、渠道包的输出目录和渠道包的命名规则:channel {
//指定渠道文件,一定要找准你项目路径下的文件
channelFile = file("../channel.txt")
//多渠道包的输出目录,默认为new File(project.buildDir,"channel")
baseOutputDir = new File(project.buildDir, "channel")
//多渠道包的命名规则,默认为:${appName}-${versionName}-${versionCode}-${flavorName}-${buildType}
//命名规则可以不写,直接生成
//快速模式:生成渠道包时不进行校验(速度可以提升10倍以上)
isFastMode = false
}其中,多渠道包的命名规则中,可使用以下字段:
appName : 当前project的name
versionName : 当前Variant的versionName
versionCode : 当前Variant的versionCode
buildType : 当前Variant的buildType,即debug or release
flavorName : 当前的渠道名称
appId : 当前Variant的applicationId
然后,通过
gradle channelDebug
gradle channelRelease
命令分别生成Debug和Release的多渠道包。


以debug版本为例,然后会在输出目录下生成对应市场的apk



第二种方式是根据已有基础包重新生成多渠道包

若是根据已有基础包重新生成多渠道包,首先要配置渠道文件、基础包的路径和渠道包的输出目录:rebuildChannel{
baseDebugApk = new File(project.projectDir, "outputs/apk/debug/app-base-debug.apk")//一定要写准基准包所在位置
baseReleaseApk = new File(project.projectDir, "rebuildChannel/debug")
}一定要写准基准包所在位置,而且命名中要包含base,这里“rebuildChannel”生成渠道包时,会用新渠道名替换已有基础包的“base”字符串,但是"outputs/apk/app-release.apk"不包含“base”字符串,所以新的渠道包名字还是app-release.apk,因此后面的APK就把前面的覆盖了,最后只出现一个。短期解决就是改下基础包的命名“app-base-release.apk”,后续作者说发个版本fix下这个问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: