今天遇到一个线上偶现的崩溃,正好是自己手机的崩溃,想想这种用苹果自带的 symbolicatecrash 应该能精准的定位到崩溃所在的位置 !
具体步骤如下:
1.Xcode->Window->Devices,点击 View Device Logs,在里面找到 app 对应的崩溃日志,右击->Export log
Paste_Image.png
2.通过这个日志,只能大概知道是数组越界问题,并不能精确的知道是哪一个类的哪个方法导致的崩溃
Paste_Image.png3.找到symbolicatecrash路径,我是Xcode7的,路径如下:
/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources
update Xcode 7.3:
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
4.在桌面新建一个CrashLog文件夹,然后将以上目录下的symbolicatecrash文件,我们导出的crashLog,以及打包发布时生成的. dSYM文件放到这个文件夹下,如图:
Paste_Image.png5.打开Terminal,进入CrashLog文件夹下,执行以下命令
./symbolicatecrash ./*.crash ./*.app.dSYM > Result.crash
Paste_Image.png
如果报上图所示的错误,就先执行下面的这句,再重新执行上面的
export DEVELOPER_DIR=/Applications/XCode.app/Contents/Developer
最终可以看到,目录下生成了一个Result.crash,打开,里面可以精确的定位到问题所在!
Paste_Image.png Paste_Image.png
网友评论