美团walle官网:https://github.com/Meituan-Dianping/walle
(1)在你对应主module的build.gradle的android标签内添加相应的属性(配置多渠道信息)
productFlavors {
//开发环境
develop {
buildConfigField "String", "ENV_TYPE", "\"1\""
applicationId 'xxx'
manifestPlaceholders = [
app_name : "开发",
]
}
//测试环境
check {
buildConfigField "String", "ENV_TYPE", "\"2\""
applicationId 'xxx'
manifestPlaceholders = [
app_name : "测试",
]
}
//生产环境
product {
buildConfigField "String", "ENV_TYPE", "\"3\""
applicationId 'xxx'
manifestPlaceholders = [
app_name : "xxx",
]
}
}
(2)配置AndroidManifest.xml中的application label,对应上面的渠道app_name:
上面你配置了app_name 如果你不配置相应的xml是不会生效的!
android:label="${app_name}"
(3)配置项目下的build.gradle:
buildscript {
ext.kotlin_version = '1.3.30'
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
maven { url 'https://jitpack.io'}
google()
jcenter()
}
dependencies {
...
classpath 'com.meituan.android.walle:plugin:1.1.6'
}
}
allprojects {
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
maven { url 'https://jitpack.io'}
google()
jcenter()
}
}
(4)配置app下的build.gradle 添加:
//先使用android studio 生成一个 app.jks签名文件
//解决错误:All flavors must now belong to a named flavor dimension.
defaultConfig {
...
flavorDimensions "versionCode"
}
//配置签名:(signingConfigs一定要在buildTypes之前,不然找不到)
signingConfigs {
debug{
keyAlias 'motian'
keyPassword '123456'
storeFile file('../walle.jks')
storePassword '123456'
}
release {
keyAlias 'motian'
keyPassword '123456'
storeFile file('../walle.jks')
storePassword '123456'
}
}
buildTypes {
release {
minifyEnabled false
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled false
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
//添加依赖:
//添加相应渠道的aar
apply plugin: 'walle'
/*多渠道的库*/
implementation 'com.meituan.android.walle:library:1.1.6'
//配置插件walle,打包后的文件位置和信息等:
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")
}
//在app下创建创建channel文件,添加:
Qh360 #360
Yyb #应用宝
Wdj #豌豆荚
Lenovo #联想
Xiaomi #小米
Huawei #华为
Meizhu #魅族
(5)然后去打包,就可以获得对应的包
或者:在android studio 右侧 Gradle下的项目下的package assembleDevelopDebugChannels
就可以在 build/outputs/channels 下找到生成的渠道包