Flutter Error Tracking installation
Install with the wizard
Run this command in your project directory to add PostHog to your Flutter project. The wizard detects your framework, installs the SDK, and sets up your first events.
Or set it up manually by following the rest of this guide.
- 1
Install the package
RequiredAdd the PostHog Flutter SDK to your
pubspec.yaml:pubspec.yaml - 2
Platform setup
RequiredAdd these values to your
AndroidManifest.xml:android/app/src/main/AndroidManifest.xmlUpdate the minimum Android SDK version to 21 in
android/app/build.gradle:android/app/build.gradleAdd these values to your
Info.plist:ios/Runner/Info.plistUpdate the minimum platform version to iOS 13.0 in your
Podfile:PodfileAdd these values in
index.html:web/index.html - 3
Send events
RecommendedOnce installed, PostHog will automatically start capturing events. You can also manually send events to test your integration:
Dart - 4
Set up exception autocapture
RecommendedClient-side configuration onlyThis configuration is client-side only. Support for remote configuration in the error tracking settings will be added in a future release.
Dart AOT symbolication and background isolate listeners require
posthog_flutter5.58.0 or later. If your project uses an earlier version, setposthog_flutter: ^5.58.0inpubspec.yamland runflutter pub get.You can autocapture exceptions by configuring the
errorTrackingConfigwhen setting up PostHog:DartConfiguration options:
Option Description captureFlutterErrorsCaptures Flutter framework errors ( FlutterError.onError)capturePlatformDispatcherErrorsCaptures Dart runtime errors ( PlatformDispatcher.onError). Web not supported.captureIsolateErrorsCaptures errors from the isolate where PostHog is set up. Spawn background isolates paused and call isolate.addPostHogErrorListener()before resuming them to capture their errors. Web not supported.captureNativeExceptionsCaptures native exceptions. Android (Java/Kotlin) and Apple platforms (iOS, macOS, tvOS). captureSilentFlutterErrorsCaptures Flutter errors that are marked as silent. Default: false. - 5
Manually capture exceptions
OptionalBasic usage
You can manually capture exceptions using the
captureExceptionmethod:DartThis is helpful if you've built your own error handling logic or want to capture exceptions that are handled by your application code.
Error tracking configuration
You can configure error tracking behavior when setting up PostHog:
Flutter web apps use minified stack trace framesFlutter web apps generate minified stack trace frames by default, which may cause the configurations below to behave differently or not work as expected.
DartConfiguration options:
Option Description inAppIncludesList of package names to be considered inApp frames (takes precedence over excludes) inAppExcludesList of package names to be excluded from inApp frames inAppByDefaultWhether frames are considered inApp by default when their origin cannot be determined inAppframes are stack trace frames that belong to your application code (as opposed to third-party libraries or system code). These are highlighted in the PostHog error tracking interface to help you focus on the relevant parts of the stack trace. - 6
Upload Dart debug symbols
OptionalFlutter writes Dart debug symbols for release builds when you pass
--split-debug-info. Upload the symbols for each build you ship so PostHog can show Dart function names and line numbers for Android and iOS exceptions. Add--obfuscateto the build command if you obfuscate your app.Run these commands from your app's root directory to upload each build's
.symbolsfiles. Sign in withposthog-cli login, or setPOSTHOG_CLI_API_KEYandPOSTHOG_CLI_PROJECT_IDin CI. Keep each build's symbols in its own directory.To show source code context, use this command instead of the symbol-only upload. It includes your app's source files:
--source-root ./liblimits source files, not symbol files. Run the upload on the build machine while your app source is available. Review your source files before uploading them. See the CLI debug symbol guide for more options. - 7
Future features
OptionalWe currently don't support the following features:
- Restoring obfuscated Dart exception class names
- Capturing native C/C++ exceptions on Android (Java/Kotlin only)
For symbolicated native Android and iOS stack traces, see the Flutter debug symbols guide.
- 8







