在多模块 SDK Android 库项目中配置 proguard
Posted
技术标签:
【中文标题】在多模块 SDK Android 库项目中配置 proguard【英文标题】:Configure proguard in a multimodule SDK Android library project 【发布时间】:2021-12-29 03:55:24 【问题描述】:我正在开发一个即将拆分为单独模块的 android SDK,其中一些代码在其他模块之间共享,即:
共享课程 具有功能 #1 的 SDK 具有功能 #2 的 SDK需要混淆输出 AAR。使用单个模块这不是问题,但我找不到如何使用 Proguard 正确配置整个项目。
如果我想发布所有这些库的新版本,Proguard 混淆是如何工作的?所有模块都会被单独混淆吗?如何确保一次对所有模块进行混淆处理,并且库的发布版本将正确引用位于 shared
模块中的所有工件?
【问题讨论】:
【参考方案1】:不确定我是否理解问题。
但如果你想现在发布 2 个 SDK 而不是 1 个(拆分前),我认为设置应该不会有太大差异。
只需确保您在这些 SDK 中有 proguard 文件,并且您在特定于该 SDK(模块)的构建脚本中使用它。然后运行:sdk:assembleRelease
之类的东西就完成了。
release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'library.pro'
本期详细介绍: Obfuscating the .aar files
我知道shared
模块没有发布,所以你只需要定义其他模块将使用的特定proguard规则,如下所示:
release
minifyEnabled true
consumerProguardFiles 'onboarding-proguard-rules.pro'
【讨论】:
以上是关于在多模块 SDK Android 库项目中配置 proguard的主要内容,如果未能解决你的问题,请参考以下文章
如何在多平台 Android 模块中配置 Kotlin jvmTarget?