yarn @sentry/react-native 8.0.0-alpha.0

4 hours ago

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.json in the React Native project root and set options the same as you currently have in Sentry.init in 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 useNativeInit option to automatically initialize Sentry natively before JavaScript loads, enabling capture of app start errors
    {
      "expo": {
        "plugins": [
          [
            "@sentry/react-native/expo",
            {
              "useNativeInit": true
            }
          ]
        ]
      }
    }

Changes

  • Load optionsFile into the JS bundle during Metro bundle process (#4476)
  • Add experimental version of startWithConfigureOptions for Apple platforms (#4444)
  • Add experimental version of init with optional OptionsConfiguration<SentryAndroidOptions> for Android (#4451)
  • Add initialization using sentry.options.json for Apple platforms (#4447)
  • Add initialization using sentry.options.json for Android (#4451)
  • Merge options from file with Sentry.init options in JS (#4510)

Internal

  • Extract iOS native initialization to standalone structures (#4442)
  • Extract Android native initialization to standalone structures (#4445)

Dependencies

Don't miss a new react-native release

NewReleases is sending notifications on new releases.