debug打包运行没问题，release打包后项目运行异常
=============================

#### 问题现象

debug模式没有问题，release打包后项目运行异常，具体表现包括但不限于以下几种：

1.  使用部分功能应用闪退。
2.  应用闪退无法进入。
3.  字段异常。

#### 背景知识

[代码混淆](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-app-code-ob)技术可以增加代码的复杂性和模糊性，从而提高攻击者分析代码的难度。

#### 问题定位

release包问题，先判断本地调试debug包时是否同样有问题，若没有问题，大概率是在发布模式下，代码经过混淆后，某些关键属性或方法可能被意外修改或删除，可关闭混淆后打release包再测试是否还有问题。

#### 分析结论

代码混淆是导致发布模式下出现各种问题的主要原因。在发布模式下，代码经过混淆后，某些关键属性和方法可能被修改或删除，导致应用无法正常运行。

#### 修改建议

1.  直接关闭混淆：
    
    通过在模块build-profile.json5文件中配置，关闭代码混淆。参考文档：[混淆配置](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-app-code-ob#section171089239254)。
    
2.  不关闭混淆：
    
    开启混淆后，代码中的方法、属性或路径被混淆，但运行的时候访问的是未混淆的方法、属性或路径，可能导致功能不可用，因此需要将对应的字段配置保留选项。关于保留选项的排查场景及配置方式请参考[保留选项](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/source-obfuscation#保留选项)。