Перейти к основному содержимому

Подключение Крашлитики для Android

Краткое содержание

Версия 0.3.0

Для передачи ошибок в МТС Аналитику через сервис «Крашлитика» необходимо связать Stack Trace с маппинг-файлом. Это требует установки плагина.

Основные шаги:

  • Подключить и инициализировать SDK Аналитики, включив отлов крэшей.
  • Установить плагин Крашлитики.
  • Создать маппинг-файл на этапе сборки.
  • Присвоить сборке уникальный ID, добавив его в маппинг и константы приложения.
  • Выложить сборку с ID в маркет.
  • Отправлять события ошибок с тем же ID через SDK.
  • Загрузить маппинг в Крашлитику для анализа.

Требования:

  • Android, Kotlin.
  • AGP версия 8.1.0 и выше.
  • SDK МТС Аналитики.

Подключение плагина:

  • Для Groovy: добавить зависимости в settings.gradle, build.gradle, настроить плагин и синхронизировать проект.
  • Для Kotlin DSL: аналогично, но с использованием .kts файлов.

Конфигурация плагина:

  • Включить отладочные логи через gradle.properties.
  • Настроить параметры: flowId, clientId, clientSecret, прокси, количество попыток загрузки и т.д.

Генерация файла:

  • После сборки с minifyEnabled true создается mapping.zip в папке build/tmp/mtsa/mapping/variantName.
  • Файл содержит ID сборки для сопоставления с ошибками.

Загрузка файла в Крашлитику:

  • Автоматически: включить allowUploadMappingFiles=true и настроить учетные данные.
  • Вручную: загрузить mapping.zip через интерфейс Крашлитики.

Смотреть данные:
Статистика доступна в отчете «Крашлитика» на платформе МТС Аналитики.

Версия 0.3.0

Информацию об ошибках в приложении можно передавать в МТС Аналитику, в сервис «Крашлитика».

Для расшифровки Stack Trace ошибок, переданных в Аналитику, важно связать их с маппинг-файлом. Для этого необходимо установить плагин.

Как это работает
  1. SDK Аналитики подключен к проекту, проинициализирован, включен перехват крэшей (фатальных ошибок).
  2. Плагин Крашлитики подключен к проекту.
  3. На этапе сборки приложения создаётся маппинг-файл.
  4. Плагин присваивает сборке уникальный идентификатор, добавляя его в маппинг и в константы приложения.
  5. Разработчик выкладывает сборку с таким ID в маркет.
  6. SDK Аналитики начинает отправлять события ошибок с тем же ID сборки.
  7. Разработчик загружает в Крашлитику маппинг, который содержит ID сборки.
  8. МТС Аналитика сопоставляет маппинг с ошибками по номеру сборки для дальнейшего анализа в отчёте.

Требования

  • Android, Kotlin
  • AGP version to 8.1.0 +
  • SDK МТС Аналитики

Чтобы события отправлялись в Аналитику, подключите и проинициализируйте SDK Аналитики. Включите отлов крэшей setCrashReportingEnabled(true)

val mtsAnalytics: ru.mts.analytics.sdk.publicapi.api.MtsAnalyticsApi =
ru.mts.analytics.sdk.publicapi.MTSAnalytics.getInstance(
context = this,
config = MtsAnalyticsConfig.Builder(flowId = "aabb1111-2c2d-3e3f-4444-555566667777")
.setCrashReportingEnabled(true)
.build()
)
Заметка

Если вы не получили ID потока, отправьте письмо на analytics.support@mts.ru с темой «Получение Flow ID». Идентификатор нужен для отправки данных с вашего ресурса в МТС Аналитику.

Подключение плагина

  1. В settings.gradle добавьте зависимость на artifactory
pluginManagement {
repositories {
maven {
name "mts_analytics_plugins_dev"
url "https://artifacts.services.mts.ru/repository/maven-public-mtsm-maven-local/"
content {
includeGroupAndSubgroups("ru.mts.analytics")
}
}
}
}
  1. В build.gradle добавьте
buildscript {
dependencies {
classpath("ru.mts.analytics:android-plugin-mapping:0.3.0")
}
}
  1. В build.gradle модуля, к которому подключается зависимость, в заголовок файла, блок apply plugins, добавьте
plugins {
id 'ru.mts.analytics.android-plugin-mapping'
}

Ниже в том же файле вызовите plugin extension mtsaPluginMapping и укажите значения параметров

mtsaPluginMapping {
flowId = "aabb1111-2c2d-3e3f-4444-555566667777"
clientId = "ccdd3333-d4e4-5566-d7e7-88889999ffff"
clientSecret = "0AaBb1CcDEeXYzXyzXYz12BbCc"
proxyHost = "ci.proxy.company.ru"
proxyPort = 1234
proxyUser = techUserProxyLogin
proxyPassword = techUserProxyPassword
allowUploadMappingFiles = true
onlyReleaseEnabled = true
}
Примечание

