1

当我的应用程序在连接到 Xcode 时崩溃时,我会获得调试和解决问题所需的所有信息。但不是当应用程序在未连接到 Xcode 时崩溃时,我不知道是 nil unwrap、断言失败还是异常。

在后两种情况下,断言或异常消息也丢失了。

如何让 Xcode 将此信息包含在崩溃日志中?

我将“复制期间去除调试符号”和“去除链接产品”设置为 NO,并且使用 dSYM 将调试版本的调试信息格式设置为 DWARF。是的,我正在手机上安装调试版本。我得到一个符号化的堆栈跟踪,但没有上述信息。


案例 1:解包 nil:崩溃日志中缺少“致命错误:在解包可选值时意外发现 nil”这一行。

案例2:断言失败:如果我有:

assert(level > 2, "Level should've been at least 2")

“级别应该至少为 2”不会出现在崩溃日志中。有时,它甚至没有说它是由于断言失败(而不是其他原因)而崩溃的。

案例 3:异常:缺少如下异常消息:

由于未捕获的异常“NSGenericException”而终止应用程序,原因:“*** -[AVCaptureDevice setTorchMode:] 如果没有先使用 -lockForConfiguration 成功获得设备的独占所有权,则可能无法调用:”

有时,它甚至没有说它由于异常而崩溃(而不是其他原因)。

如何在未连接到 Xcode 时发生崩溃,以便在连接到 Xcode 时获得崩溃时获得的所有信息?

4

1 回答 1

0

最好的方法是使用分析工具。看看面料

于 2017-05-02T06:44:23.137 回答