我有 3 个模块:2 个 Android 应用程序和 1 个 Android 库,在这个问题中我将它们称为“通用模块”。
Android 库模块包含在两个 Android 应用程序中,并提供跨两个应用程序的共享功能。两个应用程序都依赖于通用模块:implementation project(":mylibrary")
由于 Android 库模块包含敏感功能,因此我试图对其进行模糊处理,以使应用程序的这一部分更难进行逆向工程。同时,我不想混淆这 2 个 Android 应用程序,因为它们很大,并且在混淆后测试所有功能既费时又不值得。
我已启用 minifyEnabled
在 build.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/