HarmonyOS 鸿蒙Next中编译HAR开启混淆时如何指定Resource目录不混淆

HarmonyOS 鸿蒙Next中编译HAR开启混淆时如何指定Resource目录不混淆 请问编译HAR开启混淆时,如何指定Resource目录不混淆,仅源码混淆?

下面这种写法为什么不生效?

-keep

./src/main/resources

3 回复

可以在混淆的配置文件中配置-keep filepath 来保留指定相对路径中的所有名称(例如变量名、类名、属性名等)不被混淆。这个路径可以是文件与文件夹,若是文件夹,则文件夹下的文件及子文件夹中文件都不混淆。

混淆配置文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/source-obfuscation-V5#

保留选项

资源目录不参与混淆,当前混淆仅支持ArkTS文件,TS文件,JS文件,参考:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/source-obfuscation-V5#%E6%B7%B7%E6%B7%86%E8%8C%83%E5%9B%B4

更多关于HarmonyOS 鸿蒙Next中编译HAR开启混淆时如何指定Resource目录不混淆的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,编译HAR(HarmonyOS Ability Resource)时,如果需要指定Resource目录不进行混淆,可以通过在build.gradle文件中进行配置。具体操作如下:

  1. 打开build.gradle文件。
  2. buildTypes节点下找到releasedebug配置。
  3. proguardFiles配置项中添加自定义的混淆规则文件。
  4. 在自定义的混淆规则文件中,使用-keep指令指定Resource目录不进行混淆。

例如,假设你的Resource目录为src/main/resources,可以在自定义混淆规则文件中添加如下内容:

-keep class com.example.app.resources.** { *; }

其中com.example.app.resources为Resource目录的包路径。

完成配置后,重新编译HAR,Resource目录中的内容将不会被混淆。

在HarmonyOS鸿蒙Next中编译HAR(HarmonyOS Archive)时,如需指定Resource目录不被混淆,可以通过配置ProGuard规则实现。在proguard-rules.pro文件中添加以下规则,以保留Resource目录及其内容:

-keep class com.example.yourpackage.R$* { *; }
-keep class com.example.yourpackage.R { *; }

其中,com.example.yourpackage替换为你的实际包名。这些规则将确保Resource目录中的资源类不被混淆。

回到顶部