Интеграция Bugsnag для отслеживания ошибок мобильного приложения

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Интеграция Bugsnag для отслеживания ошибок мобильного приложения
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Интеграция Bugsnag для отслеживания ошибок мобильного приложения

Bugsnag занимает нишу между Crashlytics и Sentry: более богатая группировка ошибок, чем у Firebase, но без overhead performance-трейсинга из Sentry. Основная сила — алгоритм error grouping: Bugsnag группирует похожие краши по стектрейсу интеллектуально, не создавая тысячу отдельных issue из одной и той же ошибки с разными адресами памяти. В проектах с большой аудиторией это резко упрощает приоритизацию.

Подключение на iOS

// Package.swift или SPM в Xcode
// https://github.com/bugsnag/bugsnag-cocoa

import Bugsnag

@main
struct MyApp: App {
    init() {
        let config = BugsnagConfiguration.loadConfig()
        config.apiKey = "YOUR_API_KEY"
        config.releaseStage = Bundle.main.infoDictionary?["ReleaseStage"] as? String ?? "production"
        config.notifyReleaseStages = ["staging", "production"]
        Bugsnag.start(with: config)
    }
}

notifyReleaseStages — один из первых параметров, который стоит настроить. Без него debug-сборки засоряют дашборд событиями разработки.

Подключение на Android

implementation("com.bugsnag:bugsnag-android:5.+")

В AndroidManifest.xml:

<meta-data android:name="com.bugsnag.android.API_KEY" android:value="YOUR_API_KEY"/>

SDK автоматически инициализируется при старте Application. Для кастомной конфигурации:

val config = Configuration.load(this).apply {
    releaseStage = BuildConfig.RELEASE_STAGE
    enabledReleaseStages = setOf("staging", "production")
    maxBreadcrumbs = 50
}
Bugsnag.start(this, config)

Обогащение контекста

Bugsnag особенно хорошо работает с метаданными — они структурированы по вкладкам в каждом баг-репорте:

Bugsnag.addOnSendError { event in
    event.addMetadata([
        "user_id": userId,
        "subscription": "premium",
        "cart_items": cartCount
    ], section: "app_state")
    event.setUser(userId, withEmail: email, andName: name)
    return true
}

Секция app_state появится отдельной вкладкой в интерфейсе Bugsnag. Быстро видно состояние приложения в момент ошибки без разбора логов.

Severity и управление приоритетом

// Явно пометить ошибку как некритичную
Bugsnag.notifyError(NetworkError.timeout) { event in
    event.severity = .warning
    event.context = "profile_image_load"
    return true
}

Severity влияет на сортировку в дашборде и на алерты. error — попадает в Slack/PagerDuty немедленно, warning — агрегируется в дайджест.

Bugsnag vs Crashlytics: когда выбрать Bugsnag

Критерий Bugsnag Crashlytics
Группировка ошибок Интеллектуальная, настраиваемая Базовая по стектрейсу
Метаданные Вкладки с произвольной структурой Key-value, flat
Бесплатный план Ограниченный (до 7500 событий/мес) Бесплатно в Firebase
Self-hosted Нет Нет
Интеграции Jira, PagerDuty, Slack, GitHub Firebase Console, Email

Bugsnag оправдан там, где команда тратит время на разбор дубликатов в Crashlytics. Хорошая группировка окупается при объёме 10k+ DAU.

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

  • Подключение SDK (iOS SPM / Android Gradle / Flutter / React Native)
  • Настройка release stages и фильтрация dev-сборок
  • Конфигурация метаданных через addOnSendError
  • Настройка breadcrumbs и кастомного контекста
  • Интеграция с Jira или Slack для алертов
  • Upload dSYM (iOS) и ProGuard mapping (Android)

Сроки

Базовая интеграция: 0,5–1 день. Полная настройка с метаданными и интеграциями: 1–2 дня. Стоимость рассчитывается индивидуально.