如何自定义混淆规则
注意:专有钉钉集成release包将会执行混淆加固,因此当你的代码中需要keep部分class时,请关注该章节。
1. 定义SDK的配置:consumerProguardFiles
AAR中可自定义混淆配置,专有钉钉执行集成构建时会合并该规则。请务必把用到的三方库混淆规则、自己代码中用到的混淆规则添加到该文件中。
配置方式如下,build.gradle文件中 consumerProguardFiles对应的consumer-rules.pro文件中配置
defaultConfig {
minSdkVersion 14
targetSdkVersion 29
versionCode 1
versionName "1.0"
// 用于配置自己sdk的混淆规则,可附带在aar中
consumerProguardFiles 'consumer-rules.pro'
}
注意:该配置规则不会影响aar的打包,仅在专有钉钉集成时发挥作用。
示例:
此处只需定义自己的规则即可,通用规则专有钉钉会覆盖
-keep class com.mypath.demo.plugin.DemoSDKManager
注意:该文件只能添加自己SDK相关类以及依赖的开源库规则,禁止添加任何影响全局的规则,禁止添加任何非SDK相关的配置。比如通用的Activity、Fragment等专有钉钉平台会有标准规则定义,请务必不要重复配置,否则将审核无法通过!!
2. 混淆自己的AAR
对应包含专有钉钉适配层的模块请不要执行混淆,请统一由专有钉钉集成打包时统一混淆。
如果你期望对自己的代码做保护,可将自己的功能sdk单独执行混淆,可自行按照gradle规范开启混淆:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
注意:该混淆配置和上文的consumer-rules.pro没有任何关联。