Skip to main content

Overview

Beta

This page documents Bugsee React Native SDK 7.x, which is in beta and can change between betas. The stable release is 6.x: see the 6.x documentation. Upgrading? See Migrating from 6.x to 7.x.

The Bugsee React Native SDK (@bugsee/react-native) captures what happened before a bug: a video of the screen, network traffic, console logs and the steps that led to it. It attaches that timeline to crash, error and bug reports you can replay in the Bugsee dashboard.

The package is built on the native Bugsee SDKs for Android and iOS, and gives both platforms one JavaScript API: a report from a React Native app is the same report a native app produces, with the JavaScript layer added.

What Bugsee records​

Every report carries a synchronized timeline of the session that led up to it:

  • Video: a rolling recording of the screen. Wrap anything that must never be recorded in <BugseeSecure>; see Privacy: Video.
  • Network: requests your app makes through fetch and XMLHttpRequest travel through the platform's networking stack, where the SDK records them (on Android, only with the Bugsee Gradle plugin applied; see Installation). You can add events from other stacks yourself and filter what is recorded; see Network events.
  • Console logs: console.error, warn, log, info and debug are forwarded to Bugsee and still print as before; see Console logs.
  • Breadcrumbs: system events recorded automatically (such as app lifecycle changes), plus breadcrumbs you add. The package records no automatic touch or navigation breadcrumbs for React components. Off until you turn them on; see Breadcrumbs.
  • Custom events, traces and attributes: see Custom events & traces and User & session data.
  • Performance (APM): transactions and spans you start from JavaScript.

What Bugsee detects​

The SDK turns problems into reports automatically:

  • JavaScript exceptions: Bugsee.launch() installs global handlers for uncaught errors and unhandled promise rejections. An error boundary reports render errors.
  • Native crashes: on Android, uncaught Java and Kotlin exceptions and native (NDK) crashes; on iOS, uncaught Objective-C exceptions and fatal signals, including Swift runtime traps. See Native crashes.
  • Handled errors you report yourself; see Crash & error reporting.
  • Manual reports: let users shake the device to report, or open the report dialog or upload a report from code; see Bug reporting.

How it works​

  • One package. @bugsee/react-native brings the native SDKs with it: autolinking adds the Android module, and the iOS SDK comes through the package's Package.swift when your app uses React Native's Swift Package Manager integration (0.87 and later), or through the package's podspec with CocoaPods. You don't add the native SDKs yourself: no Podfile pod, no Maven dependency.
  • Launch from JavaScript. One call, Bugsee.launch(token, options), starts the SDK; see Installation and Lifecycle & status.
  • One option namespace. The same com.bugsee.option.* keys work on both platforms, so one options object configures both; see Configuration.
  • Privacy on the device. Mask views with <BugseeSecure>, and filter or drop network, log and breadcrumb data before it is recorded; see Privacy.
  • Readable release reports. Release builds can upload JavaScript source maps, Android mapping and native symbols, and iOS dSYMs, so crash frames resolve to your source. An Expo app gets this from the config plugin; a bare app adds a few build steps; see Symbolication.
  • Automatic upload. Reports upload to the dashboard in the background.

The in-app feedback chat ships separately, as @bugsee/react-native-feedback, so apps that never show it do not depend on it; see Feedback.

Requirements​

React Native0.81 or later, with the New Architecture enabled
JavaScript engineHermes (React Native's default)
iOS15.0 or later
AndroidAPI 21 or later

The New Architecture is the default from React Native 0.76. On 0.81 it can still be turned off; this package requires it on.

Hermes is required. JavaScriptCore (Hermes off) is not supported: React Native removed JSC from core in 0.81, and the community package that replaces it, @react-native-community/javascriptcore, does not work with current React Native.

Versions​

This beta, 7.0.0-beta3, is built on these native SDKs:

PlatformNative SDKNotes
Androidcom.bugsee:bugsee-android 7.4.2Bugsee Gradle plugin 4.0.8 for release uploads and Android network capture
iOSBugsee iOS SDK 7.0.0-beta7The iOS SDK is itself a beta

@bugsee/react-native 7.x replaces react-native-bugsee 6.x. They are different packages with different APIs, not an upgrade in place: remove the old package and follow Migrating from 6.x to 7.x.

Get started​

Head to Installation for a React Native CLI app, or Expo if you use Expo prebuild. From there, Configuration covers the launch options, and Privacy covers redaction.

Found an issue, typo, or wrong statement on this page? Report it now →