You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The `version` and `service` used at upload time must exactly match the values in the SDK initialization. Otherwise the console can receive crash events but cannot resolve stack frames back to source locations. Make symbol upload part of your release build process.
109
-
</Warning>
108
+
<Note>
109
+
Symbol files are matched to crash events by the build's **build ID**; `service` and `release-version` take no part in the lookup. Symbolication therefore still works when they differ from the SDK initialization values — the difference only affects how the file is grouped and filtered in the console's Source code mapping list. Keeping them aligned is still recommended, and Flutter's build-number suffix (for example `1.2.3+45`) is an easy way for them to drift apart.
110
+
111
+
What must match is the build ID: the `app.<platform>-<arch>.symbols` file produced by `--split-debug-info`, the `libapp.so` inside the APK, and the Build ID column in the console's Source code mapping → Flutter list must all be identical. Every change to your Dart code produces a new build ID, so **symbol upload has to be part of every release build** — otherwise that version's stacks silently degrade to unresolved.
Copy file name to clipboardExpand all lines: en/rum/sdk/flutter/compatible.mdx
+10-11Lines changed: 10 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ This page describes the Flutter SDK support scope and current limits so you can
10
10
11
11
| Item | Support |
12
12
|------|----------|
13
-
| SDK version |`flashcat_flutter_plugin` 0.1.0|
13
+
| SDK version |`flashcat_flutter_plugin` 0.1.3|
14
14
| Target platforms |**iOS and Android** (Flutter Web / Desktop not supported) |
15
15
| Flutter / Dart | Flutter ≥ 3.0, Dart ≥ 3.0 |
16
16
| iOS | Deployment target ≥ 12.0 |
@@ -24,11 +24,11 @@ This page describes the Flutter SDK support scope and current limits so you can
24
24
| Package | pub name | Description |
25
25
|------|------|------|
26
26
| RUM / Core / Crash |`flashcat_flutter_plugin`| Initialization, configuration, RUM (view / action / resource / error / session), and native crash collection |
27
-
| HTTP tracking |`datadog_tracking_http_client`| Automatically records `dart:io` / `http` requests as resources and injects trace headers (requires `dependency_overrides`, not v1 core)|
27
+
| HTTP tracking |`flashcat_tracking_http_client`| Automatically records `dart:io` / `http` requests as resources and injects trace headers |
28
28
| WebView tracking |`flashcat_webview_tracking`| Correlates RUM data inside WebViews |
29
29
30
30
<Note>
31
-
The Dart class names still follow the upstream `Datadog*` naming; only the site enum `FlashcatSite` (`.cn` default / `.staging`) and the package name are rebranded. The `DatadogSdk`, `DatadogConfiguration`, `DatadogRumConfiguration`, `DatadogNavigationObserver`, and other classes in the documentation examples are the actual exported class names.
31
+
Dart class names begin with `Datadog*`, and the site enum is `FlashcatSite` (`.cn` default / `.staging`). The `DatadogSdk`, `DatadogConfiguration`, `DatadogRumConfiguration`, `DatadogNavigationObserver`, and other classes in the documentation examples are the actual exported class names.
32
32
</Note>
33
33
34
34
## Supported automatic collection
@@ -37,7 +37,7 @@ The Dart class names still follow the upstream `Datadog*` naming; only the site
37
37
|------|----------|------|
38
38
| Automatic views | Supported | Requires a `DatadogNavigationObserver` on `MaterialApp`|
39
39
| Automatic actions | Supported | Requires wrapping the subtree with `RumUserActionDetector`; `trackFrustrations` is enabled by default |
40
-
| Automatic resources | Supported (requires companion package) | Through `enableHttpTracking()` from `datadog_tracking_http_client`|
40
+
| Automatic resources | Supported (requires companion package) | Through `enableHttpTracking()` from `flashcat_tracking_http_client`|
41
41
| Unhandled exceptions | Supported | When using `DatadogSdk.runApp`, automatically takes over `FlutterError.onError` / `PlatformDispatcher.onError`|
| Distributed tracing | Supported | Injects W3C `traceparent` for hosts that match `firstPartyHosts`|
@@ -47,12 +47,11 @@ The Dart class names still follow the upstream `Datadog*` naming; only the site
47
47
| Limit | Description |
48
48
|------|------|
49
49
| Platform scope | iOS / Android only; Flutter Web and Desktop are not supported |
50
-
| Logs | v1 does not support log reporting (`DatadogLoggingConfiguration` is a no-op) |
51
-
| Session Replay | Not supported in v1 (`datadog_session_replay` is a preview, not in the core scope) |
52
-
| Companion package naming |`datadog_tracking_http_client` / `datadog_session_replay` still declare their dependency on `datadog_flutter_plugin: ^3.0.0`, so integrating this fork requires `dependency_overrides`|
53
-
| dio / gql / grpc | The corresponding interceptor packages are not yet adapted to this fork in v1 |
54
-
| Page performance metrics |`reportFlutterPerformance` is disabled by default; the console performance page is currently hidden for Flutter to avoid showing zero-value empty data |
55
-
| pub.dev publication | Official publication is being confirmed; git dependencies are currently recommended |
50
+
| Logs | Log reporting is not supported (`DatadogLoggingConfiguration` is a no-op) |
51
+
| Session Replay | Not supported |
52
+
| dio / gql / grpc | The corresponding interceptor packages are not supported |
53
+
| Page performance metrics |`reportFlutterPerformance` is disabled by default |
54
+
| Minimum version | Use `flashcat_flutter_plugin` 0.1.3 or later; on earlier versions `flutter build apk --release` fails in R8 |
56
55
57
56
## Symbolication compatibility
58
57
@@ -70,5 +69,5 @@ Flutter crash stacks can contain both Dart frames and native (iOS / Android) fra
70
69
</Warning>
71
70
72
71
<Tip>
73
-
Symbol files are uploaded through the FlashCat CLI, and the `version` used at upload time must match the `version` in the SDK initialization. Otherwise the console can receive crash events but cannot resolve the stacks.
72
+
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.
The Flutter SDK wraps the native iOS / Android SDKs and provides RUM capabilities through `flashcat_flutter_plugin`. After initialization, the SDK reports the application's views, user actions, network requests, errors, and crashes to Flashduty RUM, with `source: "flutter"` identifying the data source.
8
8
9
9
<Info>
10
-
The current SDK version is `0.1.0` and supports only the **iOS and Android** platforms (Flutter Web is not supported). The Dart class names still follow the upstream `Datadog*`naming (such as `DatadogSdk` and `DatadogConfiguration`); only the package name `flashcat_flutter_plugin`and the site enum `FlashcatSite` are rebranded. v1 does not yet include Logs, Session Replay, or the dio / gql / grpc companion packages.
10
+
The current SDK version is `0.1.3` and supports the **iOS and Android** platforms (Flutter Web is not supported). Dart class names begin with `Datadog*` (such as `DatadogSdk` and `DatadogConfiguration`), and the site enum is `FlashcatSite`. Logs, Session Replay, and the dio / gql / grpc interceptor packages are not supported.
11
11
</Info>
12
12
13
13
## Prerequisites
@@ -23,18 +23,15 @@ Before integrating the SDK, complete these steps:
23
23
24
24
Add `flashcat_flutter_plugin` to `pubspec.yaml`, then run `flutter pub get`.
25
25
26
-
<Note>
27
-
The pub.dev publication of `flashcat_flutter_plugin` is still being confirmed. To keep the dependency resolvable, the example below uses a git source. Once it is officially published to pub.dev, you can switch to the hosted form `flashcat_flutter_plugin: ^0.1.0`.
Use `0.1.3` or later. On earlier versions, `flutter build apk --release` — including the `--obfuscate` build that crash symbolication requires — fails in R8 with `Missing class org.bouncycastle.jsse.BCSSLParameters`. From `0.1.3` the required ProGuard rules ship with the package and no app-side configuration is needed.
33
+
</Warning>
34
+
38
35
## Initialize the SDK
39
36
40
37
We recommend initializing in `main()`, before `runApp`. When you start the application with `DatadogSdk.runApp`, the SDK automatically takes over `FlutterError.onError` and `PlatformDispatcher.instance.onError`, so it can collect unhandled exceptions without manual wiring.
Automatic network collection is provided by the separate `datadog_tracking_http_client` package and enabled through the `enableHttpTracking()` extension method on the configuration object. It globally replaces `HttpClient`, records `dart:io` / `http` requests as RUM resources, and injects W3C trace headers for hosts that match `firstPartyHosts`.
119
+
Automatic network collection is provided by the separate `flashcat_tracking_http_client` package and enabled through the `enableHttpTracking()` extension method on the configuration object. It globally replaces `HttpClient`, records `dart:io` / `http` requests as RUM resources, and injects W3C trace headers for hosts that match `firstPartyHosts`.
120
+
121
+
```yaml pubspec.yaml
122
+
dependencies:
123
+
flashcat_tracking_http_client: ^0.1.0
124
+
```
123
125
124
126
```dart
125
127
final configuration = DatadogConfiguration(
@@ -131,10 +133,6 @@ final configuration = DatadogConfiguration(
131
133
)..enableHttpTracking();
132
134
```
133
135
134
-
<Warning>
135
-
`datadog_tracking_http_client`currently declares its dependency on `datadog_flutter_plugin` (`^3.0.0`), which cannot be resolved directly with this fork's `flashcat_flutter_plugin` 0.1.0. When you enable network collection, add a `dependency_overrides` entry in `pubspec.yaml` pointing to this fork. This capability is not part of the v1 core scope and can be integrated as needed.
136
-
</Warning>
137
-
138
136
## Identify users
139
137
140
138
After sign-in, you can set the current user. The SDK writes the user fields to the `usr` object on subsequent RUM events.
@@ -166,7 +164,7 @@ try {
166
164
```
167
165
168
166
<Note>
169
-
Crash and error stacks require uploaded symbol files to resolve back to source locations. Flutter symbols, iOS dSYM, and Android mapping files are uploaded through the FlashCat CLI, and the `version` used at upload time must match the `version` in the SDK initialization. See <a href="/en/rum/sdk/flutter/advanced-config">Advanced configuration</a>.
167
+
Crash and error stacks require uploaded symbol files to resolve back to source locations. Flutter symbols, iOS dSYM, and Android mapping files are uploaded through the FlashCat CLI; every code change produces a new build, so a fresh set of symbol files has to be uploaded for it. See <a href="/en/rum/sdk/flutter/advanced-config">Advanced configuration</a>.
0 commit comments