我们的应用程序已经上线了应用商店。
我希望能够识别一些用户遇到的内存耗尽导致的崩溃。
我知道没有办法可以100%识别出内存耗尽导致的崩溃。
有没有办法通过在applicationDidReceiveMemoryWarning中执行一些逻辑来识别这些崩溃(有相当大的概率)?(我不是在谈论在xcode开发期间找到它,我是说代码将从实际用户中识别出内存耗尽导致的崩溃,并将其记录到文件中)
我们的应用程序已经上线了应用商店。
我希望能够识别一些用户遇到的内存耗尽导致的崩溃。
我知道没有办法可以100%识别出内存耗尽导致的崩溃。
有没有办法通过在applicationDidReceiveMemoryWarning中执行一些逻辑来识别这些崩溃(有相当大的概率)?(我不是在谈论在xcode开发期间找到它,我是说代码将从实际用户中识别出内存耗尽导致的崩溃,并将其记录到文件中)
当我在寻找任何提供OOM跟踪的服务或库时,我只能找到Facebook工程团队的这篇文章:
https://code.facebook.com/posts/1146930688654547/reducing-fooms-in-the-facebook-ios-app/
这个想法是推断应用程序需要启动的原因,检查不同的方面(比如应用程序是否在后台运行,是否有应用程序/操作系统更新等)。在你的应用程序委托中注意 applicationWillTerminate
消息。如果你的应用程序由于低内存等原因被系统终止,就会调用这个方法,但如果用户按 home 键通常方式离开应用程序,则不会调用此方法。注意:如果你的应用程序在后台运行且内存不足,你的应用程序将被杀死,而不会发送任何消息。
特别是对于旧版本的 iOS,可能会有所不同,值得研究以确保上述内容准确无误。
这篇博客文章 中的图片非常有信息量(尽管有点过时)。
更多信息,请参见 如何知道应用程序是由用户还是 iOS 终止的(在 10 分钟后的后台)