apptracer_flutter_platform_interface 0.1.0 copy "apptracer_flutter_platform_interface: ^0.1.0" to clipboard
apptracer_flutter_platform_interface: ^0.1.0 copied to clipboard

Common platform interface, data models and Dart stack-trace parser for the unofficial apptracer_flutter integration with the Tracer (apptracer.ru) service.

Changelog #

All notable changes to this package are documented here.

The format follows Keep a Changelog, and this package adheres to Semantic Versioning. While the version is below 1.0.0, a breaking change bumps the minor version, as pub.flutter-io.cn expects.

Unreleased #

0.1.0 - 2026-08-28 #

Added #

  • TracerOptions.resolvedEnvironment, which falls back to prod in a release build and dev otherwise, so an application no longer passes environment for the ordinary case. release and dist became optional in the same spirit: Android and iOS read the version from the application bundle.

  • TracerOptions.iosAppToken and TracerOptions.webAppToken, resolved by TracerOptions.resolvedAppToken. Every platform is a separate Tracer project with a token of its own, and an application shipping on both iOS and web had to pick between them by hand; now it passes both. appToken remains the fallback, and Android is absent on purpose — its SDK reads the token from a resource the Gradle plugin generates. Only the resolved token is serialized, so an unrelated project's token never crosses the channel.

  • Initial release.

  • TracerPlatform contract and the inert UnsupportedTracerPlatform default.

  • MethodChannelTracer, shared by the Android and iOS implementations, which degrades to "disabled" on MissingPluginException or PlatformException instead of propagating.

  • DartStackTrace.parse, covering JIT frames, obfuscated AOT frames together with the build_id header, dart2js frames in V8 and SpiderMonkey notation, and the <asynchronous suspension> marker. Unrecognised lines are preserved rather than dropped, and the verbatim text is always kept.

  • TracerOptions, TracerEvent, TracerBreadcrumb, TracerSeverity.

  • DartStackTrace.limitFrames, which caps the parsed frames while leaving the verbatim text whole — trimming that would destroy the only artefact an obfuscated trace can be decoded from.

Fixed #

  • Grouping on Android. Measured against a live Tracer project on 2026-08-26, Tracer keys a group on the top frame's class and method alone: a StateError and a TimeoutException thrown from two closures inside one build landed in the same group. When the caller supplies no issueKey, one is now synthesised from the error type and the innermost named frame — the rule iOS already used, moved into Dart so both platforms share it. Neither file nor line goes into the key, so editing code does not scatter a group.

  • The diagnostic UnsupportedTracerPlatform prints on an unsupported platform told the reader to register TracerHttpTracer "with TracerOptions.dsn set". That transport authenticates with appToken; dsn belongs to the Sentry one, and following the message would have left collection off.

0
likes
145
points
119
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Common platform interface, data models and Dart stack-trace parser for the unofficial apptracer_flutter integration with the Tracer (apptracer.ru) service.

Repository (GitHub)
View/report issues

Topics

#crash-reporting #error-monitoring #observability #tracer

License

MIT (license)

Dependencies

flutter, meta, plugin_platform_interface

More

Packages that depend on apptracer_flutter_platform_interface