Сообщения об ошибках и сбоях на iOS
Сообщения об ошибках и сбоях
Мониторинг зависаний и сбоев приложений имеет решающее значение для обеспечения бесперебойной работы пользовательского интерфейса. Эти проблемы могут привести к удалению приложений, негативным отзывам и потере доверия пользователей. Проактивное выявление и устранение этих ошибок позволяет повысить стабильность приложения и сохранить вовлеченность пользователей.
Ключ-АСТРОМ предоставляет подробную информацию о событиях ANR и сбоях, включая трассировку стека, сведения о сеансах и информацию, специфичную для устройства, что позволяет быстро выявлять первопричины и внедрять исправления.
Обнаружение ANR
Ключ-АСТРОМ автоматически фиксирует ошибки «Приложение не отвечает» (ANR). Мониторинг ошибок ANR крайне важен, поскольку они вызывают недовольство пользователя. Основная проблема заключается в том, что основной поток приложения, отвечающий за обновление пользовательского интерфейса, не может обрабатывать события ввода пользователя или отрисовывать изображение, из-за чего приложение кажется зависшим.
На iOS ошибки ANR обнаруживаются, когда основной поток блокируется дольше, чем заданный интервал ожидания (по умолчанию: 2 секунды). Когда основной поток перестает отвечать, ЕдиныйАгент записывает трассировку стека в реальном времени, чтобы помочь определить первопричину зависания.
- Сообщения об ошибках ANR поступают только в том случае, если приложение перезапускается после завершения работы из-за ошибки ANR.
- Функция обнаружения ANR автоматически отключается при подключении отладчика во избежание ложных срабатываний в процессе разработки.
Что запечатлено
Для каждого события ANR SDK фиксирует:
- Трассировку стека в реальном времени на момент зависания.
- Отметку времени возникновения ANR.
- Информацию о контексте сессии и устройства.
Эти данные можно анализировать в таких приложениях, как Инспектор ошибок, или запрашивать напрямую в Хранилище данных с помощью DQL. Справочную информацию по полю см. в разделе «Приложение не отвечает».
Отключить обнаружение ANR
По умолчанию обнаружение ANR включено. Чтобы отключить его, установите ключ конфигурации DTXANRReportingEnabled в значение false в файле вашего приложения Info.plist:
<key>DTXANRReportingEnabled</key> <false/>
Настройка тайм-аута ANR
По умолчанию время ожидания для обнаружения ANR составляет 2 секунды. Вы можете изменить это значение с помощью ключа конфигурации DTXANRTimeout в вашем файле Info.plist. Значение указывается в секундах:
<key>DTXANRTimeout</key> <integer>3</integer>
Ограничения
- При подключении отладчика обнаружение ANR отключается во избежание ложных срабатываний во время разработки и отладки.
Сообщение о сбоях
Ключ-АСТРОМ автоматически фиксирует и сообщает о сбоях, происходящих в вашем iOS-приложении. Когда приложение аварийно завершает работу и перезапускается, ЕдиныйАгент отправляет отчет о сбое в Ключ-АСТРОМ, включая полную трассировку стека и контекст сессии.
- Сообщения о сбоях отправляются только при перезапуске приложения после сбоя.
- Функция обнаружения сбоев автоматически отключается при подключении отладчика во избежание помех в процессе разработки.
Что запечатлено
При каждом сбое SDK фиксирует следующее:
- Название и причина исключения.
- Название и номер сигнала.
- Полный трассировочный стек сбоя.
- Информацию о контексте сессии и устройства.
- Отметку времени аварии.
Эти данные можно анализировать в таких приложениях, как Инспектор ошибок, или запрашивать напрямую в Хранилище данных с помощью DQL. Справочную информацию по полям см. в разделе «Сбои».
Отключить отчеты о сбоях
По умолчанию функция отправки отчетов об ошибках включена. Чтобы отключить ее, установите ключ конфигурации DTXCrashReportingEnabled в значение false в файле вашего приложения Info.plist:
<key>DTXCrashReportingEnabled</key> <false/>
Ограничения
- Отладчик подключен — обнаружение сбоев отключается при подключении отладчика. Это предотвращает вмешательство средства отслеживания сбоев в процесс отладки.
- Внешние обработчики сбоев — Если другой инструмент для отправки отчетов о сбоях обрабатывает сбой до ЕдиногоАгента, информация о сбое может не быть отправлена в Ключ-АСТРОМ. Мы рекомендуем использовать только один инструмент для отправки отчетов о сбоях одновременно.
- Символизация — Для получения удобочитаемых трассировок стека загрузите файлы dSYM вашего приложения в Ключ-АСТРОМ. Без символизации трассировки стека содержат адреса памяти вместо имен функций и номеров строк.
Мы не рекомендуем использовать одновременно несколько инструментов мониторинга с включенной функцией отслеживания сбоев. Это может привести к проблемам совместимости, некорректным отчетам и потере данных о сбоях.
Сводка по конфигурации
| Ключ конфигурации | По умолчанию | Описание |
|---|---|---|
DTXCrashReportingEnabled |
true | Включает или отключает отправку отчетов о сбоях. |
DTXANRReportingEnabled |
true | Включает или отключает обнаружение ANR. |
DTXANRTimeout |
2 | Время ожидания обнаружения ANR в секундах. |
Символизация
Чтобы получить удобочитаемые трассировки стека в отчетах о сбоях и ANR, загрузите файлы dSYM (отладочные символы) вашего приложения в Ключ-АСТРОМ. Без файлов dSYM трассировки стека содержат адреса памяти вместо осмысленных имен функций и номеров строк.