The same provider and hook as the React SDK, with a small native module underneath so the screenshot, logs and crash capture are real native captures. New Architecture and Hermes, react-native-tvos for TV, and companion mode so a phone or the dashboard can file the report on a television.
Three steps
1Install
npm i @everframe/react-native
cd ios && pod install
2Wrap your app above the navigator
import { EverframeProvider } from '@everframe/react-native';
export default function App() {
return (
<EverframeProvider config={{ apiKey: 'evf_live_…' }}>
<RootNavigator />
</EverframeProvider>
);
} 3Open it from your own button
import { useEverframe } from '@everframe/react-native';
function ReportBugButton() {
const { open } = useEverframe();
return <Button title="Report a bug" onPress={() => open()} />;
} What it captures
Screenshot A native capture of the screen, with the reporter's annotations always on; mask views with <EverframeSensitive>
Session replay Native wireframe timeline of what the app rendered — layout and real text, not pixels no screen-recording permission
Console console output from the JS side add the console integration
Network Not captured from JavaScript — the SDK ships no fetch / XHR instrumentation yet a gap, not a design choice; native HTTP below the bridge is the native SDKs' job
Screens One line per navigator — a react-navigation integration is included not automatic: an RN app is one native screen for its whole life
Focused component Not captured on React Native today — the screenshot and the screen trail carry the context
Crash reports Uncaught JS errors through ErrorUtils on both platforms, and native crashes below the bridge on Android on by default; no unhandled-rejection handler on RN
Device and app OS, model, screen, locale, timezone, app version
What you wire yourself
- The trigger. No shake gesture, no floating bubble; your own button calls open().
- Screen names. Add the react-navigation integration, or useEverframeScreen() for any other navigator.
- Sensitive views. Wrap them in <EverframeSensitive> and the native side masks that region on both renderers (view tags are resolved on Paper and Fabric).
- On TV, nothing. The provider shows the pairing badge and the PIN card; a phone or the dashboard files the report.
When to pick it
Any React Native app on iOS or Android, and React Native TV apps — react-native-tvos, and Vega OS. The JS API is the React SDK’s; the captures are native, so a screenshot is what the OS drew and a crash below the bridge still files a report.
The one thing that is not automatic
Screens. A React Native app is a single native screen for its whole lifetime, so the SDK cannot see navigation on its own. The included react-navigation integration records every transition; other navigators mark screens with useEverframeScreen(). Do this first: the trail of screens is the context a TV report needs most.
On a television
There is no reporter to drive with the remote. The provider shows the pairing badge and, when a team member connects from the dashboard, the four-digit PIN card. Everything else — the QR, the phone reporter, the capture and the signature — is the companion flow described on the tvOS and Android TV pages.
Questions
Does it support the New Architecture?
Yes. Fabric and Hermes on React Native 0.84 and later, including react-native-tvos 0.85 and later. The native bridge resolves view tags on both Paper and Fabric.
How does reporting work on a TV?
Through the companion. The TV shows a QR and a short code; a tester scans it with any phone, or a team member connects from the dashboard and types the PIN the TV shows. The TV captures its own screen and logs and assembles the report.
Are promise rejections reported?
Not on React Native. Only ErrorUtils is installed on the JS side, so an unhandled rejection does not become a report; uncaught errors and native crashes do.