IOS 崩溃日志分析

1,387 阅读2分钟

1、手机连接电脑,打开Xcode的Devices列表,找到崩溃app的iphone。选中Device Logs,找到app的崩溃。
2、如果是上架应用,可以从iTunes Content获取到崩溃日志,选择Manage Your Applications,点击图标下面的View Details,点右边的Crash Reports。

让我们看看崩溃日志里面包含了什么:

  • 进程信息

Incident Identifier是崩溃报告的唯一标识符。

CrashReporter Key是与设备标识相对应的唯一键值。

Hardware Model标识设备类型。

Process是应用名称。

  • 基本信息

包含了崩溃时间,ios版本。

  • 异常

查看到异常类型。

  • 线程回溯

这部分提供应用中所有线程的回溯日志。一般这里面就是崩溃原因,可以看到什么方法崩溃,通过编译后才能具体看到哪个类,哪个方法,哪行。

  • 线程状态

这部分是闪退时寄存器中的值。

  • 二进制映像

这部分列出了闪退时已经加载的二进制文件。

我们看到回溯时,全是些十六进制看不懂什么意思。将这些十六进制地址转化成方法名称和行数的过程称之为符号化。

从Xcode的Organizer窗口获取崩溃日志后过几秒钟,崩溃日志将被自动符号化。 Xcode符号化崩溃日志时,需要访问与App Store上对应的应用二进制文件以及生成二进制文件时产生的 .dSYM 文件。必需完全匹配才行。否则,日志将无法被完全符号化。

在发现崩溃日志时,如果有相匹配的.dSYM文件和应用二进制文件,Xcode会自动对崩溃日志进行符号化。

注意:你必需同时保留应用二进制文件和.dSYM文件才能将崩溃日志完整符号化。每次提交到iTunes Connect的构建都必需归档。

.dSYM文件和二进制文件是特定绑定于每一次构建和后续构建的,即使来自相同的源代码文件,每一次构建也与其他构建不同,不能相互替换。

符号化Symbolication possiblemobile.com/2015/03/sym…