在实际的开发过程中,作为开发者的我们常常会碰到一种场景,那就是真机调试时崩溃了,而有时又不能在Xcode中打印出崩溃信息,那么这时候我们就必须要获取到崩溃原因,从而解决问题。
而在万能的Xcode中,你可以找到自己测试机里的崩溃日志。Window
-> Devices
-> 选中自己的测试机 View Device Logs
,类似下图
而此时你可以选择导出自己的崩溃日志,并且这里的我们看到的崩溃日志,都是Xcode已经帮我们符号化的,很清晰的就可以看到崩溃原因,以及崩溃的位置。
如果是其他用户,下载了我们的App之后出现了崩溃,我们可以从iTunes Connect
中获取到其他用户的崩溃日志,但是这时如果你去看他人的崩溃日志,不出意外您是懵逼的。这是崩溃日志么? 天书还差不多。而如何把他人的崩溃日志符号化呢? 这就是我们接下来要讲的内容了。
依旧是万能的Xcode给我们提供了一个工具 —— symbolicatecrash,这是一个Xcode自带的分析工具,可以通过机器上的崩溃日志和应用的.dSYM
文件定位发生崩溃的位置,把Crash
日志中的一堆地址替换成代码相应的位置。
如何使用symbolicatecrash分析崩溃日志
在你的桌面创建一个新文件夹,并且命名为"CrashReport"
打开终端输入
find /Applications/Xcode.app -name symbolicatecrash -type f
,然后终端会返回这个文件的路径,只要找到symbolicatecrash
文件, 复制然后粘贴到刚才创建的 "CrashReport" 文件夹里面.从Xcode Archive的二进制文件中找到.dSYM文件和.app文件拷贝到刚才创建的
CrashReport
文件夹里面.打开终端进入CrashReport文件夹,依次输入以下命令行:
cd /Users/username/Desktop/CrashReport
export DEVELOPER_DIR=/Applications/XCode.app/Contents/Developer
./symbolicatecrash ./*.crash ./*.app.dSYM > symbol.crash
这时候终端将会进行处理......
处理结果是生成一个新的文件symbol.crash。然后打开这个文件。
你就会看到日志跟我们调试APP的控制台输出的内容一样了!
天书变成了可以看懂的崩溃记录,攻城狮们,赶紧改Bug吧。
不知不觉博客更新了一年了,2017的第一篇日志,希望大家新年无Bug。