如何自定义混淆规则

注意:专有钉钉集成release包将会执行混淆加固,因此当你的代码中需要keep部分class时,请关注该章节。

1. 定义SDK的配置:consumerProguardFiles

AAR中可自定义混淆配置,专有钉钉执行集成构建时会合并该规则。请务必把用到的三方库混淆规则、自己代码中用到的混淆规则添加到该文件中。

配置方式如下,build.gradle文件中 consumerProguardFiles对应的consumer-rules.pro文件中配置

  1. defaultConfig {
  2. minSdkVersion 14
  3. targetSdkVersion 29
  4. versionCode 1
  5. versionName "1.0"
  6. // 用于配置自己sdk的混淆规则,可附带在aar中
  7. consumerProguardFiles 'consumer-rules.pro'
  8. }

注意:该配置规则不会影响aar的打包,仅在专有钉钉集成时发挥作用。

示例:

  1. 此处只需定义自己的规则即可,通用规则专有钉钉会覆盖
  2. -keep class com.mypath.demo.plugin.DemoSDKManager

注意:该文件只能添加自己SDK相关类以及依赖的开源库规则,禁止添加任何影响全局的规则,禁止添加任何非SDK相关的配置。比如通用的Activity、Fragment等专有钉钉平台会有标准规则定义,请务必不要重复配置,否则将审核无法通过!!

2. 混淆自己的AAR

对应包含专有钉钉适配层的模块请不要执行混淆,请统一由专有钉钉集成打包时统一混淆。

如果你期望对自己的代码做保护,可将自己的功能sdk单独执行混淆,可自行按照gradle规范开启混淆:

  1. buildTypes {
  2. release {
  3. minifyEnabled true
  4. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
  5. }
  6. }

注意:该混淆配置和上文的consumer-rules.pro没有任何关联。