Skip to content

Releases: getsentry/sentry-react-native

6.3.0

25 Nov 16:19
Compare
Choose a tag to compare

Features

  • Add support for .env.sentry-build-plugin (#4281)

    Don't commit the file to your repository. Use it to set your Sentry Auth Token.

    SENTRY_AUTH_TOKEN=your_token_here
    
  • Add Sentry Metro Server Source Context middleware (#4287)

    This enables the SDK to add source context to locally symbolicated events using the Metro Development Server.
    The middleware can be disabled in metro.config.js using the enableSourceContextInDevelopment option.

    // Expo
    const { getSentryExpoConfig } = require('@sentry/react-native/metro');
    const config = getSentryExpoConfig(__dirname, {
      enableSourceContextInDevelopment: false,
    });
    
    // React Native
    const { withSentryConfig } = require('@sentry/react-native/metro');
    module.exports = withSentryConfig(config, {
      enableSourceContextInDevelopment: false,
    });

Fixes

  • Prevents exception capture context from being overwritten by native scope sync (#4124)
  • Excludes Dev Server and Sentry Dsn requests from Breadcrumbs (#4240)
  • Skips development server spans (#4271)
  • Execute DebugSymbolicator after RewriteFrames to avoid overwrites by default (#4285)
    • If custom RewriteFrames is provided the order changes
  • browserReplayIntegration is no longer included by default on React Native Web (#4270)
  • Remove .sentry tmp directory and use environmental variables instead to save default Babel transformer path (#4298)
    • This resolves concurrency issues when running multiple bundle processes

Dependencies

6.3.0-beta.2

20 Nov 17:27
Compare
Choose a tag to compare
6.3.0-beta.2 Pre-release
Pre-release

Dependencies

6.3.0-beta.1

19 Nov 15:23
Compare
Choose a tag to compare
6.3.0-beta.1 Pre-release
Pre-release

Features

  • Add support for .env.sentry-build-plugin (#4281)

    Don't commit the file to your repository. Use it to set your Sentry Auth Token.

    SENTRY_AUTH_TOKEN=your_token_here
    
  • Add Sentry Metro Server Source Context middleware (#4287)

    This enables the SDK to add source context to locally symbolicated events using the Metro Development Server.
    The middleware can be disabled in metro.config.js using the enableSourceContextInDevelopment option.

    // Expo
    const { getSentryExpoConfig } = require('@sentry/react-native/metro');
    const config = getSentryExpoConfig(__dirname, {
      enableSourceContextInDevelopment: false,
    });
    
    // React Native
    const { withSentryConfig } = require('@sentry/react-native/metro');
    module.exports = withSentryConfig(config, {
      enableSourceContextInDevelopment: false,
    });

Fixes

  • Prevents exception capture context from being overwritten by native scope sync (#4124)
  • Excludes Dev Server and Sentry Dsn requests from Breadcrumbs (#4240)
  • Skips development server spans (#4271)
  • Execute DebugSymbolicator after RewriteFrames to avoid overwrites by default (#4285)
    • If custom RewriteFrames is provided the order changes
  • browserReplayIntegration is no longer included by default on React Native Web (#4270)

Dependencies

6.2.0

18 Nov 11:17
Compare
Choose a tag to compare

Features

  • Enables Spotlight in Android and iOS SDKs (#4211)

  • Add env flag SENTRY_DISABLE_NATIVE_DEBUG_UPLOAD to allow disabling the debug file upload (#4223)

    How to use in Android project? It works by default, just set export SENTRY_DISABLE_NATIVE_DEBUG_UPLOAD=true in your build environment. For Sentry Android Gradle Plugin add the following to your android/app/build.gradle.

    apply from: "../../../sentry.gradle"
    
    sentry {
        autoUploadProguardMapping = shouldSentryAutoUpload()
        uploadNativeSymbols = shouldSentryAutoUpload()
    }

    How to use in Xcode? Make sure you are using scripts/sentry-xcode.sh and scripts/sentry-xcode-debug-files.sh in your
    build phases. And add the following to your ios/.xcode.env.local file.

    export SENTRY_DISABLE_NATIVE_DEBUG_UPLOAD=true

Fixes

  • Ignore JavascriptException to filter out obfuscated duplicate JS Errors on Android (#4232)
  • Skips ignoring require cycle logs for RN 0.70 or newer (#4214)
  • Enhanced accuracy of time-to-display spans. (#4189)
  • Fix Replay redacting of RN Classes on iOS (#4243)
  • Speed up getBinaryImages for finishing transactions and capturing events (#4194)
  • Remove duplicate HTTP Client Errors on iOS (#4250)
  • Replay maskAll* set to false on iOS kept all masked (#4257)
  • Add missing getRootSpan, withActiveSpan and suppressTracing exports from @sentry/core, and SeverityLevel export from @sentry/types (#4254, #4260)

Dependencies

5.35.0

05 Nov 17:42
1d15d81
Compare
Choose a tag to compare

Fixes

  • Enhanced accuracy of time-to-display spans. (#4042)
  • TimeToDisplay correctly warns about not supporting the new React Native architecture (#4160)
  • Native Wrapper method setContext ensures only values convertible to NativeMap are passed (#4168)
  • Native Wrapper method setExtra ensures only stringified values are passed (#4168)
  • setContext('key', null) removes the key value also from platform context (#4168)

6.1.0 (Stable)

21 Oct 15:07
Compare
Choose a tag to compare

Dependencies

5.35.0-beta.0

21 Oct 13:21
Compare
Choose a tag to compare
5.35.0-beta.0 Pre-release
Pre-release

Fixes

  • Enhanced accuracy of time-to-display spans. (#4042)
  • TimeToDisplay correctly warns about not supporting the new React Native architecture (#4160)
  • Native Wrapper method setContext ensures only values convertible to NativeMap are passed (#4168)
  • Native Wrapper method setExtra ensures only stringified values are passed (#4168)
  • setContext('key', null) removes the key value also from platform context (#4168)

6.0.0

16 Oct 08:41
Compare
Choose a tag to compare

This is a new major version 6.0.0 of the Sentry React Native SDK.
To upgrade from the SDK version 5, please follow our migration guide.

Major Changes

  • React Native Tracing options were moved to the root options

    import * as Sentry from '@sentry/react-native'
    
    Sentry.init({
      tracesSampleRate: 1.0,
      enableAppStartTracking: true, // default true
      enableNativeFramesTracking: true, // default true
      enableStallTracking: true, // default true
      enableUserInteractionTracing: true, // default false
      integrations: [
        Sentry.reactNativeTracingIntegration({
          beforeStartSpan: (startSpanOptions) => {
            startSpanOptions.name = 'New Name';
            return startSpanOptions;
          },
        }),
        Sentry.appStartIntegration({
          standalone: false, // default false
        }),
      ],
    });
  • New React Navigation Integration interface (#4003)

    import * as Sentry from '@sentry/react-native';
    import { NavigationContainer } from '@react-navigation/native';
    
    const reactNavigationIntegration = Sentry.reactNavigationIntegration();
    
    Sentry.init({
      tracesSampleRate: 1.0,
      integrations: [reactNavigationIntegration],
    });
    
    function RootComponent() {
      const navigation = React.useRef(null);
    
      return <NavigationContainer ref={navigation}
        onReady={() => {
          reactNavigationIntegration.registerNavigationContainer(navigation);
        }}>
      </NavigationContainer>;
    }
  • Removed beforeNavigate use beforeStartSpan instead (#3998)

    • beforeStartSpan is executed before the span start, compared to beforeNavigate which was executed before the navigation ended (after the span was created)

Other Changes

  • Add sentry.origin to SDK spans to indicated if spans are created by a part of the SDK or manually (#4066)

  • Xcode Debug Files upload completes in foreground by default (#4090)

  • Set parentSpanIsAlwaysRootSpan to true to make parent of network requests predictable (#4084)

  • Remove deprecated enableSpotlight and spotlightSidecarUrl (#4086)

  • tracePropagationTargets defaults to all targets on mobile and same origin on the web (#4083)

  • Move _experiments.profilesSampleRate to profilesSampleRate root options object #3851)

  • Native Frames uses spanId to attach frames replacing traceId (#4030)

  • Removed deprecated ReactNativeTracing option idleTimeout use idleTimeoutMs instead (#3998)

  • Removed deprecated ReactNativeTracing option maxTransactionDuration use finalTimeoutMs instead (#3998)

  • New Native Frames Integration (#3996)

  • New Stall Tracking Integration (#3997)

  • New User Interaction Tracing Integration (#3999)

  • New App Start Integration (#3852)

    • By default app start spans are attached to the first created transaction.
    • Standalone mode creates single root span (transaction) including only app start data.
  • New React Native Navigation Integration interface (#4003)

    import * as Sentry from '@sentry/react-native';
    import { Navigation } from 'react-native-navigation';
    
    Sentry.init({
      tracesSampleRate: 1.0,
      integrations: [
        Sentry.reactNativeNavigationIntegration({ navigation: Navigation })
      ],
    });

Fixes

  • TimeToDisplay correctly warns about not supporting the new React Native architecture (#4160)
  • Native Wrapper method setContext ensures only values convertible to NativeMap are passed (#4168)
  • Native Wrapper method setExtra ensures only stringified values are passed (#4168)
  • setContext('key', null) removes the key value also from platform context (#4168)
  • Upload source maps for all splits on Android (not only the last found) (#4125)

Dependencies

5.34.0

15 Oct 07:53
Compare
Choose a tag to compare

Fixes

  • Handles error with string cause (#4163)
  • Use appLaunchedInForeground to determine invalid app start data on Android (#4146)
  • Upload source maps for all release variants on Android (not only the last found) (#4125)

Dependencies

6.0.0-rc.1

08 Oct 10:36
Compare
Choose a tag to compare
6.0.0-rc.1 Pre-release
Pre-release

Fixes

  • Upload source maps for all splits on Android (not only the last found) (#4125)

Dependencies