На панели управления Crashlytics вы можете нажать на проблему и получить подробный отчёт о событии. Вы можете настроить эти отчёты, чтобы лучше понимать, что происходит в вашем приложении и обстоятельства событий, о которых сообщается в Crashlytics .
Сообщайте о перехваченных и неперехваченных исключениях в Crashlytics .
Включайте отчеты GWP-ASan для отладки проблем с повреждением памяти.
Настройте свое приложение для регистрации пользовательских ключей , пользовательских сообщений журнала и идентификаторов пользователей .
Автоматически получайте журналы навигации , если ваше приложение использует Firebase SDK для Google Analytics . Эти журналы позволяют отслеживать действия пользователя, приводящие к событию в вашем приложении, собранному Crashlytics .
Отключите автоматическую отправку отчётов о сбоях и включите возможность добровольной отправки отчётов для пользователей. Обратите внимание, что по умолчанию Crashlytics автоматически собирает отчёты о сбоях для всех пользователей вашего приложения.
Отчет об исключениях
Сообщить об обнаруженных исключениях
Если у вас есть ожидаемые исключения, вы можете настроить Crashlytics SDK для регистрации их как нефатальных событий . Эти события регистрируются на устройстве и отправляются вместе со следующим отчётом о фатальном событии или при перезапуске игры конечным пользователем.
Вы можете регистрировать исключения в C#, используя следующий метод:
Crashlytics.LogException(Exception ex);
Вы можете регистрировать ожидаемые исключения в блоках try/catch вашей игры:
try { myMethodThatThrows(); } catch (Exception e) { Crashlytics.LogException(e); // handle your exception here! }
Сообщить о неперехваченных исключениях
Для неперехваченных исключений , которые не приводят к сбою игры (например, неперехваченных исключений C# в игровой логике), вы можете настроить Crashlytics SDK на сообщение о них как о фатальных событиях, установив свойство Crashlytics.ReportUncaughtExceptionsAsFatal
в значение true
при инициализации Crashlytics в вашем проекте Unity . Эти события передаются в Crashlytics в режиме реального времени, без необходимости перезапуска игры конечным пользователем.
Сообщение об этих неперехваченных исключениях как о фатальных событиях означает, что они будут учитываться в вашей статистике пользователей, не терпевших сбои, и в оповещениях о скорости.
Обратите внимание, что нативные сбои всегда регистрируются как фатальные события . Эти события регистрируются на устройстве и затем отправляются при перезапуске игры конечным пользователем.
void Start() { // Since there is no try-block surrounding this call, if an exception is thrown, // it is considered unexpected. // Setting `Crashlytics.ReportUncaughtExceptionsAsFatal = true` // will ensure that such cases are reported as fatals. thirdPartyMethodThatMayThrow(); }
Включайте отчеты GWP-ASan для отладки проблем с повреждением памяти.
Для Android-приложений, использующих IL2CPP, Crashlytics может помочь вам отладить сбои, вызванные ошибками памяти, собирая отчёты GWP-ASan. Эти ошибки, связанные с памятью, могут быть связаны с повреждением памяти в вашем приложении, что является основной причиной уязвимостей безопасности.
Вы можете просмотреть эти данные на новой вкладке «Трассировки стека памяти», нажав на сведения о проблеме на панели инструментов Crashlytics .
Вы также можете использовать новый сигнал и фильтр «Отчет GWP-ASan» для быстрого просмотра всех проблем с этими данными.
Вы можете получать отчёты об использовании памяти GWP-ASan, если ваше приложение использует последнюю версию Crashlytics SDK для Unity (версии 10.7.0+) и явно включён GWP-ASan (требуется изменение манифеста приложения Android ). Если в вашем приложении есть код на C++, вы можете протестировать настройку GWP-ASan, используя пример нативного кода из документации Android .
Добавить пользовательские ключи
Пользовательские ключи помогают получить информацию о состоянии приложения, предшествовавшем сбою. Вы можете связать произвольные пары «ключ/значение» с отчётами о сбоях, а затем использовать эти ключи для поиска и фильтрации отчётов о сбоях в консоли Firebase .
- На панели Crashlytics вы можете искать проблемы, соответствующие пользовательскому ключу.
- При просмотре определенной проблемы в консоли вы можете просматривать соответствующие пользовательские ключи для каждого события (вкладка «Ключи» ) и даже фильтровать события по пользовательским ключам (меню «Фильтр» в верхней части страницы).
При многократном вызове новые значения для существующих ключей обновят значение, и при регистрации сбоя фиксируется только самое актуальное значение.
Crashlytics.SetCustomKey(string key, string value);
Добавить пользовательские сообщения журнала
Зарегистрированные сообщения связаны с данными о сбоях и отображаются на панели управления Firebase Crashlytics при просмотре конкретного сбоя.
Crashlytics.Log(string message);
Установить идентификаторы пользователей
Вы можете использовать идентификационный номер, токен или хешированное значение для уникальной идентификации конечного пользователя вашего приложения без раскрытия или передачи его персональных данных. Вы также можете очистить значение, установив его в пустую строку. Это значение отображается на панели управления Firebase Crashlytics при просмотре конкретного сбоя.
Crashlytics.SetUserId(string identifier);
Получить журналы навигации
Журналы навигации позволяют лучше понять взаимодействие пользователя с вашим приложением, приведшее к сбою, нефатальной ошибке или ошибке ANR. Эти журналы могут быть полезны при воспроизведении и отладке проблемы.
Журналы навигации работают с Google Analytics, поэтому для их получения необходимо включить Google Analytics в проекте Firebase и добавить Firebase SDK для Google Analytics в приложение. После выполнения этих требований журналы навигации автоматически добавляются к данным о событии на вкладке «Журналы» при просмотре сведений о проблеме.
Analytics SDK автоматически регистрирует событие screen_view
, что позволяет журналам навигационной цепочки отображать список экранов, просмотренных до сбоя, нефатального события или события ANR. Журнал навигационной цепочки screen_view
содержит параметр firebase_screen_class
.
Журналы навигации также заполняются любыми пользовательскими событиями , которые вы вручную регистрируете в сеансе пользователя, включая данные о параметрах событий. Эти данные могут помочь отобразить последовательность действий пользователя, приведших к сбою, нефатальному событию или событию ANR.
Обратите внимание, что вы можете контролировать сбор и использование данных Google Analytics , включая данные, заполняющие журналы навигации.
Включить подписку на отчеты
По умолчанию Crashlytics автоматически собирает отчёты о сбоях для всех пользователей вашего приложения. Вы можете предоставить пользователям больше контроля над отправляемыми данными, предоставив им возможность согласиться на отправку отчётов о сбоях.
Чтобы отключить автоматический сбор данных только для выбранных пользователей, вызовите переопределение сбора данных Crashlytics во время выполнения. Значение переопределения сохраняется при всех последующих запусках вашего приложения, поэтому Crashlytics может автоматически собирать отчёты для этого пользователя.
Crashlytics.IsCrashlyticsCollectionEnabled = true
Если пользователь позже откажется от сбора данных, вы можете передать false
в качестве переопределяющего значения, которое будет применено при следующем запуске приложения пользователем и сохранится при всех последующих запусках для этого пользователя.
Управление данными Crash Insights
Crash Insights помогает решать проблемы, сравнивая анонимизированные трассировки стека с трассировками других приложений Firebase и сообщая, является ли ваша проблема частью более общей тенденции. Для многих проблем Crash Insights даже предоставляет ресурсы для отладки сбоя.
Crash Insights использует агрегированные данные о сбоях для выявления общих тенденций, влияющих на стабильность работы. Если вы не хотите делиться данными своего приложения, вы можете отказаться от Crash Insights в меню Crash Insights в верхней части списка проблем Crashlytics в консоли Firebase .
,На панели управления Crashlytics вы можете нажать на проблему и получить подробный отчет о событии. Вы можете настроить эти отчеты, чтобы лучше понимать, что происходит в вашем приложении, и обстоятельства событий, о которых сообщается в Crashlytics .
Сообщайте об обнаруженных и неперехваченных исключениях в Crashlytics .
Включайте отчеты GWP-ASan для отладки проблем с повреждением памяти.
Настройте свое приложение для регистрации пользовательских ключей , пользовательских сообщений журнала и идентификаторов пользователей .
Автоматически получайте навигационные журналы, если ваше приложение использует Firebase SDK для Google Analytics . Эти журналы дают вам представление о действиях пользователей, которые привели к событию, собранному Crashlytics , в вашем приложении.
Отключите автоматические отчеты о сбоях и включите возможность включения отчетов для своих пользователей. Обратите внимание, что по умолчанию Crashlytics автоматически собирает отчеты о сбоях для всех пользователей вашего приложения.
Отчет об исключениях
Сообщить об обнаруженных исключениях
Если у вас есть ожидаемые исключения, вы можете настроить Crashlytics SDK, чтобы они сообщали о них как о нефатальных событиях . Эти события регистрируются на устройстве, а затем отправляются вместе с отчетом о следующем фатальном событии или когда конечный пользователь перезапускает игру.
Вы можете регистрировать исключения в C#, используя следующий метод:
Crashlytics.LogException(Exception ex);
Вы можете регистрировать ожидаемые исключения в блоках try/catch вашей игры:
try { myMethodThatThrows(); } catch (Exception e) { Crashlytics.LogException(e); // handle your exception here! }
Сообщить о неперехваченных исключениях
Для неперехваченных исключений , которые не приводят к сбою вашей игры (например, неперехваченные исключения C# в игровой логике), вы можете заставить Crashlytics SDK сообщать о них как о фатальных событиях, установив для свойства Crashlytics.ReportUncaughtExceptionsAsFatal
значение true
при инициализации Crashlytics в проекте Unity . Об этих событиях сообщается в Crashlytics в режиме реального времени, без необходимости перезапуска игры конечному пользователю.
Если вы сообщите об этих неперехваченных исключениях как о фатальных событиях, это означает, что они будут учитываться в вашей пользовательской статистике без сбоев и в оповещениях о скорости.
Обратите внимание, что о собственных сбоях всегда сообщается как о фатальных событиях . Эти события регистрируются на устройстве, а затем отправляются, когда конечный пользователь перезапускает игру.
void Start() { // Since there is no try-block surrounding this call, if an exception is thrown, // it is considered unexpected. // Setting `Crashlytics.ReportUncaughtExceptionsAsFatal = true` // will ensure that such cases are reported as fatals. thirdPartyMethodThatMayThrow(); }
Включайте отчеты GWP-ASan для отладки проблем с повреждением памяти.
Для приложений Android, использующих IL2CPP, Crashlytics может помочь отладить сбои, вызванные ошибками встроенной памяти, путем сбора отчетов GWP-ASan. Эти ошибки, связанные с памятью, могут быть связаны с повреждением памяти в вашем приложении, что является основной причиной уязвимостей безопасности приложений.
Вы можете просмотреть эти данные на новой вкладке «Трассы стека памяти», если щелкнуть сведения о проблеме на панели управления Crashlytics .
Вы также можете использовать новый сигнал и фильтр «Отчет GWP-ASan», чтобы быстро просмотреть все проблемы с этими данными.
Вы можете получать отчеты о памяти GWP-ASan, если ваше приложение использует последнюю версию Crashlytics SDK для Unity (v10.7.0+) и в нем явно включен GWP-ASan (требуется изменить манифест приложения Android ). Если в вашем приложении есть код C++, вы можете протестировать настройку GWP-ASan, используя пример собственного кода в документации Android .
Добавить пользовательские ключи
Пользовательские ключи помогают вам получить конкретное состояние вашего приложения, приводящее к сбою. Вы можете связать произвольные пары ключ/значение с отчетами о сбоях, а затем использовать пользовательские ключи для поиска и фильтрации отчетов о сбоях в консоли Firebase .
- На панели управления Crashlytics вы можете искать проблемы, соответствующие пользовательскому ключу.
- Просматривая конкретную проблему в консоли, вы можете просмотреть связанные пользовательские ключи для каждого события (подвкладка «Ключи» ) и даже отфильтровать события по настраиваемым ключам (меню «Фильтр» вверху страницы).
При многократном вызове новые значения для существующих ключей будут обновлять значение, и при записи сбоя фиксируется только самое последнее значение.
Crashlytics.SetCustomKey(string key, string value);
Добавить пользовательские сообщения журнала
Зарегистрированные сообщения связаны с вашими данными о сбоях и отображаются на панели управления Firebase Crashlytics при просмотре конкретного сбоя.
Crashlytics.Log(string message);
Установить идентификаторы пользователей
Вы можете использовать идентификационный номер, токен или хеш-значение, чтобы однозначно идентифицировать конечного пользователя вашего приложения, не раскрывая и не передавая какую-либо его личную информацию. Вы также можете очистить значение, установив для него пустую строку. Это значение отображается на панели управления Firebase Crashlytics при просмотре конкретного сбоя.
Crashlytics.SetUserId(string identifier);
Получить журналы навигации
Журналы навигации позволяют лучше понять взаимодействие пользователя с вашим приложением, которое привело к сбою, несмертельному событию или событию ANR. Эти журналы могут быть полезны при попытке воспроизвести и отладить проблему.
Журналы навигации основаны на Google Analytics, поэтому для получения журналов навигации вам необходимо включить Google Analytics для вашего проекта Firebase и добавить Firebase SDK для Google Analytics в свое приложение. Как только эти требования будут выполнены, навигационные журналы автоматически включаются в данные о событии на вкладке «Журналы» , когда вы просматриваете сведения о проблеме.
Analytics SDK автоматически регистрирует событие screen_view
, которое позволяет в журналах навигации отображать список экранов, просмотренных до сбоя, нефатального события или события ANR. Хлебный журнал screen_view
содержит параметр firebase_screen_class
.
Журналы навигации также заполняются любыми пользовательскими событиями , которые вы вручную регистрируете в сеансе пользователя, включая данные параметров событий. Эти данные могут помочь показать серию действий пользователя, приведших к сбою, нефатальному событию или событию ANR.
Обратите внимание, что вы можете контролировать сбор и использование данных Google Analytics , включая данные, заполняющие журналы навигации.
Включить подписку на получение отчетов
По умолчанию Crashlytics автоматически собирает отчеты о сбоях для всех пользователей вашего приложения. Вы можете предоставить пользователям больше контроля над отправляемыми ими данными, разрешив им сообщать о сбоях.
Чтобы отключить автоматический сбор только для выбранных пользователей, вызовите переопределение сбора данных Crashlytics во время выполнения. Значение переопределения сохраняется при всех последующих запусках вашего приложения, поэтому Crashlytics может автоматически собирать отчеты для этого пользователя.
Crashlytics.IsCrashlyticsCollectionEnabled = true
Если позже пользователь откажется от сбора данных, вы можете передать false
в качестве значения переопределения, которое будет применяться при следующем запуске пользователем приложения и будет сохраняться при всех последующих запусках этого пользователя.
Управление данными Crash Insights
Crash Insights помогает вам решать проблемы, сравнивая анонимные трассировки стека со трассировками из других приложений Firebase и сообщая вам, является ли ваша проблема частью более широкой тенденции. Для многих проблем Crash Insights даже предоставляет ресурсы, которые помогут вам устранить сбой.
Crash Insights использует агрегированные данные о сбоях для выявления общих тенденций стабильности. Если вы предпочитаете не делиться данными своего приложения, вы можете отказаться от Crash Insights в меню Crash Insights в верхней части списка проблем Crashlytics в консоли Firebase .