For the usage of the Flutter SDK, the minimal required Dart SDK version is
2.8.0 and Flutter SDK version is
The Flutter SDK already captures breadcrumbs automatically via the Native SDKs.
If you wish to add additional Navigation breadcrumbs for Flutter Apps, Add the
SentryNavigatorObserver to your
import 'package:flutter/material.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; MaterialApp( navigatorObservers: [ SentryNavigatorObserver(), ], // other parameters )
- iOS dSYM files
- Android NDK, You've to do it manually, Do not use the
uploadNativeSymbolsflag from the Sentry Gradle Plugin, it's not supported yet.
- Android Proguard/R8 mapping file
- Source maps for Flutter Web
obfuscateflags aren't yet supported on iOS; they are supported only on Android. If this feature is enabled, Dart stack traces are not human readable, this is a tooling limitation, See: 43612 and 43274.
- If you enable the
split-debug-infofeature, you must upload the Debug Symbols manually.
- Also, Issue's titles might be obfuscated as we rely on the
runtimeType, but they may not be human-readable, See: Obfuscate Caveat
- Layout related errors are only caught by FlutterError.onError in debug mode. In release mode, they are removed by the Flutter framework. See Flutter build modes.
- Use a
- Use a
- The SDK already runs your init
callbackon an error handler, e.g. using
runZonedGuarded, are captured automatically
- Flutter-specific errors, e.g. using
FlutterError.onError, are captured automatically
Isolateerrors on the
currentIsolate which is the equivalent of a main/UI thread, e.g. using
Isolate.current.addErrorListener, are captured automatically (Only for non-Web Apps).
- For your own
Isolates, add an
Always prefer the
SentryFlutter.init(...) instead of
Sentry.init(...) as it adds the Flutter integrations on top of the Dart SDK.
- You can configure the
SENTRY_ENVIRONMENTvia the Dart environment variables passing the
--dart-defineflag to the compiler.
The Sentry Flutter SDK includes the Sentry Android SDK, which bundles multiple native libraries for multiple ABIs.
Building a Flutter app for a specific ABI using the
--target-platform argument, for example an ARM 32bit apk, looks like this, which should also include the
flutter build apk --target-platform=android-arm --split-per-abi