Skip to content

Releases: getsentry/sentry-react-native

6.11.0-beta.0

27 Mar 10:27
Compare
Choose a tag to compare
6.11.0-beta.0 Pre-release
Pre-release

Features

  • Improve Warm App Start reporting on Android (#4641, #4695)

  • Add createTimeToInitialDisplay({useFocusEffect}) and createTimeToFullDisplay({useFocusEffect}) to allow record full display on screen focus (#4665)

  • Add support for measuring Time to Initial Display for already seen routes (#4661)

    • Introduce enableTimeToInitialDisplayForPreloadedRoutes option to the React Navigation integration.
    Sentry.reactNavigationIntegration({
      enableTimeToInitialDisplayForPreloadedRoutes: true,
    });
  • Add useDispatchedActionData option to the React Navigation integration to filter out navigation actions that should not create spans (#4684)

    • For example PRELOAD, SET_PARAMS, TOGGLE_DRAWER and others.
    Sentry.reactNavigationIntegration({
      useDispatchedActionData: true,
    });

Fixes

  • Equalize TTID and TTFD duration when TTFD manual API is called and resolved before auto TTID (#4680)
  • Avoid loading Sentry native components in Expo Go (#4696)

Changes

  • Change gradle.projectsEvaluated to project.afterEvaluate in the Sentry Gradle Plugin to fix tasks not being created when using --configure-on-demand (#4687)
  • Remove SENTRY_FORCE_FOREGROUND from Xcode Scripts as the underlying --force-foreground Sentry CLI is no-op since v2.37.0 (#4689)
  • TTID and TTFD use native getters instead od events to pass timestamps to the JS layer (#4669, #4681)

6.10.0

25 Mar 18:01
Compare
Choose a tag to compare

Features

  • Add thread information to spans (#4579)

  • Exposed getDataFromUri as a public API to retrieve data from a URI (#4638)

  • Add enableExperimentalViewRenderer to enable up to 5x times more performance in Session Replay on iOS (#4660)

    import * as Sentry from '@sentry/react-native';
    
    Sentry.init({
      integrations: [
        Sentry.mobileReplayIntegration({
          enableExperimentalViewRenderer: true,
        }),
      ],
    });

Fixes

  • Considers the SENTRY_DISABLE_AUTO_UPLOAD and SENTRY_DISABLE_NATIVE_DEBUG_UPLOAD environment variables in the configuration of the Sentry Android Gradle Plugin for Expo plugin (#4583)
  • Handle non-string category in getCurrentScreen on iOS (#4629)
  • Use route name instead of route key for current route tracking (#4650)
    • Using key caused user interaction transaction names to contain route hash in the name.

Dependencies

6.9.1

11 Mar 17:03
Compare
Choose a tag to compare

Fixes

  • Fixes missing Cold Start measurements by bumping the Android SDK version to v7.22.1 (#4643)
  • Attach App Start spans to the first created not the first processed root span (#4618, #4644)

Dependencies

6.9.0

24 Feb 14:39
Compare
Choose a tag to compare

Warning

This release contains an issue where Cold starts can be incorrectly reported as Warm starts on Android. We recommend staying on version 6.4.0 if you use this feature on Android.
See issue #4598 for more details.

Features

  • User Feedback Widget Beta (#4435)

    To collect user feedback from inside your application call Sentry.showFeedbackWidget().

    import Sentry from "@sentry/react-native";
    
    Sentry.showFeedbackWidget();
    
    Sentry.wrap(RootComponent);

    To change the default options add Sentry.feedbackIntegration().

    import Sentry from "@sentry/react-native";
    import * as ImagePicker from 'expo-image-picker';
    
    Sentry.init({
      integrations: [
        Sentry.feedbackIntegration({
          imagePicker: ImagePicker,
          showName: true,
          showEmail: true,
        }),
      ],
    });

    To learn more about the available configuration options visit the documentation.

6.8.0

20 Feb 14:29
Compare
Choose a tag to compare

Warning

This release contains an issue where Cold starts can be incorrectly reported as Warm starts on Android. We recommend staying on version 6.4.0 if you use this feature on Android.
See issue #4598 for more details.

Features

  • Adds Sentry Android Gradle Plugin as an experimental Expo plugin feature (#4440)

    To enable the plugin add the enableAndroidGradlePlugin in the @sentry/react-native/expo of the Expo application configuration.

    "plugins": [
      [
        "@sentry/react-native/expo",
        {
          "experimental_android": {
            "enableAndroidGradlePlugin": true,
          }
        }
      ],

    To learn more about the available configuration options visit the documentation.

Fixes

  • Remove error: prefix from collect-modules.sh to avoid failing iOS builds (#4570)
  • Sentry Module Collection Script Fails with Spaces in Node Path on iOS (#4559)
  • Various crashes and issues of Session Replay on Android. See the Android SDK version bump for more details. (#4529)
  • Sentry.setUser(null) doesn't crash on iOS with RN 0.77.1 (#4567)
  • Avoid importing tslib in Sentry Metro Plugin (#4573)

Dependencies

6.7.0

11 Feb 09:36
Compare
Choose a tag to compare

Warning

This release contains an issue where Cold starts can be incorrectly reported as Warm starts on Android. We recommend staying on version 6.4.0 if you use this feature on Android.
See issue #4598 for more details.

Features

  • Add ignoredComponents option to annotateReactComponents to exclude specific components from React component annotations (#4517)

    // metro.config.js
    // for React Native
    const config = withSentryConfig(mergedConfig, {
      annotateReactComponents: {
        ignoredComponents: ['MyCustomComponent']
      }
    });
    
    // for Expo
    const config = getSentryExpoConfig(__dirname, {
      annotateReactComponents: {
        ignoredComponents: ['MyCustomComponent'],
      },
    });

Dependencies

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

Warning

This release contains an issue where Cold starts can be incorrectly reported as Warm starts on Android. We recommend staying on version 6.4.0 if you use this feature on Android.
See issue #4598 for more details.

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

Warning

This release contains an issue where Cold starts can be incorrectly reported as Warm starts on Android. We recommend staying on version 6.4.0 if you use this feature on Android.
See issue #4598 for more details.

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