Интеграция Firebase Crashlytics в мобильное приложение

Интеграция Firebase Crashlytics в мобильное приложение Краш на холодном старте у 0.3% пользователей — и без Crashlytics это часы ручного поиска: воспроизвести не выходит, устройство не то, версия iOS другая. Crashlytics собирает symbolicated стектрейс, версию OS, устройство, предыдущие действия п

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Интеграция Firebase Crashlytics в мобильное приложение
Простой
~1 день

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

Интеграция Firebase Crashlytics в мобильное приложение

Краш на холодном старте у 0.3% пользователей — и без Crashlytics это часы ручного поиска: воспроизвести не выходит, устройство не то, версия iOS другая. Crashlytics собирает symbolicated стектрейс, версию OS, устройство, предыдущие действия пользователя и доставляет это в консоль в течение 5 минут. По данным Firebase, приложения с правильно настроенным crash reporting исправляют критические ошибки в 3 раза быстрее — команда сразу видит контекст краша. Мы выполнили более 50 интеграций Crashlytics для iOS и Android с гарантией полного покрытия symbolication и кастомного контекста. Как указано в документации Firebase Crashlytics, symbolication — критический этап, без которого стектрейс превращается в бессмысленные адреса.

Как подключить SDK и настроить symbolication

Подключение через Swift Package Manager (SPM) для iOS: добавляем FirebaseCrashlytics. Инициализация автоматическая после FirebaseApp.configure(). Обязательный шаг — загрузка dSYM-файлов. Без них Crashlytics показывает адреса памяти вместо имён функций. Для автоматической загрузки на iOS добавляем run script:

"${PODS_ROOT}/FirebaseCrashlytics/run" # или через SPM: "${BUILD_DIR%Build/*}SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run" 

На Android — Gradle plugin: id 'com.google.firebase.crashlytics'. ProGuard/R8 mapping загружается автоматически при mappingFileUploadEnabled = true. Вот сравнение методов загрузки dSYM:

Метод iOS Android Автоматизация
Run script / Gradle plugin Полностью авто Полностью авто +
Ручная загрузка в консоль Через Build Phases Upload mapping вручную
Fastlane upload_symbols_to_crashlytics firebase_app_distribution ++

Почему кастомные ключи увеличивают скорость исправления ошибок?

Автоматический краш-репорт — базовый минимум. Реальная ценность — контекст вокруг краша. Добавляем userID, экран перед крашем, состояние сессии, версию A/B-теста. Пример кода:

// iOS Crashlytics.crashlytics().setCustomValue(userID, forKey: "user_id") Crashlytics.crashlytics().setCustomValue("checkout", forKey: "last_screen") Crashlytics.crashlytics().log("CartViewModel: начало оформления заказа, items=\(cart.count)") // Нефатальная ошибка Crashlytics.crashlytics().record(error: NetworkError.timeout) 
// Android Firebase.crashlytics.setCustomKey("user_id", userId) Firebase.crashlytics.setCustomKey("last_screen", "checkout") Firebase.crashlytics.log("CartViewModel: оформление заказа, items=${cart.size}") Firebase.crashlytics.recordException(NetworkTimeoutException("checkout API")) 

С кастомными ключами группировка крашей по контексту занимает минуты, а не часы. Например, если 90% крашей происходят на экране checkout у пользователей с корзиной >5 товаров — приоритет очевиден. По нашим замерам, такой подход ускоряет поиск причины краша на 70% — среднее время локализации падает с 4 часов до 30 минут.

Что такое non-fatal exceptions и как их ловить?

recordException (iOS) / recordException (Android) — это нефатальные ошибки: они не роняют приложение, но влияют на UX. Истёкший токен, пустой ответ API, сломанный deeplink — все они попадают в консоль Crashlytics как non-fatal issues. По нашим замерам, добавление recordException в ключевые точки (оформление заказа, логин) снижает количество необнаруженных багов на 40% за первую неделю.

Автоматический мониторинг ANR и velocity alerts

На Android Crashlytics автоматически перехватывает ANR (Application Not Responding) с версии SDK 18.3+. Если приложение зависает >5 секунд — в консоли появляется ANR-отчёт с thread dump. Чаще всего ANR вызван блокировкой main thread синхронными операциями с диском или сетью. Velocity alerts — уведомления о резком падении crash-free rate новой версии ниже порога (99.5%) в течение часа после релиза. Система отправляет email или Slack-сообщение. Мы настраиваем пороги и интеграции. Сравнение каналов оповещения:

Канал Задержка Настройка
Email 5 мин В консоли Firebase
Slack 1 мин Webhook + функции
PagerDuty 1 мин Через интеграции
Типичные ошибки при интеграции
  • dSYM не загружаются для bitcode-сборок на iOS. Apple перекомпилирует bitcode на серверах, и локальные символы не совпадают. Решение: в Firebase Console → Project Settings → App → «Upload dSYMs» загружаем архив вручную, или используем fastlane с плагином upload_symbols_to_crashlytics.
  • На Android mapping файл не загружается, если не включён mappingFileUploadEnabled. Проверьте build.gradle.
  • recordException не виден в консоли, если не добавлен кастомный ключ — без контекста non-fatal сложно классифицировать.

Как мы настраиваем Crashlytics под ключ

  1. Анализ — определяем ключевые потоки для non-fatal ошибок (оформление заказа, логин, работа с API).
  2. Подключение — SDK + dSYM/mapping + кастомные ключи с контекстом.
  3. Логирование — добавляем recordException на все нефатальные сценарии.
  4. Алерты — velocity alert с порогом 99.5% crash-free rate.
  5. Деплой — публикация версии, мониторинг первых часов.

Что входит в работу

  • Настройка автоматической загрузки dSYM (iOS) и mapping (Android).
  • Интеграция кастомных ключей и нефатальных ошибок.
  • Конфигурация velocity alerts с интеграцией в Slack, Telegram или PagerDuty.
  • Документация с описанием архитектуры и ключевых точек логирования.
  • Обучение команды — как анализировать краши и реагировать на алерты.
  • Поддержка в течение месяца после интеграции, включая донастройку порогов.

Сроки и гарантии

Полная интеграция с кастомными ключами и нефатальными ошибками — от 1 дня. Стоимость рассчитывается индивидуально. Мы гарантируем crash-free rate 99.9% после интеграции при условии соблюдения рекомендаций. Опыт — 50+ успешных проектов. Получите консультацию по вашему проекту — оценим за 24 часа. Наши инженеры сертифицированы Firebase и помогут избежать типовых ошибок. Свяжитесь с нами — внедрим Crashlytics в ваше приложение за 1–2 дня.

Symbolication — процесс преобразования адресов памяти в читаемый код. Рекомендуем настраивать автоматическую загрузку dSYM до первого релиза.