【问题标题】:Catching the crash log on iOS在 iOS 上捕获崩溃日志
【发布时间】:2014-12-26 15:41:25
【问题描述】:

主要思想是捕获崩溃日志(或错误原因)并将其发送到服务器。 我知道 iTunes 确实会记录来自用户设备的崩溃,但我需要找到是否有办法获取它并将其存储在我们的服务器上。

我正在尝试“PlCrashReporter”并且我完成了它的实现(正如他们在此链接上所做的那样 https://www.plcrashreporter.org/documentation/api/v1.0/example_usage_iphone.html)。

问题

发生崩溃时不调用函数applicationDidFinishLaunching

我在正确的轨道上吗? AppDelegate 中是否存在在崩溃时调用的特定函数?

提前致谢

编辑

我也尝试过以下问题的解决方案:

iOS crash log catch, debug info.. Catch and send via email to the Dev team

它确实有效,但有一些错误是由 Swift 而不是 Objective-C 引起的(例如 在展开可选值时出错)没有被捕获..

有什么建议吗?

【问题讨论】:

  • 崩溃报告必须在下次应用启动时发送。 PLCrashReporter 也建议这样做。
  • 有什么办法可以修改PLCrashReporter的代码,让它在崩溃时发送崩溃报告? @Kerni
  • 强烈建议不要尝试此操作,因为它会使您的用户数据面临数据损坏甚至锁定设备的高风险。不要不要走那条路!
  • 任何数据。您的应用程序崩溃了,这意味着它处于高度不稳定的状态,无法做出任何保证。例如。即使在应用程序崩溃时只调用一个 Objective-C 或 Swift 方法也可能导致数据丢失。这是PLCrashReporter作者的一篇文章:landonf.bikemonkey.org/code/crashreporting/…我只能重复自己:别想走那条路!

标签: ios exception swift crash plcrashreporter


【解决方案1】:

您应该使用Crashlytics。然后,您可以使用自定义网络挂钩来接收崩溃报告。

【讨论】:

  • 感谢您的快速回复。我会尽快检查并回复我的反馈:) @Moxy
  • Crashlytics 是测试版。我在线注册以获取该应用程序,但同时还有其他选择吗? @Moxy
  • 他们有没有说需要多长时间?你不应该重新发明轮子。还有其他服务,例如 splunkmint(以前称为 bugsense)
  • 他们没有提到任何时间。我想最好不要使用任何 beta 框架来做到这一点。我会尝试找到另一个框架@Moxy
  • Crashlytics 已存在多年且尚未处于测试阶段!他们有一个叫做 beta 的功能,可以让你拥有像 testflight 这样的 beta 用户。
猜你喜欢
  • 2010-09-08
  • 2016-05-20
  • 2012-07-11
  • 1970-01-01
  • 2014-11-25
  • 2012-06-28
  • 1970-01-01
  • 2019-10-26
相关资源
最近更新 更多