有没有办法使用 QuincyKit 发送低内存崩溃报告?
我查看了代码,QuincyKit发送了在以下位置找到的崩溃报告:
/var/mobile/application//Library/Caches/crashes
但是,当应用程序由于内存警告而崩溃时,不会在该目录中创建文件。我可以在管理器中查看内存不足报告(类型未知),但文件位于何处?
可以快速修改 QuincyKit 以发送内存报告吗?
这是不可能的。
内存不足崩溃实际上是由监视器进程杀死的。每当您终止进程时,都不会发生崩溃。您在管理器中看到的崩溃报告是由执行终止操作的监视器进程编写的任意报告。因此,唯一可以提供有关这些信息的系统是iOS本身。
无法检索内存报告。
但是,可能会注意到:
- 已收到内存警告并记录当时的内存使用情况 - 以及
- X 秒后,应用程序不再运行(通过维护一个简单的看门狗线程)。
然后,您可以在下次运行时推断出应用程序可能由于内存不足情况而被终止,并且您将获得有关当时内存使用情况的一些信息。实际上,您可以扩展内存警告处理程序以报告正在运行的任何缓存的大小(并同时清理它们,从而降低崩溃的可能性!