为什么要上传dSYM文件?


首先向您解释一下dSYM文件(符号表)到底是什么?

Xcode编译项目后,我们会看到一个同名的 dSYM 文件,dSYM 文件是保存 16 进制函数地址映射信息的中转文件。如果Debug调试模式的话,我们可以根据log的输出轻松定位到导致crash的原因,但当应用 release 模式打包或上线后出现Crash,这个时候就需要通过出错的函数地址去查询 dSYM 文件中程序对应的函数名和文件名。

为了帮助用户快速准确地定位App发生Crash的详细位置,OneAPM使用dSYM文件将crash文件中的16进制地址转换成可读信息(内存地址、函数名、文件名、行号信息)。所以上传对应的dSYM文件是很有必要的。

补充:

项目代码一旦发生改变,编译项目就会生成新的dSYM文件,因此为了保证OneAPM抓取到的崩溃信息的正常解析,特此向您建议:

1.测试过程中,一旦更新项目代码,请及时更新上传官网的dSYM文件。

2.项目上线之前,请确认您的dSYM文件与上传的ipa包一致。

 每一个.dSYM文件都有一个UUID,和.app文件中的UUID对应,代表着是一个应用。
 因此我们可以通过二者的UUID是否一致进行判断,通过命令 dwarfdump --uuid 查看方式:

``` dwarfdump --uuid /Users/andrea_sunny/Downloads/我的iPa包//Payload/OnMobile.app/OnMobile

    dwarfdump --uuid /Users/andrea_sunny/Downloads/我的iPa包/OnMobile.app.dSYM 
```