在HarmonyOS开发中har包混淆问题?

在HarmonyOS开发中har包混淆问题?使用-keep保留指定文件不生效,还是会被混淆,混淆规则配置如下:

// 开启属性混淆 
-enable-property-obfuscation 
// 混淆字符串字面量属性名 
-enable-string-property-obfuscation 
//开启顶层作用域名称混淆 
-enable-toplevel-obfuscation 
-enable-filename-obfuscation 
-enable-export-obfuscation 
-enable-property-obfuscation 
// 去除不必要的空格符和所有的换行符。如果使用这个选项,那么所有代码会被压缩到一行 
-compact 
// 删除log 
-remove-log 
Keep options: 
-keep-property-name 
EsscSDK 
Biap 
-keep 
./src/main/ets/EsscSDK.ets 
./src/main/ets/Biap.ets

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

阅读 635
avatarAI BotBETA
在HarmonyOS开发中,对于har包混淆问题,如果`-keep`保留指定文件不生效,可能的原因和解决方案如下:

### 可能的原因

1. **路径配置错误**:
   - 确保`-keep`后面指定的路径是相对于混淆配置文件的正确路径。
   - 路径应该精确到文件,包括文件的扩展名。

2. **混淆规则冲突**:
   - 其他混淆规则可能与`-keep`规则冲突,导致指定的文件或类被覆盖。
   - 检查是否有其他全局性的混淆规则(如通配符规则)可能影响到指定的文件。

3. **混淆工具版本或配置问题**:
   - 确保使用的混淆工具版本与HarmonyOS开发环境兼容。
   - 检查混淆工具的配置文件是否完整且正确。

4. **代码结构或编译问题**:
   - 确保被混淆的代码结构没有问题,且能够正常编译。
   - 检查编译过程中的日志,看是否有相关警告或错误信息。

### 解决方案

1. **核对路径**:
   - 重新核对`-keep`规则中指定的路径,确保它们正确无误。
   - 如果路径中包含特殊字符或空格,请确保它们被正确处理。

2. **调整混淆规则**:
   - 检查并调整其他混淆规则,确保它们不会与`-keep`规则冲突。
   - 可以尝试暂时禁用其他混淆规则,以验证`-keep`规则是否有效。

3. **更新或修复混淆工具**:
   - 如果怀疑是混淆工具的问题,尝试更新到最新版本或修复当前版本。
   - 查阅混淆工具的官方文档,了解是否有相关的已知问题或修复方案。

4. **检查代码和编译**:
   - 确保代码结构清晰,没有未解决的编译错误或警告。
   - 清理并重新编译项目,以确保所有更改都已生效。

### 示例修正后的混淆规则

// 开启属性混淆
-enable-property-obfuscation
// 混淆字符串字面量属性名
-enable-string-property-obfuscation
// 开启顶层作用域名称混淆
-enable-toplevel-obfuscation
-enable-filename-obfuscation
-enable-export-obfuscation
// 去除不必要的空格符和所有的换行符。如果使用这个选项,那么所有代码会被压缩到一行
-compact
// 删除log
-remove-log

// Keep options:
-keep-property-name EsscSDK. Biap.
-keep class ./src/main/ets/EsscSDK.ets
-keep class ./src/main/ets/Biap.ets


**注意**:在`-keep`规则中,通常使用`-keep class`来指定要保留的类,而不是直接指定文件路径。确保你的混淆规则中使用了正确的语法和格式。同时,`-keep-property-name`规则后面应该跟具体的属性名或类名模式,而不是直接跟类名(除非你是想保留这些类中的特定属性名)。
1 个回答

保留的文件/文件夹名称(无需文件后缀)-keep-file-nameentryabilityEntryAbilitypagesIndex

当前需要按照这个格式配置下混淆的keep。
代码混淆-保留选项,可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...保留选项
-keep-file-nameEsscSDKBiap
-keep保留指定路径中的所有名称(例如变量名、类名、属性名等)不被混淆。

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题