我试图编写一个崩溃报告功能,当您在崩溃后启动应用程序时,它会向服务器发送崩溃报告。我找不到如何获取应用程序内的崩溃日志。我看到有一个框架可以这样做( PLCrashReporter ),但是这个框架很大,我不需要它的大部分功能。
有人知道如何简单地访问日志吗?
谢谢, 盖伊。
最佳答案
我想我没有能力对 Nimrod Gat 的答案添加评论,所以我必须在这里提供我的后续内容。我会尽力让它成为一个独立的答案。
编写一个安全、正确且可靠的崩溃报告器是非常非常困难的,尤其是直接在进程内运行的崩溃报告器。 Nimrod Gat 的答案中引用的代码不正确,老实说,该博客文章应该被撤回。信号处理程序必须只运行异步安全代码,而该代码不是异步安全的:
http://www.cocoadev.com/index.pl?SignalSafety
崩溃处理比正常信号处理更复杂,因为您不能指望该进程在信号处理程序返回后继续成功运行。
人们很容易认为可以拼凑出一个更简单的解决方案,并且有时会起作用,但像 Google 工程师这样的人拥有数千个 LoC 专门用于可靠的崩溃报告,这是有充分理由的:
http://code.google.com/p/google-breakpad/
在 iOS 上,您应该只使用 PLCrashReporter。在其他平台(例如 Mac OS X)上,您应该使用 Google Breakpad。重新发明这个轮子是没有意义的,除非你不仅要做得正确,而且要做得比现有的更好。
关于iphone - 获取 iPhone 上之前的运行、崩溃日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4737701/