В примере выше flowId, clientId и clientSecret и параметры прокси - выдуманные. Используйте свои реальные значения.

  1. Синхронизируйте проект.

Конфигурация плагина

Чтобы включить отладочный лог работы плагина, добавьте в gradle.properties файл модуля :app свойство: ma_debug_logging_is_enabled=true.

Чтобы изменить конфигурацию по умолчанию, в build.gradle файле модуля, к которому подключается плагин, вызовите plugin extension mtsaPluginMapping и укажите нужные значения параметров. Например, в модуле :app

mtsaPluginMapping {
flowId = "aabb1111-2c2d-3e3f-4444-555566667777"
clientId = "ccdd3333-d4e4-5566-d7e7-88889999ffff"
clientSecret = "0AaBb1CcDEeXYzXyzXYz12BbCc"
proxyHost = "ci.proxy.company.ru"
proxyPort = 1234
proxyUser = techUserProxyLogin
proxyPassword = techUserProxyPassword
allowUploadMappingFiles = true
uploadTryCount = 2
showUploadingProgress = true
onlyReleaseEnabled = true
}
Примечание

В примере выше flowId, clientId и clientSecret и параметры прокси - выдуманные. Используйте свои реальные значения.

Доступные параметры

ПараметрОписаниеЗначение по умолчанию
allowUploadMappingFiles: BooleanЗапускает gradle tasks автоматической загрузки mapping.zip на сервис аналитикиfalse
flowId: String?Идентификатор потока в МТС Аналитике, тот же, что и для СДК Аналитики. Необходимо указать, если включена автоматическая отправка маппинг файла-
clientId: String?Логин вашей учётной записи для аутентификации в сервисе. Необходимо указать, если включена автоматическая отправка маппинг файла-
clientSecret: String?Пароль вашей учётной записи для аутентификации в сервисе. Необходимо указать, если включена автоматическая отправка маппинг файла-
proxyHost: String?, proxyPort: Int?Параметры прокси-сервера, если доступ во внешний интернет закрыт настройками прокси-
proxyUser: String?, proxyPassword: String?Параметры учётной записи для отправки маппинг файла через прокси-
uploadTryCount: IntКоличество попыток отправить mapping-file в случае возникновения ошибок сети. Минимум 1, максимум 3 попытки1
showUploadingProgress: BooleanРазрешает вывод прогресса загрузки файла в logcat Android Studiofalse
onlyReleaseEnabled: BooleanЗапускает gradle tasks и записывает ID сборки только для релизного варианта с build type = releasetrue
allowDependenciesReport: BooleanСоздаёт файл со списком сторонних зависимостей проекта во временной папке app/build/*. В настоящий момент фича отключенаfalse
ignoredBuildTypes: Set<String>Используйте, чтобы передавать типы сборки, для которых не будет создаваться ID сборкиemptySet()
ignoredFlavors: Set<String>Используйте, чтобы передавать build-flavor dimensions, для которых не будет создаваться ID сборкиemptySet()
ignoredVariants: Set<String>Используйте, чтобы передавать имена вариантов или готовых сочетаний Flavors*BuildType, для которых не будет создаваться ID сборкиemptySet()

Генерация файла

После подключения плагина и выполнения gradle tasks build* или assemble* для build-вариантов с включённой минификацией minifyEnabled true / isMinifyEnabled = true появится файл mapping.zip.

Где будет файл: в Application-модуле, к которому подключён плагин.

Пример

build/tmp/mtsa/mapping/variantName/mapping.zip

Плагин допишет в конец этого файла строку с ID сборки, например, ma_mfid=b556d760-2031-49be-a14e-945f6d25a36d.

События фатальных ошибок, отловленные SDK МТС Аналитики, будут отправляться в Аналитику и включать в себя stacktrace ошибки и такой же mfid. Так, сервис крашлитики будет понимать, ошибкам какой версии приложения соответствует загруженный mapping.zip.

Загрузка файла в Крашлитику

Автоматически

  1. В конфигурации плагина включите автоматическую отправку маппинг-файлов allowUploadMappingFiles=true.

  2. Настройте параметры учётной записи: flowId, clientId, clientSecret.

После этого маппинг-файл будет отправляться автоматически во время сборки проекта.

Вручную

  1. В конфигурации плагина выключите автоматическую отправку маппинг-файлов allowUploadMappingFiles=false (по умолчанию). Настраивать параметры учётной записи flowId, clientId, clientSecret не обязательно.

  2. После завершения сборки .apk для релизных или других сборок возьмите полученный mapping.zip файл и вручную загрузите его в Крашлитику.

Смотреть данные

Статистика будет отображаться в отчёте «Крашлитика».