Skip to content

Releases: getsentry/sentry-react-native

6.7.0-alpha.0

06 Feb 14:51
Compare
Choose a tag to compare
6.7.0-alpha.0 Pre-release
Pre-release

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://[email protected]/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

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

6.6.0

03 Feb 12:33
Compare
Choose a tag to compare

Features

  • Send Sentry React Native SDK version in the Session Replay Events on iOS (#4450)

Fixes

  • Add mechanism field to unhandled rejection errors (#4457)
  • Use proper SDK name for Session Replay tags (#4428)
  • Use makeDsn from core to extract the URL from DSN avoiding unimplemented URL.protocol errors (#4395)

Changes

  • Rename navigation.processing span to more expressive Navigation dispatch to screen A mounted/navigation cancelled (#4423)
  • Add RN SDK package to sdk.packages for Cocoa (#4381)

Internal

  • Initialize RNSentryTimeToDisplay during native module init on iOS (#4443)

Dependencies

6.5.0

03 Jan 19:49
Compare
Choose a tag to compare

Features

  • Mobile Session Replay is now generally available and ready for production use (#4384)

    To learn about privacy, custom masking or performance overhead visit the documentation.

    import * as Sentry from '@sentry/react-native';
    
    Sentry.init({
      replaysSessionSampleRate: 1.0,
      replaysOnErrorSampleRate: 1.0,
      integrations: [
        Sentry.mobileReplayIntegration({
          maskAllImages: true,
          maskAllVectors: true,
          maskAllText: true,
        }),
      ],
    });
  • Adds new captureFeedback and deprecates the captureUserFeedback API (#4320)

    import * as Sentry from "@sentry/react-native";
    
    const eventId = Sentry.lastEventId();
    
    Sentry.captureFeedback({
      name: "John Doe",
      email: "[email protected]",
      message: "Hello World!",
      associatedEventId: eventId, // optional
    });

    To learn how to attach context data to the feedback visit the documentation.

  • Export Span type from @sentry/types (#4345)

  • Add RN SDK package to sdk.packages on Android (#4380)

Fixes

  • Return lastEventId export from @sentry/core (#4315)
  • Don't log file not found errors when loading envs in sentry-expo-upload-sourcemaps (#4332)
  • Navigation Span should have no parent by default (#4326)
  • Disable HTTP Client Errors on iOS (#4347)

Changes

  • Falsy values of options.environment (empty string, undefined...) default to production
  • Deprecated _experiments.replaysSessionSampleRate and _experiments.replaysOnErrorSampleRate use replaysSessionSampleRate and replaysOnErrorSampleRate (#4384)

Dependencies

6.5.0-beta.1

10 Dec 10:11
Compare
Choose a tag to compare
6.5.0-beta.1 Pre-release
Pre-release

Features

  • Adds new captureFeedback and deprecates the captureUserFeedback API (#4320)

    import * as Sentry from "@sentry/react-native";
    
    const eventId = Sentry.lastEventId();
    
    Sentry.captureFeedback({
      name: "John Doe",
      email: "[email protected]",
      message: "Hello World!",
      associatedEventId: eventId, // optional
    }, {
      captureContext: {
        tags: { "tag-key": "tag-value" },
      },
      attachments: [
        {
          filename: 'hello.txt',
          data: 'Hello, World!',
        },
      ],
    });

Fixes

  • Return lastEventId export from @sentry/core (#4315)
  • Don't log file not found errors when loading envs in sentry-expo-upload-sourcemaps (#4332)
  • Navigation Span should have no parent by default (#4326)

Dependencies

6.4.0 (Stable)

04 Dec 10:13
Compare
Choose a tag to compare

Features

  • Add Replay Custom Masking for iOS, Android and Web (#4224, #4265, #4272, #4314)

    import * as Sentry from '@sentry/react-native';
    
    const Example = () => {
      return (
        <View>
          <Sentry.Mask>
            <Text>${"All children of Sentry.Mask will be masked."}</Text>
          </Sentry.Mask>
          <Sentry.Unmask>
            <Text>${"Only direct children of Sentry.Unmask will be unmasked."}</Text>
          </Sentry.Unmask>
        </View>
      );
    };

5.36.0

03 Dec 16:36
Compare
Choose a tag to compare

Fixes

  • Replay maskAll* set to false on iOS kept all masked (#4257, #4309)
  • browserReplayIntegration is no longer included by default on React Native Web (#4270, #4308)
  • Fix Replay redacting of RN Classes on iOS (#4243, #4309)

Dependencies

6.4.0-beta.1

26 Nov 12:59
Compare
Choose a tag to compare
6.4.0-beta.1 Pre-release
Pre-release

Features

  • Add Replay Custom Masking for iOS, Android and Web (#4224, #4265, #4272, #4314)

    import * as Sentry from '@sentry/react-native';
    
    const Example = () => {
      return (
        <View>
          <Sentry.Mask>
            <Text>${"All children of Sentry.Mask will be masked."}</Text>
          </Sentry.Mask>
          <Sentry.Unmask>
            <Text>${"Only direct children of Sentry.Unmask will be unmasked."}</Text>
          </Sentry.Unmask>
        </View>
      );
    };

6.3.0 (Stable)

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