productFlavors 可以设置不同的渠道使用不同的混淆。
本次的需求是原工程中默认的混淆不变,但是在某个渠道中额外保持几个文件。这时候可以做如下配置:
android {
compileSdkVersion 28
defaultConfig {
// xxx
// 配置此参数,方可将混淆文件打包进aar
consumerProguardFiles 'consumer-rules.pro'
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug{
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
// 多版本打包
productFlavors {
xxx1{
// 默认
}
xxx2{
// 额外混淆
proguardFile 'keepbuildinfo.pro'
}
}
lintOptions {
abortOnError false
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
repositories {
flatDir {
dirs 'libs'
}
}
}
dependencies {
// xxx
}
额外混淆文件 keepbuildinfo.pro :
-keep class com.xxx.xxx.BuildInfo{*;}
此时
keepbuildinfo.pro 和 proguard-rules.pro 会在 xxx2 渠道同时生效