配置部分:
1、把channel文件和 打包key放入项目中
项目选择Project模式,注意文件所放位置,在app文件下
channel文件的渠道名字 # 后写备注内容
2、配置build.gradle
在位于项目的根目录 build.gradle 文件中添加Walle Gradle插件的依赖, 如下:
buildscript {
dependencies {
classpath 'com.meituan.android.walle:plugin:1.1.3'
}
}
并在当前App的 build.gradle 文件中apply这个插件,并添加上用于读取渠道号的AAR
apply plugin: 'walle'
dependencies {
compile 'com.meituan.android.walle:library:1.1.3'
}
dependencies {
compile 'com.meituan.android.walle:library:1.1.3'
}
3、配置插件
这里是我的设置,具体规则参考文档
walle {
// 指定渠道包的输出路径
// apkOutputFolder = new File("${project.buildDir}/outputs/channels");
apkOutputFolder = new File("D:/APK/MakeAPK")
// 定制渠道包的APK的文件名称
apkFileNameFormat = '${appName}-${packageName}-${channel}-${buildType}-v${versionName}-${versionCode}-${buildTime}.apk';
// 渠道配置文件
channelFile = new File("${project.getProjectDir()}/channel.txt")
}
// 指定渠道包的输出路径
// apkOutputFolder = new File("${project.buildDir}/outputs/channels");
apkOutputFolder = new File("D:/APK/MakeAPK")
// 定制渠道包的APK的文件名称
apkFileNameFormat = '${appName}-${packageName}-${channel}-${buildType}-v${versionName}-${versionCode}-${buildTime}.apk';
// 渠道配置文件
channelFile = new File("${project.getProjectDir()}/channel.txt")
}
3、关联打包key 和密码
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.zs.login.myvarioustest"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
signingConfigs {
pkg {
storeFile file("keystore/test.jks")
storePassword "qazwsx"
keyAlias "test"
keyPassword "qazwsx"
v2SigningEnabled true//是否启用APK Signature Scheme v2
}
}
buildTypes {
release {
minifyEnabled false//minifyEnabled是否启用混淆
shrinkResources false//删除无效的Resource
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.pkg
}
}
}
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.zs.login.myvarioustest"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
signingConfigs {
pkg {
storeFile file("keystore/test.jks")
storePassword "qazwsx"
keyAlias "test"
keyPassword "qazwsx"
v2SigningEnabled true//是否启用APK Signature Scheme v2
}
}
buildTypes {
release {
minifyEnabled false//minifyEnabled是否启用混淆
shrinkResources false//删除无效的Resource
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.pkg
}
}
}
4、查看 渠道
我是写在了application中,安装批量打包成功后得包,检测渠道是否写入成功
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
String channel = WalleChannelReader.getChannel(this.getApplicationContext());
Log.d("My_Channel","channel = " + channel);
}
}
5、
打包方案:
方法一: Studio中直接打包
此方法异常简单,就一步:
Terminal 下 运行一句命令:gradlew clean assembleReleaseChannels
这是打所有渠道的包,其他操作(打单独的包)参看文档
耐心等待打包结束就好了,去指定的文件查看打出的包即可
方法二:命令行打包
1、下载美团提供的jar包,我是在csdn中下的
2、新建一个文件夹,把打包的channel文件,和 Studio中打的一个包(默认渠道或者没有的)放进去,批量打完的包会在这里。
3、打开cmd,命令行进入第一步放jar的地方
4、检差jar包是否正常(这步可以不要)
输入:
java -jar walle-cli-all.jar -h
5、开始打包输入命令:
java -jar walle-cli-all.jar batch -f
D:/APK/MakeAPK/channel.txt
D:/APK/MakeAPK/MyVariousTest.apk
注意,里面channel 文件和 先打的包的位置,请替换你的文件所在的位置
6、打包完成,查看包
7、
8、