iOS符号化崩溃日志

2017-03-24  本文已影响0人  chaoyk

一般做项目的时候会碰到一些崩溃的情况。在非调试模式下没有办法判断崩溃在哪里,只能通过崩溃日志来分析,如果崩溃日志在没有符号化的情况下,都是显示的一些内存信息,这样我们就很难找到崩溃的原因。碰到这样的情况我一般都用Xcode自己带的工具来符号化崩溃日志。

准备工具

符号化崩溃日志

  1. 从设备里面导出崩溃日志

设备连接Xcode,打开菜单Window->Device(快捷键shift+command+2)选项,选中当前设备,点击View ``Device Logs。如下图所示:

FC9C28BD-0F57-4FF1-8A3D-F85AF87BF65C.png

点击以后会出来当前设备的崩溃日志列表。默然选中的就是This Device(当前设备的崩溃日志),可以根据Date/Time找出崩溃的日志,然后在崩溃日志选项右键选择Export Log导出当前的崩溃日志到指定的文件夹。

  1. 导出dsym、应用安装包。

每次Archive成功,都会有对应的Archive文件生成,文件得路径是/Users/用户名/Library/Developer/Xcode/Archives/目录下。找到对应的文件,打开就会看见对应的Archive文件,右键点击该项目,然后点击显示包内容,就会看到对应的文件夹。dSYMsProducts这两个文件夹里面的内容是我们所需要的。分别打开两个文件夹,找到对应的.dSYM.app文件,把这两个文件跟上一步导出的崩溃日志放在同一个文件夹中。

CA59C75A-70DF-41D7-A02D-2EB146D1AABC.png
  1. 符号化工具(symbolicatecrash)

本人用的是Xcode8,工具路径是/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash

如果路径错误的话可以尝试这个路径:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash

找到对应的工具 可以复制一份放到桌面上下次方便使用。

  1. 打开终端(Terminal)

在终端里面打开步骤2中保存崩溃文件夹的路径,然后输入export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer

然后处理命令行 /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash appName.app appName.crash > appName.log

然后符号化后的文件就在当前的文件夹中。

上一篇下一篇

猜你喜欢

热点阅读