> ## Documentation Index
> Fetch the complete documentation index at: https://test-8ad8522e-feat-ai-sre.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Flutter SDK compatibility

> Review the platforms, Flutter versions, companion packages, and current limits supported by the Flutter RUM SDK

This page describes the Flutter SDK support scope and current limits so you can determine whether your project meets the requirements before integration.

## Support scope

| Item             | Support                                                   |
| ---------------- | --------------------------------------------------------- |
| SDK version      | `flashcat_flutter_plugin` 0.1.3                           |
| Target platforms | **iOS and Android** (Flutter Web / Desktop not supported) |
| Flutter / Dart   | Flutter ≥ 3.27.0, Dart ≥ 3.6.0                            |
| iOS              | Deployment target ≥ 12.0                                  |
| Android          | `minSdkVersion` ≥ 23                                      |
| RUM data source  | Events always write `source: "flutter"`                   |
| Implementation   | A Flutter plugin wrapping the native iOS / Android SDKs   |
| Data upload      | `POST /api/v2/rum`                                        |

## Packages and capabilities

| Package            | pub name                        | Description                                                                                                  |
| ------------------ | ------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| RUM / Core / Crash | `flashcat_flutter_plugin`       | Initialization, configuration, RUM (view / action / resource / error / session), and native crash collection |
| HTTP tracking      | `flashcat_tracking_http_client` | Automatically records `dart:io` / `http` requests as resources and injects trace headers                     |
| WebView tracking   | `flashcat_webview_tracking`     | Correlates RUM data inside WebViews                                                                          |

<Note>
  Dart class names begin with `Datadog*`, and the site enum is `FlashcatSite`. Use the default `.cn` site for customer-facing production environments; configure the full `customEndpoint` for on-premises deployments. The `DatadogSdk`, `DatadogConfiguration`, `DatadogRumConfiguration`, `DatadogNavigationObserver`, and other classes in the documentation examples are the actual exported class names.
</Note>

## Supported automatic collection

| Capability                        | Support                                | Description                                                                                                    |
| --------------------------------- | -------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| Automatic views                   | Supported                              | Requires a `DatadogNavigationObserver` on `MaterialApp`                                                        |
| Automatic actions                 | Supported                              | Requires wrapping the subtree with `RumUserActionDetector`; `trackFrustrations` is enabled by default          |
| Automatic resources               | Supported (requires companion package) | Through `enableHttpTracking()` from `flashcat_tracking_http_client`                                            |
| Unhandled exceptions              | Supported                              | When using `DatadogSdk.runApp`, automatically takes over `FlutterError.onError` / `PlatformDispatcher.onError` |
| Native crashes                    | Supported                              | Requires `nativeCrashReportEnabled: true`                                                                      |
| Distributed tracing               | Supported                              | Injects W3C `traceparent` for hosts that match `firstPartyHosts`                                               |
| Native mobile performance metrics | Supported                              | Collects app start (TTID), refresh rate, and memory by default                                                 |
| Hang detection                    | Supported                              | Android supports ANRs; iOS supports App Hangs after you set `appHangThreshold`                                 |

## Current limits

| Limit                     | Description                                                                                                                                                                       |
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Platform scope            | iOS / Android only; Flutter Web and Desktop are not supported                                                                                                                     |
| Logs                      | Log reporting is not supported (`DatadogLoggingConfiguration` is a no-op)                                                                                                         |
| Session Replay            | Not supported                                                                                                                                                                     |
| dio / gql / grpc          | The corresponding interceptor packages are not supported                                                                                                                          |
| Flutter rendering timings | `reportFlutterPerformance` is disabled by default; it controls only Flutter build / raster timings and does not affect the native mobile performance metrics collected by default |
| Minimum version           | Use `flashcat_flutter_plugin` 0.1.3 or later; on earlier versions `flutter build apk --release` fails in R8                                                                       |

## Symbolication compatibility

Flutter crash stacks can contain both Dart frames and native (iOS / Android) frames. To resolve stack frames back to source locations, you need to upload the corresponding symbol files:

| Frame type     | Required uploaded files                                     |
| -------------- | ----------------------------------------------------------- |
| Dart (Android) | Flutter symbols (`flutter build --split-debug-info` output) |
| Dart (iOS)     | Not supported yet, see the note below                       |
| iOS Native     | dSYM                                                        |
| Android Native | mapping files                                               |

<Warning>
  **Dart stacks cannot be symbolicated on iOS yet.** The symbol file Flutter produces for Apple targets is a Mach-O, and the platform currently parses only the ELF format used on Android, so an iOS `.symbols` upload is rejected. iOS native crashes are unaffected — upload dSYMs to symbolicate them.

  If you ship both iOS and Android, you can still enable `--obfuscate`: Android Dart stacks resolve normally while iOS Dart stacks stay obfuscated. If readable iOS stacks matter more, leave `--obfuscate` off for that platform's build.
</Warning>

<Tip>
  Symbol files are uploaded through the FlashCat CLI. Symbols are matched to crash events by the build's build ID, so you need to upload a fresh set of symbol files after every code change.
</Tip>
