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

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

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Интеграция Sentry для отслеживания ошибок мобильного приложения
Простая
~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

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

Sentry отличается от Firebase Crashlytics одним принципиальным моментом — он умеет отслеживать не только краши, но и производительность: транзакции, spans, медленные HTTP-запросы, ANR/hang на UI-потоке. Для приложений, где важен не только факт падения, но и деградация UX, это делает Sentry более информативным инструментом.

iOS: подключение через SPM

Добавляем https://github.com/getsentry/sentry-cocoa в Package Dependencies, затем в AppDelegate или @main:

import Sentry

SentrySDK.start { options in
    options.dsn = "https://<key>@sentry.io/<project>"
    options.environment = Bundle.main.object(forInfoDictionaryKey: "SentryEnvironment") as? String ?? "production"
    options.tracesSampleRate = 0.2  // 20% транзакций для performance
    options.profilesSampleRate = 0.1
    options.attachViewHierarchy = true  // снимок иерархии при краше
}

attachViewHierarchy = true — полезная фича: в каждом краш-репорте появляется дерево UIView/SwiftUI-иерархии в момент падения. Сразу видно, на каком экране и в каком состоянии UI произошёл краш.

Android: Gradle + Application

implementation("io.sentry:sentry-android:7.+")
// Application.onCreate()
SentryAndroid.init(this) { options ->
    options.dsn = "https://<key>@sentry.io/<project>"
    options.environment = BuildConfig.SENTRY_ENVIRONMENT
    options.tracesSampleRate = 0.2
    options.isEnableUserInteractionTracing = true  // автотрейсинг тапов
}

isEnableUserInteractionTracing автоматически создаёт транзакции при взаимодействии пользователя с UI. Без дополнительного кода видно, что кнопка "Оформить заказ" вызывает сетевой запрос длиной 4,2 секунды на 3G.

Мониторинг производительности

// iOS: ручная транзакция
let transaction = SentrySDK.startTransaction(name: "checkout", operation: "ui.action")
let span = transaction.startChild(operation: "http.client", description: "POST /orders")
// ... запрос ...
span.finish()
transaction.finish()

Транзакции попадают в раздел Performance в Sentry. Там видны p50/p75/p95/p99 перцентили, тепловая карта медленных запросов и точные spans.

Кастомные теги и breadcrumbs

SentrySDK.configureScope { scope in
    scope.setUser(SentryUser(userId: userId))
    scope.setTag(value: "premium", key: "subscription")
    scope.addBreadcrumb({
        let crumb = Breadcrumb()
        crumb.message = "Открыт экран корзины"
        crumb.category = "navigation"
        return crumb
    }())
}

Breadcrumbs — последовательность событий до краша. Позволяют восстановить путь пользователя без воспроизведения бага.

Source maps для React Native

Если проект на React Native — нужна выгрузка JS bundle source maps при каждом релизе:

npx sentry-cli releases \
  files "$VERSION" \
  upload-sourcemaps \
  --dist "$BUILD_NUMBER" \
  ./dist/bundle.js.map

Без source maps стектрейс RN-крашей выглядит как набор анонимных функций из минифицированного бандла.

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

  • Подключение sentry-cocoa / sentry-android / sentry-react-native
  • Настройка environments (dev / staging / production)
  • Конфигурация performance tracing с разумным sample rate
  • Интеграция scope: User ID, теги, breadcrumbs
  • Настройка алертов по error rate и p95 latency
  • Upload dSYM / ProGuard mapping / JS source maps в CI

Сроки

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