官方文档 Understanding and Analyzing Application Crash Reports
crash日志有助于我们快速定位,但是一堆地址看不到,所以将日志符号化将更加让我们能看懂日志。
方式1)获取崩溃日志自行进行符号化。
方式2)借助第三方服务,通过第三方平台直接符号化 。
这里主要介绍下方法1自行符号化过程
主要需要三个文件:
1. last.crash 崩溃日志
找到方法 :
1).xocde菜单
选择 Window——>Organizer. 选择 crashes
2).当手机连接Xcode进行测试时,可以直接查看崩溃信息。
具体方法打开 window->Devices & Simulators
然后点击View Device Logs
3).手机:
设置——>隐私——>分析——>分析数据
可以找到应用程序崩溃信息。是 .ips文件将数据可以通过qq分享 然后将.ips 文件修改为.crash 文件。(注意 找这个文件是按照你项目名称首字母进行排序的 不是按时间)
2.dSYM 文件是ios编译后保存16进制函数地址映射信息的文件
找到方法:
xocde菜单 选择”Window——>Organizer”。
选择Archives 找到对应的线上的版本 ——> 右键 show in finder ——>右键显示包内容
3.symbolicatecrash
Xcode有自带的symbolicatecrash工具,可以通过dSYM文件将crash文件中的16进制地址转换成可读的函数地址。symbolicatecrash工具位于:
找到位置:
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
注意 xcode版本不同位置可能不一样。
最后将三个文件放入到一个文件夹 比如 crashFile
打开终端执行语句
1) //CD到存放这三个文件目录下
cd/Users/xxx/Desktop/crashFile
2) //进行crash日志解析
./symbolicatecrash ./*.crash ./*.app.dSYM > log.crash
如果报错:
Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.
需要接着输入下面这条指令,告诉终端 "DEVELOPER_DIR" 的位置
export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
在执行
./symbolicatecrash ./*.crash ./*.app.dSYM >log.crash
之后会出现一个新的 log.crash
log.crash 就是想要的文件。