iOS开发——解析崩溃日志

2017/01/05 iOS开发

iOS开发——解析崩溃日志

在实际的开发过程中,作为开发者的我们常常会碰到一种场景,那就是真机调试时崩溃了,而有时又不能在Xcode中打印出崩溃信息,那么这时候我们就必须要获取到崩溃原因,从而解决问题。

而在万能的Xcode中,你可以找到自己测试机里的崩溃日志。Window -> Devices -> 选中自己的测试机 View Device Logs ,类似下图

而此时你可以选择导出自己的崩溃日志,并且这里的我们看到的崩溃日志,都是Xcode已经帮我们符号化的,很清晰的就可以看到崩溃原因,以及崩溃的位置。

如果是其他用户,下载了我们的App之后出现了崩溃,我们可以从iTunes Connect中获取到其他用户的崩溃日志,但是这时如果你去看他人的崩溃日志,不出意外您是懵逼的。这是崩溃日志么? 天书还差不多。而如何把他人的崩溃日志符号化呢? 这就是我们接下来要讲的内容了。

依旧是万能的Xcode给我们提供了一个工具 —— symbolicatecrash,这是一个Xcode自带的分析工具,可以通过机器上的崩溃日志和应用的.dSYM文件定位发生崩溃的位置,把Crash日志中的一堆地址替换成代码相应的位置。

如何使用symbolicatecrash分析崩溃日志

  1. 在你的桌面创建一个新文件夹,并且命名为”CrashReport”

  2. 打开终端输入 find /Applications/Xcode.app -name symbolicatecrash -type f,然后终端会返回这个文件的路径,只要找到symbolicatecrash文件, 复制然后粘贴到刚才创建的 “CrashReport” 文件夹里面.

  3. Xcode Archive的二进制文件中找到.dSYM文件和.app文件拷贝到刚才创建的 CrashReport 文件夹里面.

  4. 打开终端进入CrashReport文件夹,依次输入以下命令行:

记得替换自己的Username

  • 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。

Search

    Table of Contents