Приложение пропадает без крэш-лога
Вопрос
Пользователи жалуются, что приложение «закрывается» при работе с камерой, а в крэш-репортах пусто. Какова вероятная причина?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Варианты ответа
- Приложение само вызывает
exit(0)при ошибке доступа к камере - Система завершает процесс за превышение лимита памятиправильный ответ
- Ошибка подписи кода при обращении к камере
- Утечка потоков GCD, после которой процесс зависает
Разбор
При нехватке памяти система сначала шлёт предупреждение (didReceiveMemoryWarning), а при превышении лимита убивает процесс. Это не исключение, классические крэш-репортеры его не видят, зато в настройках устройства есть отчёты JetsamEvent, а MetricKit сообщает о завершениях по памяти. Типичная причина: полноразмерные кадры камеры и изображения в памяти. exit(0) и ошибки подписи дают другие симптомы.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Сколько памяти занимает декодированная картинка
Следующий вопрос
Задача на Swift: статистика рывков по длительностям кадров
Ещё по теме «Производительность и тестирование»
- Тест в Swift Testing
- Hang и hitch: разница
- Пирамида тестов в iOS
- Тестирование сетевого слоя через URLProtocol
- Бюджет кадра на iPhone с ProMotion
- Задача на Swift: худший отрезок кадров скользящим окном
- Как ускорить запуск приложения
- Шаблоны Instruments