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