【问题标题】:Is there a way to know if and why iOS terminated your app?有没有办法知道 iOS 是否以及为什么终止了您的应用程序?
【发布时间】:2015-03-20 00:09:47
【问题描述】:

我正在尝试调试我的 iPhone 应用程序在设备上运行时似乎被终止的问题(它从未在模拟器中发生)。该应用仅适用于 iOS 8。

一旦应用程序进入后台(通过用户点击主页按钮),我就会启动显着更改位置服务。当应用程序暂停时发生位置更新时,系统应将应用程序置于后台,然后我将更新与该位置一起发送到我的服务器。该操作包含在适当的 beginBackgroundTaskWithExpirationHandler 中,以便我有时间进行网络调用。

看起来我的应用程序正在被系统终止,因为有时当我从暂停状态恢复应用程序时,它不再在最小化时最后看到的视图中,而是回到根控制器,就像从新启动开始一样.它似乎不是由于崩溃造成的,因为我在崩溃日志中没有看到它,New Relic 也没有报告这样的情况。该应用程序已暂停,但并未终止,可能是因为它正在从位置更新再次启动到后台。

问题是,有没有办法知道我的应用程序确实被系统终止了,如果是,是什么原因(内存、超过后台执行时间等)以及何时终止。是否有保存包含此信息的日志?

我的印象是我不能使用 applicationWillTerminate,因为文档说应用程序暂停时不会调用它。

【问题讨论】:

  • 检查设备控制台寻找线索。
  • 这不是需要不断地将手机连接到笔记本电脑上吗?问题在几个小时内随机发生。该数据是否记录在某处?

标签: ios iphone core-location


【解决方案1】:

您可以检查设备页面。 (快捷键是Command + Shift + 2)

【讨论】:

  • 虽然不是崩溃。我查看了该日志,没有关于我的应用的信息。
  • 如果不是崩溃,您可能需要查看设备日志。如果您尽可能详细地使用 NSLog,那就太好了。如果时间过去,设备日志将自动从设备中清除。
  • 我无法使用 NSLog,因为系统没有告诉我何时终止我的应用程序,因此我无法记录任何内容。
  • 系统的各个部分使用该日志来宣布事情发生的原因。它可能解决不了任何问题,但你不看就知道。
  • @PhillipMills 有没有办法增加控制台日志的历史深度或将其连续写入文件?我查看了控制台日志,但问题是它只有一个小时左右的深度,而且这个错误会在几个小时内随机发生。到目前为止,我无法在日志中发现与终止我的应用程序相关的任何内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-18
  • 1970-01-01
  • 2019-08-31
  • 2010-11-26
  • 2019-11-17
  • 2023-04-11
相关资源
最近更新 更多