apptracer_flutter_android 0.1.1
apptracer_flutter_android: ^0.1.1 copied to clipboard
Android implementation of apptracer_flutter, the unofficial Flutter integration with Tracer (apptracer.ru). Forwards Dart errors to the ru.ok.tracer Android SDK.
apptracer_flutter_android #
Реализация apptracer_flutter под Android — неофициальной интеграции
Flutter с Tracer.
Не связан с VK и OK.TECH, не одобрен и не поддерживается ими.
English version: README.en.md.
Зависеть от этого пакета напрямую не нужно: его подтягивает
apptracer_flutter.
Что он делает #
Передаёт ошибки Dart в ru.ok.tracer:tracer-crash-report. Нативные краши, ANR
и метрику crash-free этот SDK считает сам — плагин добавляет только ту
половину, которую SDK не видит.
Ошибка Dart заворачивается в синтетический Throwable, чей stackTrace
собран из кадров Dart. Если отдавать вместо этого стек JVM, у всех ошибок Dart
в приложении окажутся одинаковые кадры, и Tracer схлопнет их в одну проблему.
Подключение #
SDK Tracer подключён здесь как compileOnly, поэтому его добавляет само
приложение — вместе с Gradle-плагином ru.ok.tracer, откуда берётся
appToken. См. README.
Настройку SDK пакет ставит себе сам, без строчки в манифесте: рейт-лимит на
нефатальные (10 в час вместо жёстких 8 за сессию — а каждая ошибка Dart здесь
нефатальная). Кладёт её TracerAutoConfigProvider, который система создаёт
раньше провайдера Tracer. Application, реализующий HasTracerConfiguration,
эту конфигурацию отменяет — на такой случай в пакете есть
TracerApplication, от которого наследуются. Почему так и чем это рискованно —
в TracerAutoConfig.
О четырёх вещах плагин скажет в рантайме, а не промолчит. Первые две его выключают:
- SDK Tracer отсутствует в classpath рантайма;
- Gradle-плагин
ru.ok.tracerне применён — определяется по отсутствию сгенерированного ресурсаtracer_app_token; - передан
TracerOptions.appToken— на Android он игнорируется; - передан
TracerOptions.environment— тоже игнорируется, значение берётся из Gradle-плагина.
Требует minSdk 21 — как и ru.ok.tracer:tracer-commons.