识别内存不足崩溃(IOS)

时间:2013-06-09 11:27:01

标签: iphone ios

我们的应用程序在应用程序商店中存在。 我希望识别一些用户正在获得的内存不足崩溃。 我知道没有办法100%认识到内存崩溃。 有没有办法通过在applicationDidReceiveMemoryWarning中做一些逻辑来识别这些崩溃(具有很大的可能性)? (我不是在谈论在开发期间在xcode中找到它,我在谈论的代码将识别实际用户的内存崩溃并将某些内容记录到文件中)

4 个答案:

答案 0 :(得分:4)

虽然我在寻找能够跟踪OOM的任何服务或库,但我只能从Facebook工程中找到这篇文章:

here

我们的想法是推断应用程序需要启动的原因,检查不同方面(例如,如果应用程序处于后台,是否有应用程序/操作系统更新,......)。

放弃可能迫使之前的应用程序退出的所有其他可能原因,您可以知道原因是背景内存不足还是内存不足。

拥有一个实现Facebook文章程序的库会很高兴。但是现在我找不到任何东西,可能有一些原因使得这很难或者可能无法将其添加为sdk。

如果有人知道任何服务,请与评论或新答案的所有人分享。

修改:

我发现这个github(https://code.facebook.com/posts/1146930688654547/reducing-fooms-in-the-facebook-ios-app/)有一个Facebook帖子程序的实现。我还没有尝试,但我们会在我们的应用程序中部署它来尝试它。

答案 1 :(得分:0)

在应用代表中留意applicationWillTerminate消息。如果您的应用程序被系统终止(由于内存不足等),则会调用此方法,但如果用户通过按主页键以通常的方式离开应用程序则不会。 注意:如果您的应用在后台并且内存耗尽,您的应用就会被杀死,而不会向其发送任何消息。

YMMV,尤其是旧版本的iOS,值得研究以确保上述内容准确无误。

this blog post处的图片信息量很大(尽管有点过时)。

有关详细信息,请参阅How to know whether app is terminated by user or iOS (after 10min background)

答案 2 :(得分:-3)

有很好的第三方库可以实时跟踪你的iOS应用程序的性能。下面的2是众所周知的类别:

  1. Google Analytics
  2. Crittercism
  3. 他们会跟踪并将用户设备的崩溃报告发送到您的帐户。他们还会通知您因内存不足而导致的崩溃事件!

    https://developers.google.com/analytics/devguides/collection/ios/

    https://www.crittercism.com/

    希望这可以在某种程度上解决您的问题。

答案 3 :(得分:-5)

首先通过单击Xco​​de顶部菜单栏上的“产品”分析您的应用程序,然后单击“分析”部分,它将显示应用程序中的泄漏次数,并可以将您带到发生泄漏的位置。这是你如何找到内存泄漏并纠正它。 其次,它上面没有用,然后查看发生崩溃的视图控制器,并检查是否已经留下任何要释放的对象。 希望这可以帮助您解决问题。