Skip to content
Everframe Docs
Documentation

Install

A JS provider over a native bridge, so the screenshot and log capture are real native captures.

Updated

npm i @everframe/react-native

No manual linking. Autolinking picks up the native module; run pod install for iOS as usual.

Using Expo? Follow Expo instead: it covers the development build, the config plugin, Release builds with R8 and symbol upload.

React Native Web

The browser entry re-exports @everframe/react. It uses that package’s browser reporter, DOM screenshots, and rrweb replay, with no native module in the browser bundle. The React SDK is a dependency of the React Native package, so install only the React Native SDK. A React Native Web host also needs React DOM, as usual:

npm i @everframe/react-native

Bundlers that select the browser export can keep imports from @everframe/react-native. The explicit @everframe/react-native/web subpath provides the same API when the bundler does not select the browser condition. EverframeSensitive and useEverframeSensitiveRef use browser masking on web and native masking on iOS and Android.

Wrap your app

import { EverframeProvider } from '@everframe/react-native';

export default function App() {
  return (
    <EverframeProvider config={{ sdkKey: 'evf_live_…' }}>
      <RootNavigator />
    </EverframeProvider>
  );
}

sdkKey is your app’s SDK key (evf_live_…) from the app’s Setup tab.

Open the reporter

import { useEverframe } from '@everframe/react-native';

function ReportBugButton() {
  const { open } = useEverframe();
  return <Button title="Report a bug" onPress={() => open()} />;
}

There is no shake gesture or floating bubble by default — you wire the trigger, because a gesture that fires by accident during normal use costs you more than it gains.

On a TV there is no on-device reporter: open() presents nothing. On Android TV, link the device and use the remote gesture for quick capture; on tvOS, crashes, errors and replays are captured, and on-device capture arrives later.

Wire navigation

This is the one step that is not automatic. An RN app is a single native screen for its whole lifetime, so nothing can observe your navigator from outside. One line per screen, or one integration:

import { reactNavigationIntegration } from '@everframe/react-native/integrations/react-navigation';

See Screen tracking — skipping it is why a report would otherwise arrive with no trail.

Requirements

React Native0.84+
ArchitectureNew Architecture (Fabric). Hermes supported.
TVreact-native-tvos supported, including tvOS
Vega OSUse the separate Vega OS SDK — see below
iOS deployment target15+
Android minSdk24+

Vega OS

Do not install @everframe/react-native in a Vega OS app. Vega OS apps build on React Native 0.72, older than the 0.84 this SDK needs, and without its native module: the install fails on the peer requirement, the Vega build rejects the package, and with workarounds the app stops at launch. Vega OS apps use the separate Vega OS SDK, @everframe/vega, a preview that reports JavaScript errors only.

Verify it

File a report and check the delivery log in the dashboard. If nothing arrives, the usual causes are a wrong key, the provider not actually mounted above the code calling open(), and — on iOS — a missing pod install after upgrading.

There is no debug option on this SDK; native logs go to Xcode and Logcat.

Next