symbolicatecrash是Xcode自带的一个分析工具,可以通过机器上的崩溃日志和应用的.dSYM文件定位发生崩溃的位置,把crash日志中的一堆地址替换成代码相应位置。
(一)获取崩溃日志
1.从iOS设备中导出崩溃日志.
当一款App软件在iOS设备上崩溃时,一份"crash report"将会自动创建并存储在设备上。
1.1崩溃日志存储的位置
iOS8之前:设置-->通用-->关于本机-->诊断与用量-->诊断与用量数据.
iOS8之后:设置-->隐私-->诊断与用量-->诊断与用量数据.
1.2从设备中导出崩溃日志(iTunes)
mac电脑连接iOS设备,让iTunes备份iOS设备数据,备份完成后崩溃日志存储在mac电脑中(位置:用户/资源库(Library)/Logs/CrashReporter/MobileDevice)。
2.通过Xcode导出AppStore的崩溃日志.
2.1首先登录Apple账户
2.2再导出AppStore崩溃日志(Window-->organizer)
位置(用户/资源库(Library)/Developer/Xcode/Products)
(二)使用symbolicatecrash转化崩溃日志。
在转化崩溃日志之前需要三个文件:崩溃日志/symbolicatecrash文件/.dSYM文件
1.1获取symbolicatecrash文件
在终端中输入命令:
<code>find /Applications/Xcode.app -name symbolicatecrash -type f.</code>
根据终端返回的路径找到文件。
3.2获取.dSYM文件(Window-->organizer)
下面转化崩溃日志
在桌面建立一个crashReport的文件夹,将崩溃日志,symbolicatecrash文件和.dSYM文件放入文件夹。打开终端进入桌面crashReport文件夹,再在终端依次输入下面命令
<code>
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
./symbolicatecrash ./.crash ./.app.dSYM > symbol.crash</code>
成功后crashReport文件夹会生成symbol.crash文件,这个文件就是转化后的文件。
转化前:
转化后:
注:
1.通过Xcode导出的AppStore崩溃日志其实是一个文件夹,可以通过显示包内容找到崩溃日志。
2..dSYM文件要使用上线时打包中的那个.dSYM文件。