【问题标题】:Forcing crash symbolication in crashes organizer and Xcode 7在崩溃管理器和 Xcode 7 中强制使用崩溃符号
【发布时间】:2016-01-28 23:20:22
【问题描述】:

目前,我的崩溃组织者如下所示。

我之前没有真正使用过崩溃日志,但对我来说,崩溃看起来并不具有象征意义。我无法找到应用程序崩溃的位置以及原因。此外,当我在项目中打开堆栈跟踪时,没有突出显示任何内容,我无法判断它在文件中崩溃了哪一行。我的问题是:有没有办法从组织者内部象征所有这些崩溃,还是必须通过终端完成?

谢谢。

【问题讨论】:

标签: ios xcode crash-reports xcode-organizer


【解决方案1】:

您看到的是,像 UITableView 这样的 SDK 类是符号化的,但您的“YLSA”应用程序中的类不是。两者都应该被自动象征,但根据我的经验,其中一个(或两者)通常不象征。我已经为 iOS 开发了五年,这在所有不同的 Xcode 版本中一直是一个持续存在的问题。

我在 Xcode 7 中看到了与您相同的问题,但我能够使用此解决方法来符号化我的日志:

  1. 在崩溃日志列表中,右键单击所需日志并选择Show in Finder。这将显示一个包,其中包含一个或多个 .crash 文件和一些元数据。
  2. 浏览包,直到找到崩溃日志。您会在此处看到相同的信息是否已被符号化。
  3. 在 Xcode 中,打开“设备”窗口并选择连接的设备,然后单击 View Device Logs 按钮。
  4. 将步骤 2 中的崩溃日志从 Finder 拖到此设备的日志列表中。
  5. 执行此操作时,我从未看到我添加的日志出现在列表中,但如果我单击标题一次或两次以重新排序列表,那么我会看到它。
  6. 片刻之后,崩溃日志将完全符号化。

如果您的列表中已经有很多日志,您可以在 Finder 中查看日志时将日期、iOS 版本和硬件型号与 Xcode 中的日志进行比较,以确保您查看的是相同的日志。然后查看显示“由线程触发”的行以获取崩溃的线程号,然后向下滚动到该线程以查看触发崩溃的代码。

这对我今天使用 Xcode 7 有效。我希望它对你有所帮助!

【讨论】:

  • 我按照您的指示进行操作,但似乎没有任何改变。我应该补充一点,大多数崩溃是在其他用户的设备上产生的,而不是我的,并且由 Apple 收集。
  • 我的崩溃也是在其他用户的设备上产生的,并由 Apple 收集。很抱歉,此解决方案对您不起作用。根据我的经验,这是一个非常不可靠的系统,多年来我不得不在不同的时间使用各种解决方法。
  • 解决方法并不明显,但适用于 Xcode 7.2
  • 起初它对我也不起作用,但是右键单击列表中的崩溃(在查看设备日志屏幕中)单击“重新符号化”,然后它就起作用了 :) 谢谢分享您的解决方案! +1
  • 这仅在 xcode 具有用于将构建发送到 iTunesConnect 的存档时才有效。如果你在其他 Mac 上,那你就不走运了。
【解决方案2】:

当您通过 Xcode 提交应用程序时,会出现一个包含调试符号的选项。下次提交应用版本时,请务必选择该版本;如果你没有,那可能会解释你所看到的问题。不幸的是,对于已经提交的应用版本,无法追溯执行此操作,因此您必须等到准备好提交下一个版本才能查看是否存在问题。

【讨论】:

  • 根据我的经验,这没什么区别。我们总是这样做。我们永远不会得到象征性的痕迹。
猜你喜欢
  • 1970-01-01
  • 2015-12-24
  • 2015-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多