sentry-react-native-setup

Verified·Scanned 2/18/2026

Setup Sentry in React Native using the wizard CLI. Use when asked to add Sentry to React Native, install @sentry/react-native, or configure error monitoring for React Native or Expo apps.

by getsentry·v2b39e26·3.7 KB·77 installs
Scanned from main at 2b39e26 · Transparency log ↗
$ vett add getsentry/sentry-agent-skills/sentry-react-native-setup

Sentry React Native Setup

Install and configure Sentry in React Native projects using the official wizard CLI.

Invoke This Skill When

  • User asks to "add Sentry to React Native" or "install Sentry" in a React Native app
  • User wants error monitoring, logging, or tracing in React Native or Expo
  • User mentions "@sentry/react-native" or mobile error tracking

Wizard Setup (Recommended)

npx @sentry/wizard@latest -i reactNative

What the Wizard Does

TaskDescription
Install SDKAdds @sentry/react-native package
Metro configAdds @sentry/react-native/metro to metro.config.js
Expo configAdds @sentry/react-native/expo to app.json
Android setupEnables Gradle build step for source maps
iOS setupWraps Xcode build phase, adds debug symbol upload
Pod installRuns pod install for iOS
CredentialsStores in ios/sentry.properties, android/sentry.properties, .env.local
Init codeConfigures Sentry in App.tsx or _layout.tsx

Manual Configuration

If not using wizard, add to your app entry point:

import * as Sentry from "@sentry/react-native";

Sentry.init({
  dsn: "YOUR_SENTRY_DSN",
  sendDefaultPii: true,
  
  // Tracing
  tracesSampleRate: 1.0,
  
  // Logs
  enableLogs: true,
  
  // Profiling
  profilesSampleRate: 1.0,
  
  // Session Replay
  replaysOnErrorSampleRate: 1.0,
  replaysSessionSampleRate: 0.1,
  integrations: [Sentry.mobileReplayIntegration()],
});

Wrap Your App

export default Sentry.wrap(App);

Expo Projects

For Expo, follow the Expo-specific setup:

npx @sentry/wizard@latest -i reactNative

Works for both managed and bare Expo projects.

Configuration Options

OptionDescriptionDefault
dsnSentry DSNRequired
sendDefaultPiiInclude user datafalse
tracesSampleRate% of transactions traced0
profilesSampleRate% of traces profiled0
enableLogsSend logs to Sentryfalse
replaysOnErrorSampleRate% of error sessions replayed0
replaysSessionSampleRate% of all sessions replayed0

Files Created/Modified

FilePurpose
App.js / _layout.tsxSentry initialization
metro.config.jsMetro bundler config
app.jsonExpo config (if Expo)
ios/sentry.propertiesiOS build credentials
android/sentry.propertiesAndroid build credentials
.env.localEnvironment variables

Environment Variables

SENTRY_DSN=https://xxx@o123.ingest.sentry.io/456
SENTRY_AUTH_TOKEN=sntrys_xxx
SENTRY_ORG=my-org
SENTRY_PROJECT=my-project

Verification

Add test error:

throw new Error("My first Sentry error!");

Or use a test button:

<Button title="Test Sentry" onPress={() => { throw new Error("Test"); }} />

Source Maps

Source maps are automatically uploaded during build when wizard configures:

  • Android: Gradle plugin
  • iOS: Xcode build phase

Troubleshooting

IssueSolution
Wizard failsTry manual setup, check Node version
iOS build failsRun cd ios && pod install
Source maps not uploadingVerify sentry.properties files have auth token
Expo errorsEnsure using compatible Expo SDK version
App not wrappedAdd export default Sentry.wrap(App)