iOS通过dSYM文件分析crash日志
iOS通过dSYM文件分析crash日志
平常在开发的过程中,遇到到了Crash可以很容易的通过Xcode去定位Crash的位置,但是当我们的App发布以后,遇到闪退就不可以通过Xcode去调试了。当然现在也有很多产品可以在线分析,例如腾讯的bugly与友盟的错误分析。这些分析工具的最基本的地方还是通过dSYM去分析Crash日志,符号化
Crash日志。
准备工作
分析崩溃日志需要三个东西:1、crash文件 2、symbolicatecrash文件 3、dYSM文件。我们拿到这个三个文件后,一般新建一个文件夹,把这三个文件放一起。至于crash文件和dYSM文件在哪里找,出门左转,度娘谢谢。
1、如何查找symbolicatecrash
文件?
打开终端,输入 find /Applications/Xcode.app -name symbolicatecrash -type f
,我用的是Xcode9,返回的结果如下:
如果是iPhone设备,选择红框中的路径,这样就可以找到symbolicatecrash
文件
2、检测dYSM
文件和crash文件是否对应
从终端进入到刚刚创建的crash文件中,输入dwarfdump --uuid xxx.app.dSYM
(xxx是工程名)。如果输出的uuid和crash文件中的一致,则可以解析出正确的crash文件。crash文件中的uuid位于Binary Images
中的第一行尖括号内。

3、解析crash文件
在终端中输入./symbolicatecrash crash.crash xxx.app.dSYM >crashLog.text
,(xxx是工程名)。这样就可以在你的文件中看到解析后的崩溃文件。
注意,一般情况下,第一次使用symbolicatecrash会产生一个error,如下的错误信息Error: "DEVELOPER_DIR" is not defined at /usr/local/bin/symbolicatecrash line 53.
解决办法是输入export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer