背景
项目进入到测试阶段,收到测试同学提供的一些崩溃日志信息(.ips或者.crash格式的崩溃日志),为了快速定位问题,通过symbolicatecrash工具命令行对其文件进行符号化解析。此文记录当时的操作流程,以供日后查阅或能给其他同学提供必要的帮助。
解析
通过symbolicatecrash工具命令行进行解析,需要获得我们打包时的.xcarchive文件。如果是自己负责打包就非常简单了。否则,就需要找到打包负责人拿到对应的.xcarchive文件。
xcode中获取.xcarchive文件的方法:
【Xcode】->【Window】->【Organizer】->【Archives】
- 实现步骤
-
在桌面或者其他自己方便找到的地方,新建文件夹,并命名(根据自己习惯起个名字即可),这里命名为 CrashLog
-
在.xcarchive文件,右键->【显示包内容】->【Products】->【Applications】,拷贝.app文件到CrashLog中
-
在.xcarchive文件,右键->【显示包内容】->【dSYMs】,拷贝. dSYMs文件到CrashLog中
.ips格式文件后缀改为.crash,并放入到CrashLog。如果是本身就是.crash文件直接放入即可
将symbolicatecrash工具拷贝到CrashLog中。
打开Finder ,按shift+command+g,在弹出的对话框中,输入或者粘贴 /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash,点击【前往】即可获取到symbolicatecrash,拷贝之后粘贴到 CrashLog中打开终端,cd到CrashLog文件夹中
-
在终端,输入
./symbolicatecrash crash文件的绝对路径 dSYM的绝对路径 > CrashLog.crash
,按回车
补充:
有些同学可能会有Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.
这个错误
那么终端输入export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer
,按回车即可,再次执行第7步就好了
至此就得CrashLog.crash文件就是我们需要的符号化后的日志信息,打开后会看到一些对应的类名,方法名等,就可以快速定位具体问题了。