android - 如何混淆 Android 库模块

标签 android gradle proguard aar

我有 3 个模块:2 个 Android 应用程序和 1 个 Android 库,在这个问题中我将它们称为“通用模块”。

Android 库模块包含在两个 Android 应用程序中,并提供跨两个应用程序的共享功能。两个应用程序都依赖于通用模块:implementation project(":mylibrary")
由于 Android 库模块包含敏感功能,因此我试图对其进行模糊处理,以使应用程序的这一部分更难进行逆向工程。同时,我不想混淆这 2 个 Android 应用程序,因为它们很大,并且在混淆后测试所有功能既费时又不值得。

我已启用 minifyEnabledbuild.gradle公共(public)模块的文件,并将保留规则添加到 proguard-rules.pro文件。当我运行 assembleRelease任务就可以了,结果.aar文件被混淆但是当我尝试 assembleRelease在任何一个应用程序中,公共(public)库中的类都没有被混淆。

我能想到的唯一解决方案是生成 .aar公共(public)库的文件并在应用程序中手动将其导入,这将起作用,但需要生成新的.aar每次我对公共(public)模块进行更改并将其导入多个应用程序时都需要提交文件,这可能很耗时并且容易出现人为错误。我还必须跟踪 .aar 的每个版本的映射文件。文件。

关于如何自动化此过程或配置公共(public)模块以在构建消费者模块时混淆的任何想法?

最佳答案

试试releaseImplementation project(":mylibrary")

关于android - 如何混淆 Android 库模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50934284/

相关文章:

android - 使用 ProGuard 后在 Android 中找不到应用程序类

java - 改造同步调用异步调用

android - 应用程序更新时重建 SQLite 数据库,Android

Android:在 SD 卡上写入 xml

java - ListView 未加载,在 textview.setText() 上返回 null 对象;

android - Jenkins android 构建失败并显示消息 : FATAL: The Gradle wrapper has not been found in these directories

java - Flutter & Android : Your build is currently configured to use Java 17. 0.2 和 Gradle 7.0.2

android - 懒惰的Android依赖项。 gradle依赖解析之前如何构建AARs库

java - 如何使用 ProGuard(或任何其他方式)隐藏库 Jar 中的公共(public)类?

android - IntelliJ/Android Studio - 如何激活 proguard 来混淆代码 - 一步一步?