Xcode崩溃日志分析工具symbolicatecrash用法

1.什么是symbolicatecrash?

symbolicatecrash是Xcode自带的一个分析工具,可以通过机器上的崩溃日志和应用的.dSYM文件定位发生崩溃的位置,把crash日志中的一堆地址替换成代码相应位置。

2.crash现象

1.当项目上线之后,捕捉线上crash方法之一。

当拿到手机后看到的device log 是这样的 ,只有crash的函数的地址,没有办法定位到具体问题再哪里。

我们需要准备:

1.应用的.dSYM文件(路径:/Users/用户名/Library/Developer/Xcode/Archives)

2.工具symbolicatecrash:(终端:find /Applications/Xcode.app -name symbolicatecrash -type f  会把symbolicatecrash的路径打印出来,把他复制一个新建文件夹中(例如:CrashReport))

3.手机中.crash 文件:(Window --> Devices and Simulators --> View Device Logs --- > 右键 export Log)

把这三个放到新建的文件夹中CrashReport

终端今天此文件路径:

cd /Users/wangyan/Desktop/CrashReport

export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer

./symbolicatecrash ./*.crash ./*.app.dSYM > symbol.crash(例如: ./symbolicatecrash ./M.crash ./Example.app.dSYM/ > symbol.crash  )

此时文件夹中会出现 symbol.crash我们认识的crash文件。

注:

确定dSYM、app以及crash文件的关系

每一个xx.app, xxx.app.dSYM文件都拥有相应的uuid,crash文件也有uuid,只有三者uuid一至才表明之三者可以解析出正确的日志文件。
查看xx.app文件的uuid的方法,在terminal中输入命令:

dwarfdump --uuid xxx.app/xxx (xxx工程名)

查看xx.app.dSYM文件的uuid的方法,在terminal中输入命令:

dwarfdump --uuid xxx.app.dSYM (xxx工程名)

而.crash的uuid位于,crash日志中的Binary Images:中的第一行尖括号内。如:

armv7 <8bdeaf1a0b233ac199728c2a0ebb4165>

原文地址:https://www.cnblogs.com/miaomiaocat/p/11170672.html