Upgrading from 7.x to 8.0
Version 8 of the Sentry React Native SDK updates the underlying native SDKs (Cocoa v9, CLI v3, Android Gradle Plugin v6) which introduce breaking changes in minimum version requirements and build tooling.
See our migration docs for more information.
Breaking Changes
Minimum Version Requirements
-
iOS/macOS/tvOS: (#5356)
- iOS 15.0+ (previously 11.0+)
- macOS 10.14+ (previously 10.13+)
- tvOS 15.0+ (previously 11.0+)
-
Android: (#5578)
- Sentry Android Gradle Plugin 6.0.0 (previously 5.x)
- Android Gradle Plugin 7.4.0+ (previously 7.3.0+)
- Kotlin 1.8+
-
Sentry Self-Hosted: (#5523)
- Sentry CLI v3 requires self-hosted 25.11.1+ (previously 25.2.0)
Features
-
Capture App Start errors and crashes by initializing Sentry from
sentry.options.json(#4472)Create
sentry.options.jsonin the React Native project root and set options the same as you currently have inSentry.initin JS.{ "dsn": "https://key@example.io/value", }Initialize Sentry on the native layers by newly provided native methods.
import io.sentry.react.RNSentrySDK class MainApplication : Application(), ReactApplication { override fun onCreate() { super.onCreate() RNSentrySDK.init(this) } }
#import <RNSentry/RNSentry.h> @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [RNSentrySDK start]; return [super application:application didFinishLaunchingWithOptions:launchOptions]; } @end
-
Add RNSentrySDK APIs support to @sentry/react-native/expo plugin (#4633)
- Adds
useNativeInitoption to automatically initialize Sentry natively before JavaScript loads, enabling capture of app start errors
{ "expo": { "plugins": [ [ "@sentry/react-native/expo", { "useNativeInit": true } ] ] } } - Adds
Changes
- Load
optionsFileinto the JS bundle during Metro bundle process (#4476) - Add experimental version of
startWithConfigureOptionsfor Apple platforms (#4444) - Add experimental version of
initwith optionalOptionsConfiguration<SentryAndroidOptions>for Android (#4451) - Add initialization using
sentry.options.jsonfor Apple platforms (#4447) - Add initialization using
sentry.options.jsonfor Android (#4451) - Merge options from file with
Sentry.initoptions in JS (#4510)
Internal
- Extract iOS native initialization to standalone structures (#4442)
- Extract Android native initialization to standalone structures (#4445)