> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flashduty.com/llms.txt
> Use this file to discover all available pages before exploring further.

# React Native SDK compatibility

> Learn about the platforms, React Native versions, companion packages, and current limitations of the React Native RUM SDK

This page describes the support scope and current limitations of the React Native SDK, so you can check whether your project meets the requirements before integrating.

## Support scope

| Item                | Support                                                                                                          |
| ------------------- | ---------------------------------------------------------------------------------------------------------------- |
| SDK version         | `@flashcatcloud/mobile-react-native` 0.1.x (≥ 0.1.1 recommended)                                                 |
| Target platforms    | **iOS and Android** (React Native Web / macOS / Windows are not supported)                                       |
| React Native        | `>= 0.63.4 < 1.0`; the new architecture (Fabric / TurboModules) is verified on 0.76                              |
| iOS                 | Deployment target ≥ 12.0                                                                                         |
| Android             | `minSdkVersion` ≥ 21                                                                                             |
| Native dependencies | Android `cloud.flashcat:dd-sdk-android-*` 0.5.x (Maven Central); iOS `Flashcat*` pods `~> 0.5` (CocoaPods trunk) |
| RUM data source     | Events are always written with `source: "react-native"`                                                          |
| Implementation      | React Native native modules wrapping the native iOS / Android SDKs                                               |
| Data reporting      | `POST /api/v2/rum`                                                                                               |

## Packages and capabilities

| Package                               | npm name                                        | Description                                                                                                                                |
| ------------------------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| RUM / Core / Crash                    | `@flashcatcloud/mobile-react-native`            | Initialization, configuration, RUM (view / action / resource / error / session), native crash collection, Android source map upload script |
| react-navigation view tracking        | `@flashcatcloud/mobile-react-navigation`        | Records `NavigationContainer` route changes as views                                                                                       |
| react-native-navigation view tracking | `@flashcatcloud/mobile-react-native-navigation` | Records screen changes of Wix `react-native-navigation` (`^7.5.0`) as views                                                                |
| WebView tracking                      | `@flashcatcloud/mobile-react-native-webview`    | Associates Browser RUM data inside `react-native-webview` (`>= 11.0.0`)                                                                    |
| Source map upload                     | `@flashcatcloud/flashcat-cli`                   | The `sourcemaps upload-react-native` command (≥ 0.4.0)                                                                                     |

<Note>
  JavaScript class names begin with `Dd*` (`DdSdkReactNative`, `DdSdkReactNativeConfiguration`, `DdRum`, `DdLogs`). Keep the default `site = 'CN'` on the public cloud; configure full `customEndpoints` for on-premises deployments.
</Note>

## Supported automatic collection

| Capability              | Support                                | Description                                                                                                                              |
| ----------------------- | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Automatic views         | Supported (companion package required) | The tracking package for react-navigation or react-native-navigation; manage views with `DdRum.startView` for other navigation solutions |
| Automatic actions       | Supported                              | `trackInteractions: true`; collects taps on components with `onPress`                                                                    |
| Automatic resources     | Supported (JS requests only)           | `trackResources: true`; intercepts `XMLHttpRequest` / `fetch`, always recorded as `xhr`                                                  |
| Unhandled JS exceptions | Supported                              | `trackErrors: true`                                                                                                                      |
| Native crashes          | Supported                              | Requires `nativeCrashReportEnabled: true`                                                                                                |
| Distributed tracing     | Supported                              | Injects W3C `traceparent` and Datadog trace headers for hosts matched by `firstPartyHosts`                                               |
| Native mobile vitals    | Supported                              | CPU, memory, refresh rate, slow / frozen frames; iOS additionally reports app launch time (cold / warm)                                  |
| JS-thread frame rate    | Supported                              | React Native-specific metric, shown on the console's Performance page                                                                    |
| Hang detection          | Supported                              | ANR on Android; App Hang on iOS once `appHangThreshold` is set                                                                           |
| Long tasks              | Supported                              | Native main thread enabled by default (200 ms); JS thread disabled by default, enabled through `longTaskThresholdMs`                     |
| WebView tracking        | Supported (companion package required) | `@flashcatcloud/mobile-react-native-webview`                                                                                             |

## Current limitations

| Limitation              | Description                                                                                                                                                                                                                                              |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Session Replay          | Not supported                                                                                                                                                                                                                                            |
| Logs                    | `DdLogs` only sends logs on Android; it is a no-op on iOS and sends nothing                                                                                                                                                                              |
| Static resources        | Only requests issued from JavaScript are collected; images, fonts, and other resources loaded by the native networking stack such as `<Image>` are **not collected**, and the console does not show static-resource panels for React Native applications |
| Resource type           | Every collected request is recorded as `xhr`, regardless of the response Content-Type                                                                                                                                                                    |
| Android app launch time | No app launch vital on Android yet; iOS reports cold / warm launch time                                                                                                                                                                                  |
| Platform scope          | iOS / Android only; React Native Web is not supported                                                                                                                                                                                                    |
| Minimum version         | `0.1.1` or later is recommended; in `0.1.0` the Android release build fails when `FLASHCAT_API_KEY` is missing                                                                                                                                           |

## Symbolication compatibility

React Native error stacks may contain both JS frames and native frames, which are resolved differently:

| Frame type           | File to upload                   | Upload method                                                           |
| -------------------- | -------------------------------- | ----------------------------------------------------------------------- |
| JavaScript (Android) | Source map of the release bundle | Uploaded automatically by `flashcat-sourcemaps.gradle` during the build |
| JavaScript (iOS)     | Source map of the release bundle | `flashcat-cli sourcemaps upload-react-native --platform ios`            |
| iOS native           | dSYM                             | `flashcat-cli dsyms upload`; **always required**                        |
| Android native (JVM) | mapping file                     | Flashcat Android Gradle plugin; **only when code shrinking is enabled** |
| Android native (NDK) | NDK symbol files                 | Same plugin, when the app ships native code                             |

<Tip>
  JS source maps are matched by **service + version + bundle file name** and do not depend on the Metro debug ID plugin. Keep the SDK's `serviceName` / version consistent with the upload parameters, and make the upload part of every release build.

  Native crashes additionally require `nativeCrashReportEnabled` to be set to `true` (off by default). Both kinds of symbol files are covered in <a href="/en/rum/sdk/react-native/advanced-config">Advanced configuration</a>.
</Tip>
