【发布时间】:2018-11-28 18:20:56
【问题描述】:
我有 3 个模块:2 个 Android 应用程序和 1 个 Android 库,在这个问题中我将它们称为“通用模块”。
Android 库模块包含在两个 Android 应用程序中,并提供跨两个应用程序的共享功能。两个应用程序都依赖于公共模块,使用:implementation project(":mylibrary")
由于 Android 库模块包含敏感功能,我试图对其进行模糊处理,以使这部分应用程序更难进行逆向工程。同时,我不想混淆这 2 个 Android 应用程序,因为它们很大,并且在混淆后测试所有功能既费时又不值得。
我在公共模块的build.gradle文件中启用了minifyEnabled,并在proguard-rules.pro文件中添加了保留规则。当我在其上运行assembleRelease 任务时,生成的.aar 文件会被混淆,但是当我在任一应用程序上尝试assembleRelease 时,公共库中的类根本不会被混淆。
我能想到的唯一解决方案是我生成一个公共库的.aar 文件并在应用程序中手动导入它,这将起作用,但每次我制作一个新的.aar 文件时都需要生成一个更改为通用模块并将其导入到多个应用程序中,这可能很耗时且容易出现人为错误。我还必须跟踪 .aar 文件的每个版本上的映射文件。
关于如何自动化此过程或配置通用模块以在构建消费者模块时变得模糊有什么想法?
【问题讨论】:
-
您找到解决方案了吗?
标签: android gradle proguard aar