На этой странице представлена помощь по устранению неполадок и ответы на часто задаваемые вопросы об использовании Crashlytics . Если вы не можете найти то, что ищете, или вам нужна дополнительная помощь, обратитесь в службу поддержки Firebase .
Общее устранение неполадок/часто задаваемые вопросы
Просмотр разных форматов (а иногда и «вариантов») для некоторых задач в таблице «Проблемы» .
Вы можете заметить два разных формата проблем, перечисленных в таблице «Проблемы» в консоли Firebase . И вы также можете заметить функцию под названием «варианты» в некоторых ваших задачах. Вот почему!
В начале 2023 года мы представили улучшенный механизм анализа для группировки событий, а также обновленный дизайн и некоторые расширенные функции для новых проблем (например, вариантов!). Подробности читайте в нашем недавнем сообщении в блоге , а основные моменты вы можете прочитать ниже.
Crashlytics анализирует все события вашего приложения (например, сбои, нефатальные ошибки и ошибки ANR) и создает группы событий, называемые проблемами — все события в проблеме имеют общую точку сбоя.
Чтобы сгруппировать события по этим проблемам, улучшенный механизм анализа теперь анализирует многие аспекты события, включая кадры в трассировке стека, сообщение об исключении, код ошибки и другие характеристики платформы или типа ошибки.
Однако в этой группе событий трассировки стека, приводящие к сбою, могут быть разными. Другая трассировка стека может означать другую основную причину. Чтобы представить эту возможную разницу внутри проблемы, мы теперь создаем варианты внутри задач — каждый вариант представляет собой подгруппу событий в задаче, которые имеют одну и ту же точку отказа и аналогичную трассировку стека. С помощью вариантов вы можете отладить наиболее распространенные трассировки стека внутри проблемы и определить, приводят ли к сбою различные основные причины.
Вот что вы получите благодаря этим улучшениям:
Обновленные метаданные, отображаемые в строке проблемы.
Теперь стало проще понимать и сортировать проблемы в вашем приложении.Меньше повторяющихся проблем
Изменение номера строки не приводит к возникновению новой проблемы.Упрощенная отладка сложных проблем с различными первопричинами.
Используйте варианты для отладки наиболее распространенных трассировок стека в задаче.Более содержательные оповещения и сигналы
Новая проблема на самом деле представляет собой новую ошибку.Более мощный поиск
Каждая проблема содержит больше метаданных, доступных для поиска, таких как тип исключения и имя пакета.
Вот как эти улучшения реализуются:
Когда мы получаем новые события из вашего приложения, мы проверяем, соответствуют ли они существующей проблеме.
Если совпадений нет, мы автоматически применим к событию наш более умный алгоритм группировки событий и создадим новую проблему с обновленным дизайном метаданных.
Это первое большое обновление, которое мы вносим в нашу группу событий. Если у вас есть отзывы или возникли какие-либо проблемы, сообщите нам об этом,
Не вижу журналы навигации
Если вы не видите навигационные журналы , рекомендуем проверить конфигурацию вашего приложения для Google Analytics . Убедитесь, что вы соответствуете следующим требованиям:
Вы включили Google Analytics в своем проекте Firebase.
Вы включили обмен данными для Google Analytics . Подробнее об этом параметре читайте в разделе «Управление настройками общего доступа к данным Google Analytics».
У тебя естьдобавлен Firebase SDK для Google Analyticsв ваше приложение. Этот SDK необходимо добавить в дополнение к Crashlytics SDK.
Вы используетепоследние версии Firebase SDKдля всех продуктов, которые вы используете в своем приложении.
Особенно убедитесь, что вы используете как минимум следующую версию Firebase SDK для Google Analytics :
iOS+ — v6.3.1+ (v8.9.0+ для macOS и tvOS).
Не вижу оповещений о скорости
Отсутствие показателей отсутствия сбоев (или наблюдение ненадежных показателей)
Убедитесь, что вы используетеCrashlytics SDK v10.8.0+. Убедитесь, что настройки сбора данных не влияют на качество показателей безотказности: Если вы включите возможность создания отчетов о сбоях, отключив автоматические отчеты о сбоях, информация о сбоях может быть отправлена в Crashlytics только от пользователей, которые явно согласились на сбор данных. Таким образом, это повлияет на точность показателей отсутствия сбоев, поскольку Crashlytics собирает информацию о сбоях только от этих согласившихся пользователей (а не от всех ваших пользователей). Это означает, что ваши показатели отсутствия сбоев могут быть менее надежными и менее отражающими общую стабильность вашего приложения. Если у вас отключен автоматический сбор данных, вы можете использовать sendUnsentReports
для отправки кэшированных отчетов на устройстве в Crashlytics . При использовании этого метода в Crashlytics будут отправляться данные о сбоях , но не данные сеансов , из-за чего на диаграммах консоли будут отображаться низкие или нулевые значения для показателей без сбоев.
Как рассчитываются пользователи без сбоев?
dSYM отсутствуют/не загружаются
Убедитесь, что фаза сборки вашего проекта содержит сценарий запуска Crashlytics , который позволяет Xcode загружать dSYM вашего проекта во время сборки (инструкции по добавлению сценария см. в разделе Инициализация Crashlytics ). После обновления проекта вызовите сбой и убедитесь, что сбой отображается на панели управления Crashlytics . Если вы видите предупреждение «Отсутствует dSYM» в консоли Firebase , проверьте Xcode, чтобы убедиться, что он правильно создает dSYM для сборки. Если Xcode правильно создает dSYM, а вы все еще видите отсутствующие dSYM, вероятно, инструмент запуска сценария зависает при загрузке dSYM. В этом случае попробуйте каждое из следующих действий: Убедитесь, что вы используете последнюю версию Crashlytics . Загрузите недостающие файлы dSYM вручную: Вариант 1. Используйте консольную опцию «Перетащить» на вкладке dSYM , чтобы загрузить zip-архив, содержащий недостающие файлы dSYM. Вариант 2. Используйте сценарий upload-symbols
, чтобы загрузить недостающие файлы dSYM для указанных UUID на вкладке dSYM .
Если вы по-прежнему видите отсутствующие dSYM или загрузка по-прежнему не увенчалась успехом, обратитесь в службу поддержки Firebase и обязательно приложите свои журналы.
Аварии плохо обозначены
Если в кадрах из библиотеки вашего приложения отсутствуют ссылки на код вашего приложения, убедитесь, что -fomit-frame-pointer
не установлен как флаг компиляции.Если вы видите несколько (Missing)
фреймов для библиотеки вашего приложения, проверьте, есть ли дополнительные dSYM, указанные как отсутствующие (для затронутой версии приложения) на вкладке dSYMs Crashlytics консоли Firebase . В этом случае выполните шаг устранения неполадок «Предупреждение об отсутствии dSYM» в разделе часто задаваемых вопросов о том, что dSYM отсутствуют/не загружаются на этой странице. Обратите внимание, что загрузка этих dSYM не будет обозначать уже произошедшие сбои, но это поможет обеспечить символизацию будущих сбоев.
Кто может просматривать, писать и удалять примечания к проблеме?
Участники проекта с любой из следующих ролей могут просматривать и удалять существующие заметки, а также писать новые заметки по проблеме. Участники проекта с любой из следующих ролей могут просматривать заметки, опубликованные по проблеме, но не могут удалять или писать заметки.
Интеграции
Приложение также использует Google Mobile Ads SDK, но не вызывает сбоев.
disableSDKCrashReporting
.
Где находится мой набор данных BigQuery?
Поддержка платформы
Могу ли я использовать Crashlytics для macOS или tvOS?
Могу ли я использовать Crashlytics в проекте Firebase с несколькими приложениями на разных платформах Apple?
Регрессирующие проблемы
Что такое регрессивная проблема?
Впервые Crashlytics получает отчет о сбое Crash «A». Crashlytics открывает соответствующую проблему для этого сбоя (проблема «A»). Вы быстро исправляете эту ошибку, закрываете проблему «А», а затем выпускаете новую версию своего приложения. Crashlytics получит еще один отчет о проблеме «А» после того, как вы ее закроете. - Если отчет относится к версии приложения, о которой Crashlytics знал, когда вы закрыли проблему (это означает, что версия вообще отправила отчет о сбое при любом сбое), то Crashlytics не будет считать проблему регрессированной. Вопрос останется закрытым.
- Если отчет относится к версии приложения, о которой Crashlytics не знала, когда вы закрыли проблему (это означает, что версия вообще никогда не отправляла отчет о сбое ни при каком сбое), то Crashlytics считает, что проблема регрессировала, и повторно откроет проблему.
Почему я наблюдаю регрессирующие проблемы в старых версиях приложений?
На этой странице представлена помощь по устранению неполадок и ответы на часто задаваемые вопросы об использовании Crashlytics . Если вы не можете найти то, что ищете, или вам нужна дополнительная помощь, обратитесь в службу поддержки Firebase .
Общее устранение неполадок/часто задаваемые вопросы
Просмотр разных форматов (а иногда и «вариантов») для некоторых задач в таблице «Проблемы» .
Вы можете заметить два разных формата проблем, перечисленных в таблице «Проблемы» в консоли Firebase . И вы также можете заметить функцию под названием «варианты» в некоторых ваших задачах. Вот почему!
В начале 2023 года мы представили улучшенный механизм анализа для группировки событий, а также обновленный дизайн и некоторые расширенные функции для новых проблем (например, вариантов!). Подробности читайте в нашем недавнем сообщении в блоге , а основные моменты вы можете прочитать ниже.
Crashlytics анализирует все события вашего приложения (например, сбои, нефатальные ошибки и ошибки ANR) и создает группы событий, называемых проблемами — все события в проблеме имеют общую точку сбоя.
Чтобы сгруппировать события по этим проблемам, улучшенный механизм анализа теперь анализирует многие аспекты события, включая кадры в трассировке стека, сообщение об исключении, код ошибки и другие характеристики платформы или типа ошибки.
Однако в этой группе событий трассировки стека, приводящие к сбою, могут быть разными. Другая трассировка стека может означать другую основную причину. Чтобы представить эту возможную разницу внутри проблемы, мы теперь создаем варианты внутри задач — каждый вариант представляет собой подгруппу событий в задаче, которые имеют одну и ту же точку отказа и аналогичную трассировку стека. С помощью вариантов вы можете отладить наиболее распространенные трассировки стека внутри проблемы и определить, приводят ли к сбою различные основные причины.
Вот что вы получите благодаря этим улучшениям:
Обновленные метаданные, отображаемые в строке проблемы.
Теперь стало проще понимать и сортировать проблемы в вашем приложении.Меньше повторяющихся проблем
Изменение номера строки не приводит к возникновению новой проблемы.Упрощенная отладка сложных проблем с различными первопричинами.
Используйте варианты для отладки наиболее распространенных трассировок стека в задаче.Более содержательные оповещения и сигналы
Новая проблема на самом деле представляет собой новую ошибку.Более мощный поиск
Каждая проблема содержит больше метаданных, доступных для поиска, таких как тип исключения и имя пакета.
Вот как эти улучшения реализуются:
Когда мы получаем новые события из вашего приложения, мы проверяем, соответствуют ли они существующей проблеме.
Если совпадений нет, мы автоматически применим к событию наш более умный алгоритм группировки событий и создадим новую проблему с обновленным дизайном метаданных.
Это первое большое обновление, которое мы вносим в нашу группу событий. Если у вас есть отзывы или возникли какие-либо проблемы, сообщите нам об этом,
Не вижу журналы навигации
Если вы не видите навигационные журналы , рекомендуем проверить конфигурацию вашего приложения для Google Analytics . Убедитесь, что вы соответствуете следующим требованиям:
Вы включили Google Analytics в своем проекте Firebase.
Вы включили обмен данными для Google Analytics . Подробнее об этом параметре читайте в разделе «Управление настройками общего доступа к данным Google Analytics».
У тебя естьдобавлен Firebase SDK для Google Analyticsв ваше приложение. Этот SDK необходимо добавить в дополнение к Crashlytics SDK.
Вы используетепоследние версии Firebase SDKдля всех продуктов, которые вы используете в своем приложении.
Особенно убедитесь, что вы используете как минимум следующую версию Firebase SDK для Google Analytics : iOS+ — v6.3.1+ (v8.9.0+ для macOS и tvOS).
Не вижу оповещений о скорости
Отсутствие показателей отсутствия сбоев (или наблюдение ненадежных показателей)
Убедитесь, что вы используетеCrashlytics SDK v10.8.0+. Убедитесь, что настройки сбора данных не влияют на качество показателей безотказности: Если вы включите возможность создания отчетов о сбоях, отключив автоматические отчеты о сбоях, информация о сбоях может быть отправлена в Crashlytics только от пользователей, которые явно согласились на сбор данных. Таким образом, это повлияет на точность показателей отсутствия сбоев, поскольку Crashlytics собирает информацию о сбоях только от этих согласившихся пользователей (а не от всех ваших пользователей). Это означает, что ваши показатели отсутствия сбоев могут быть менее надежными и менее отражающими общую стабильность вашего приложения. Если у вас отключен автоматический сбор данных, вы можете использовать sendUnsentReports
для отправки кэшированных отчетов на устройстве в Crashlytics . При использовании этого метода в Crashlytics будут отправляться данные о сбоях , но не данные сеансов , из-за чего на диаграммах консоли будут отображаться низкие или нулевые значения для показателей без сбоев.
Как рассчитываются пользователи без сбоев?
Dsyms отсутствуют/не загружают
Убедитесь, что этап сборки вашего проекта содержит сценарий Crashlytics Run, который позволяет XCode загружать DSYMS вашего проекта во время сборки ( инициализация Crashlytics для инструкций по добавлению сценария). После обновления вашего проекта, выручите сбой и подтвердите, что авария появляется на панели Crashlytics . Если вы видите предупреждение «отсутствующее DSYM» в консоли Firebase , проверьте Xcode, чтобы убедиться, что он правильно производит DSYMS для сборки. Если Xcode должным образом производит DSYMS, и вы все еще видите отсутствующие DSYMS, вероятно, инструмент сценария прогона застрял при загрузке DSYMS. В этом случае попробуйте каждое из следующего: Убедитесь, что вы используете последнюю версию Crashlytics . Загрузите недостающие файлы DSYM вручную: Вариант 1: Используйте опцию «Перетащиться» на основе консоли на вкладке DSYMS , чтобы загрузить архив ZIP, содержащий недостающие файлы DSYM. Вариант 2: Используйте скрипт upload-symbols
для загрузки пропущенных файлов DSYM, для предоставленных UUID на вкладке DSYMS .
Если вы продолжаете видеть отсутствующие DSYMS или загрузки все еще не увенчались успехом, свяжитесь с поддержкой Firebase и обязательно включите свои журналы.
Аварии плохо символизированы
Если кадры из библиотеки вашего приложения не имеют ссылок на код вашего приложения, убедитесь, что это -fomit-frame-pointer
не установлен как компиляционный флаг.Если вы видите несколько (Missing)
кадров для библиотеки вашего приложения, проверьте, есть ли дополнительные DSYMS, указанные как отсутствующие (для версии затронутой приложения) на вкладке Crashlytics DSYMS в консоли Firebase . Если это так, следуйте шагу устранения неполадок в DSYMS «Отсутствует оповещение DSYM» в DSYMS/не загружает часто задаваемые вопросы на этой странице. Обратите внимание, что загрузка этих DSYMS не будет символизировать сбои, которые уже произошли, но это поможет обеспечить символику для будущих сбоев.
Кто может просматривать, написать и удалять заметки по вопросу?
Члены проекта с любой из следующих ролей могут просмотреть и удалять существующие заметки и писать новые заметки по вопросу. Члены проекта с любыми из следующих ролей могут просмотреть заметки, опубликованные по вопросу, но они не могут удалить или написать заметку. Зритель проекта, зритель Firebase , качественный просмотр или Crashlytics Viewer
Интеграции
Приложение также использует Google Mobile Ads SDK, но не получает сбоев
disableSDKCrashReporting
.
Где находится мой набор данных BigQuery?
Поддержка платформы
Могу ли я использовать Crashlytics для macOS или TVOS?
Могу ли я использовать Crashlytics в проекте Firebase с несколькими приложениями на разных платформах Apple?
Регрессивные проблемы
Что такое регрессивный вопрос?
Впервые Crashlytics получает отчет о аварии о Crash "A". Crashlytics открывает соответствующую проблему для этого сбоя (выпуск «a»). Вы быстро исправляете эту ошибку, закрываете проблему «A», а затем выпускаете новую версию вашего приложения. Crashlytics получает еще один отчет о выпуске «A» после того, как вы закрыли проблему. - Если отчет взят из версии приложения, о которой Crashlytics знал, когда вы закрыли проблему (это означает, что версия отправила отчет о сбое для любого сбоя), то Crashlytics не рассматривает эту проблему как регрессированную. Проблема останется закрытой.
- Если отчет взят из версии приложения, о которой Crashlytics не знал о том, когда вы закрыли проблему (это означает, что версия никогда не отправляла никакого отчета о сбое для какого-либо сбоя), то Crashlytics рассматривает вопрос об регрессивности и повторно откроет проблему.
Почему я вижу регрессивные проблемы для старых версий приложений?
На этой странице предоставлена помощь и ответы на часто заданные вопросы об использовании Crashlytics . Если вы не можете найти то, что ищете, или нужна дополнительная помощь, свяжитесь с поддержкой Firebase .
Общие устранения неполадок/FAQ
Видеть различные форматы (а иногда и «варианты») для некоторых проблем в таблице проблем
Вы можете заметить два разных формата для проблем, перечисленных в вашей таблице проблем в консоли Firebase . И вы также можете заметить функцию, называемую «варианты» в некоторых ваших проблемах. Вот почему!
В начале 2023 года мы развернули улучшенный механизм анализа для группировки событий, а также обновленный дизайн и некоторые расширенные функции для новых проблем (например, варианты!). Проверьте наше недавнее сообщение в блоге для всех деталей, но вы можете прочитать ниже для основных моментов.
Crashlytics анализирует все события из вашего приложения (например, аварии, не жидкие и ANR) и создает группы событий, называемые вопросами -все события в проблеме имеют общую точку отказа.
Чтобы группировать события в эти проблемы, улучшенный механизм анализа теперь рассматривает многие аспекты события, включая кадры в трассировке стека, сообщение об исключении, код ошибки и другие характеристики типа ошибки.
Однако в рамках этой группы событий следы стека, ведущие к сбою, могут быть разными. Другой трассировку стека может означать другую основную причину. Чтобы представить эту возможную разницу в проблеме, мы теперь создаем варианты в рамках вопросов - каждый вариант является подгруппой событий в проблеме, которая имеет одинаковую точку отказа и аналогичную трассу стека. С вариантами вы можете отлаживать наиболее распространенные трассы стека в рамках проблемы и определить, приводят ли различные основные причины к сбое.
Вот что вы испытаете с этими улучшениями:
Обновленные метаданные, отображаемые в строке выпуска
Теперь в вашем приложении легче понять и сортировать проблемы.Меньше дубликатов проблем
Изменение номера строки не приводит к новой проблеме.Более легкая отладка сложных проблем с различными коренными причинами
Используйте варианты, чтобы отлаживать наиболее распространенные следы стека в рамках проблемы.Более значимые оповещения и сигналы
Новая проблема на самом деле представляет новую ошибку.Более мощный поиск
Каждый выпуск содержит больше метаданных для поиска, таких как тип исключения и имя пакета.
Вот как эти улучшения развернуты:
Когда мы получим новые события из вашего приложения, мы проверим, соответствуют ли они существующей проблеме.
Если нет совпадения, мы автоматически применим наш более умный алгоритм групп событий на мероприятие и создадим новую проблему с обновленным дизайном метаданных.
Это первое большое обновление, которое мы делаем для нашей группировки мероприятий. Если у вас есть обратная связь или столкнуться с какими -либо проблемами, сообщите нам об этом,
Не видя бревна хлебной крошки
Если вы не видите журналов Breadcrumb , мы рекомендуем проверить конфигурацию вашего приложения для Google Analytics . Убедитесь, что вы выполнили следующие требования:
Вы включили Google Analytics в своем проекте Firebase.
Вы включили обмен данными для Google Analytics . Узнайте больше об этом настройке в управлении настройками обмена данными аналитики
У тебя естьДобавлена Firebase SDK для Google Analyticsк вашему приложению. Этот SDK должен быть добавлен в дополнение к Crashlytics SDK.
Вы используетеПоследние версии Firebase SDKДля всех продуктов, которые вы используете в своем приложении.
Особенно проверьте, что вы используете как минимум следующую версию Firebase SDK для Google Analytics : iOS+ - V6.3.1+ (V8.9.0+ для macOS и TVOS).
Не видя оповещения о скорости
Не видя без сбоев метрик (или не видно ненадежных показателей)
Убедитесь, что вы используетеCrashlytics SDK V10.8.0+. Убедитесь, что настройки сбора данных не влияют на качество ваших метрик без сбоев: Если вы включите отчетность, отключив автоматическую отчетность по сбою, информация о сбое может быть отправлена только в Crashlytics от пользователей, которые явно выбрали сбор данных. Таким образом, на точность метриков без сбоев будет затронута, поскольку Crashlytics имеет информацию о сбоях от этих пользователей (а не всех ваших пользователей). Это означает, что ваши непревзойденные показатели могут быть менее надежными и менее отражающими общую стабильность вашего приложения. Если у вас отключен автоматический сбор данных, вы можете использовать sendUnsentReports
для отправки Crashlytics отчетов на устройстве. Использование этого метода отправит данные о сбое в Crashlytics , но не данные о сеансах , которые приводят к тому, что консольные диаграммы показывают низкие или нулевые значения для метрик без сбоев.
Как рассчитываются пользователи без сбоев?
Dsyms отсутствуют/не загружают
Убедитесь, что этап сборки вашего проекта содержит сценарий Crashlytics Run, который позволяет XCode загружать DSYMS вашего проекта во время сборки ( инициализация Crashlytics для инструкций по добавлению сценария). После обновления вашего проекта, выручите сбой и подтвердите, что авария появляется на панели Crashlytics . Если вы видите предупреждение «отсутствующее DSYM» в консоли Firebase , проверьте Xcode, чтобы убедиться, что он правильно производит DSYMS для сборки. Если Xcode должным образом производит DSYMS, и вы все еще видите отсутствующие DSYMS, вероятно, инструмент сценария прогона застрял при загрузке DSYMS. В этом случае попробуйте каждое из следующего: Убедитесь, что вы используете последнюю версию Crashlytics . Загрузите недостающие файлы DSYM вручную: Вариант 1: Используйте опцию «Перетащиться» на основе консоли на вкладке DSYMS , чтобы загрузить архив ZIP, содержащий недостающие файлы DSYM. Вариант 2: Используйте скрипт upload-symbols
для загрузки пропущенных файлов DSYM, для предоставленных UUID на вкладке DSYMS .
Если вы продолжаете видеть отсутствующие DSYMS или загрузки все еще не увенчались успехом, свяжитесь с поддержкой Firebase и обязательно включите свои журналы.
Аварии плохо символизированы
If frames from your app's library lack references to your app's code, make sure that -fomit-frame-pointer
is not set as a compilation flag.If you see several (Missing)
frames for your app's library, check if there are optional dSYMs listed as missing (for the affected app version) in the Crashlytics dSYMs tab of the Firebase console. If so, follow the "Missing dSYM alert" troubleshooting step in the dSYMs are missing/not uploading FAQ on this page. Note that uploading these dSYMs will not symbolicate crashes that have already occurred, but this will help ensure symbolication for future crashes.
Who can view, write, and delete notes on an issue?
Project members with any of the following roles can view and delete existing notes and write new notes on an issue. Project Owner or Editor , Firebase Admin , Quality Admin , or Crashlytics Admin
Project members with any of the following roles can view the notes posted on an issue, but they cannot delete or write a note. Project Viewer , Firebase Viewer , Quality Viewer , or Crashlytics Viewer
Интеграции
App also uses the Google Mobile Ads SDK but not getting crashes
disableSDKCrashReporting
.
Where is my BigQuery dataset located?
Platform support
Can I use Crashlytics for macOS or tvOS?
Can I use Crashlytics in a Firebase project with multiple apps on different Apple platforms?
Regressed issues
What is a regressed issue?
For the first time ever, Crashlytics gets a crash report about Crash "A". Crashlytics opens a corresponding issue for that crash (Issue "A"). You fix this bug quickly, close Issue "A", and then release a new version of your app. Crashlytics gets another report about Issue "A" after you've closed the issue. - If the report is from an app version that Crashlytics knew about when you closed the issue (meaning that the version had sent a crash report for any crash at all), then Crashlytics won't consider the issue as regressed. The issue will remain closed.
- If the report is from an app version that Crashlytics did not know about when you closed the issue (meaning that the version had never sent any crash report for any crash at all), then Crashlytics considers the issue regressed and will re-open the issue.
Why am I seeing regressed issues for older app versions?
This page provides troubleshooting help and answers to frequently-asked questions about using Crashlytics . If you can't find what you're looking for or need additional help, contact Firebase support .
General troubleshooting/FAQ
Seeing different formats (and sometimes "variants") for some issues in the Issues table
You might notice two different formats for issues listed in your Issues table in the Firebase console. And you might also notice a feature called "variants" within some of your issues. Вот почему!
In early 2023, we rolled out an improved analysis engine for grouping events as well as an updated design and some advanced features for new issues (like variants!). Check out our recent blog post for all the details, but you can read below for the highlights.
Crashlytics analyzes all the events from your app (like crashes, non-fatals, and ANRs) and creates groups of events called issues — all events in an issue have a common point of failure.
To group events into these issues, the improved analysis engine now looks at many aspects of the event, including the frames in the stack trace, the exception message, the error code, and other platform or error type characteristics.
However, within this group of events, the stack traces leading to the failure might be different. A different stack trace could mean a different root cause. To represent this possible difference within an issue, we now create variants within issues - each variant is a sub-group of events in an issue that have the same failure point and a similar stack trace. With variants, you can debug the most common stack traces within an issue and determine if different root causes are leading to the failure.
Here's what you'll experience with these improvements:
Revamped metadata displayed within the issue row
It's now easier to understand and triage issues in your app.Fewer duplicate issues
A line number change doesn't result in a new issue.Easier debugging of complex issues with various root causes
Use variants to debug the most common stack traces within an issue.More meaningful alerts and signals
A new issue actually represents a new bug.More powerful search
Each issue contains more searchable metadata, like exception type and package name.
Here's how these improvements are rolling out:
When we get new events from your app, we'll check if they match to an existing issue.
If there's no match, we'll automatically apply our smarter event-grouping algorithm to the event and create a new issue with the revamped metadata design.
This is the first big update that we're making to our event grouping. If you have feedback or encounter any issues, please let us know by
Not seeing breadcrumb logs
If you're not seeing breadcrumb logs , we recommend checking your app's configuration for Google Analytics . Make sure you meet the following requirements:
You've enabled Google Analytics in your Firebase project.
You've enabled Data sharing for Google Analytics . Learn more about this setting in Manage your Analytics data sharing settings
У тебя естьadded the Firebase SDK for Google Analyticsto your app. This SDK must be added in addition to the Crashlytics SDK.
You're using thelatest Firebase SDK versionsfor all the products that you use in your app.
Especially check that you're using at minimum the following version of the Firebase SDK for Google Analytics : iOS+ — v6.3.1+ (v8.9.0+ for macOS and tvOS).
Not seeing velocity alerts
Not seeing crash-free metrics (or seeing unreliable metrics)
Make sure that you're using theCrashlytics SDK v10.8.0+. Make sure that your data collection settings aren't impacting the quality of your crash-free metrics: If you enable opt-in reporting by disabling automatic crash reporting, crash information can only be sent to Crashlytics from users who have explicitly opted into data collection. Thus, the accuracy of crash-free metrics will be affected since Crashlytics only has crash information from these opted-in users (rather than all your users). This means that your crash-free metrics may be less reliable and less reflective of the overall stability of your app. If you have automatic data collection disabled, you can use sendUnsentReports
to send on-device cached reports to Crashlytics . Using this method will send crash data to Crashlytics , but not sessions data which causes the console charts to show low or zero values for crash-free metrics.
How are crash-free users calculated?
dSYMs are missing/not uploading
Make sure your project's build phase contains the Crashlytics run script, which allows Xcode to upload your project's dSYMs at build time (read Initializing Crashlytics for instructions on adding the script). After updating your project, force a crash and confirm that the crash appears in the Crashlytics dashboard. If you see a "Missing dSYM" alert in the Firebase console, check Xcode to make sure it's properly producing dSYMs for the build. If Xcode is properly producing dSYMs, and you're still seeing missing dSYMs, it's likely the run script tool is getting stuck while uploading the dSYMs. In this case, try each of the following: Make sure you're using the latest version of Crashlytics . Upload the missing dSYM files manually: Option 1: Use the console-based "Drag and Drop" option in the dSYMs tab to upload a zip archive containing the missing dSYM files. Option 2: Use the upload-symbols
script to upload the missing dSYM files, for the provided UUIDs in the dSYMs tab.
If you continue to see missing dSYMs, or uploads are still unsuccessful, contact Firebase Support and be sure to include your logs.
Crashes are poorly symbolicated
If frames from your app's library lack references to your app's code, make sure that -fomit-frame-pointer
is not set as a compilation flag.If you see several (Missing)
frames for your app's library, check if there are optional dSYMs listed as missing (for the affected app version) in the Crashlytics dSYMs tab of the Firebase console. If so, follow the "Missing dSYM alert" troubleshooting step in the dSYMs are missing/not uploading FAQ on this page. Note that uploading these dSYMs will not symbolicate crashes that have already occurred, but this will help ensure symbolication for future crashes.
Who can view, write, and delete notes on an issue?
Project members with any of the following roles can view and delete existing notes and write new notes on an issue. Project Owner or Editor , Firebase Admin , Quality Admin , or Crashlytics Admin
Project members with any of the following roles can view the notes posted on an issue, but they cannot delete or write a note. Project Viewer , Firebase Viewer , Quality Viewer , or Crashlytics Viewer
Интеграции
App also uses the Google Mobile Ads SDK but not getting crashes
disableSDKCrashReporting
.
Where is my BigQuery dataset located?
Platform support
Can I use Crashlytics for macOS or tvOS?
Can I use Crashlytics in a Firebase project with multiple apps on different Apple platforms?
Regressed issues
What is a regressed issue?
For the first time ever, Crashlytics gets a crash report about Crash "A". Crashlytics opens a corresponding issue for that crash (Issue "A"). You fix this bug quickly, close Issue "A", and then release a new version of your app. Crashlytics gets another report about Issue "A" after you've closed the issue. - If the report is from an app version that Crashlytics knew about when you closed the issue (meaning that the version had sent a crash report for any crash at all), then Crashlytics won't consider the issue as regressed. The issue will remain closed.
- If the report is from an app version that Crashlytics did not know about when you closed the issue (meaning that the version had never sent any crash report for any crash at all), then Crashlytics considers the issue regressed and will re-open the issue.