Отправлять отчеты о сбоях с низкой памятью с помощью QuincyKit?


Есть ли способ отправлять отчеты о сбоях с низкой памятью с помощью QuincyKit?

Я просмотрел код, и QuincyKit отправляет отчеты о сбоях, найденные в:

/var / mobile / Application / / Library/Caches / crashes

Однако, когда приложение аварийно завершает работу из-за предупреждения памяти, файл не создается в этом каталоге. Я могу просмотреть отчеты о нехватке памяти в органайзере (тип неизвестен ), но где находится файл?

Можно ли быстро изменить QuincyKit на отправить отчеты памяти?

2 3

2 ответа:

К сожалению, это невозможно.

Сбои из памяти на самом деле убивает сторожевой процесс. Всякий раз, когда вы убиваете процесс, никакого сбоя не происходит. Отчеты о сбоях для тех, которые вы видите в Organizer , являются произвольными отчетами, написанными процессом watchdog, который совершил убийство. Так что единственная система, которая может предоставить информацию о них, - это сама iOS.

Невозможно восстановить отчеты памяти.

Однако можно было бы заметить:

  1. что предупреждение памяти было получено и Запишите использование памяти в это время - и
  2. что X секунд спустя приложение больше не работает (поддерживая простой сторожевой поток).

Затем при следующем запуске вы можете сделать вывод, что приложение , вероятно, было убито из-за состояния нехватки памяти, и вы будет иметь некоторую информацию об использовании памяти в то время. В самом деле, вы можете расширить обработчик предупреждений памяти, чтобы сообщать о размере любых кэшей, которые вы запускаете (а также очищать их одновременно, тем самым уменьшая вероятность сбоя!).