无图无真相 先看下最终实现目标是什么
setUp 1 生成签名文件
如果有签名文件最好 如果没有那么就要创建一个签名文件
这样已经很清楚了 在不了解请百度 这里有一篇文章可以参考下
setUp2 配置walle
1.配置渠道相关信息
在App 目录下新建一个channel(txt)文件
Qh360 #360
Yyb #应用宝
Wdj #豌豆荚
Lenovo #联想
Xiaomi #小米
Huawei #华为
Meizhu #魅族
2.在位于项目的根目录 build.gradle 文件中添加Walle Gradle插件的依赖, 如下:
buildscript {
dependencies {
classpath 'com.meituan.android.walle:plugin:1.1.4'
}
}
3.并在当前App的 build.gradle文件中apply这个插件,并添加上用于读取渠道号的AAR
apply plugin: 'walle'
dependencies { compile 'com.meituan.android.walle:library:1.1.4'}
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")
}
解释以上配置
apkOutputFolder:指定渠道包的输出路径, 默认值为new File("${project.buildDir}/outputs/apk")
apkFileNameFormat:定制渠道包的APK的文件名称, 默认为'${appName}-${buildType}-${channel}.apk'
projectName - 项目名字
appName - App模块名字
packageName - applicationId (App包名packageName)
buildType - buildType (release/debug等)
channel - channel名称 (对应渠道打包中的渠道名字)
versionName - versionName (显示用的版本号)
versionCode - versionCode (内部版本号)
buildTime - buildTime (编译构建日期时间)
fileSHA1 - fileSHA1 (最终APK文件的SHA1哈希值)
flavorName - 编译构建 productFlavors 名
4.如何获取渠道信息
在需要渠道等信息时可以通过下面代码进行获取
String channel = WalleChannelReader.getChannel(this.getApplicationContext());
5.如何生成渠道包
生成单个渠道包: ./gradlew clean assembleReleaseChannels -PchannelList=meituan
生成多个渠道包: ./gradlew clean assembleReleaseChannels -PchannelList=meituan,dianping
生成所有渠道信息 ./gradlew clean assembleReleaseChannels