问题现象
debug模式没有问题,release打包后项目运行异常,具体表现包括但不限于以下几种:
- 使用部分功能应用闪退。
- 应用闪退无法进入。
- 字段异常。
背景知识
代码混淆技术可以增加代码的复杂性和模糊性,从而提高攻击者分析代码的难度。
问题定位
release包问题,先判断本地调试debug包时是否同样有问题,若没有问题,大概率是在发布模式下,代码经过混淆后,某些关键属性或方法可能被意外修改或删除,可关闭混淆后打release包再测试是否还有问题。
分析结论
代码混淆是导致发布模式下出现各种问题的主要原因。在发布模式下,代码经过混淆后,某些关键属性和方法可能被修改或删除,导致应用无法正常运行。
修改建议
- 直接关闭混淆:
通过在模块build-profile.json5文件中配置,关闭代码混淆。参考文档:混淆配置。
- 不关闭混淆:
开启混淆后,代码中的方法、属性或路径被混淆,但运行的时候访问的是未混淆的方法、属性或路径,可能导致功能不可用,因此需要将对应的字段配置保留选项。关于保留选项的排查场景及配置方式请参考保留选项。