Skip to content

Latest commit

 

History

History
3421 lines (2259 loc) · 142 KB

CHANGELOG.md

File metadata and controls

3421 lines (2259 loc) · 142 KB

Changelog

5.35.0

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)

5.35.0-beta.0

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)

5.34.0

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

5.33.2

Fixes

  • Emits Bridge log only in debug mode (#4145)
  • Remove unused spanName from TimeToDisplayProps (#4150)

Dependencies

5.33.1

Internal

This is re-release of 5.33.0 with no changes to ensure that 5.33.1 is tagged as latest release on npmjs.com

5.33.0

Features

  • Add an option to disable native (iOS and Android) profiling for the HermesProfiling integration (#4094)

    To disable native profilers add the hermesProfilingIntegration.

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

5.32.0

Features

  • Exclude Sentry Web Replay by default, reducing the code in 130KB. (#4006)

    • You can keep Sentry Web Replay by setting includeWebReplay to true in your metro config as shown in the snippet:
    // For Expo
    const { getSentryExpoConfig } = require("@sentry/react-native/metro");
    const config = getSentryExpoConfig(__dirname, { includeWebReplay: true });
    
    // For RN
    const { getDefaultConfig } = require('@react-native/metro-config');
    const { withSentryConfig } = require('@sentry/react-native/metro');
    module.exports = withSentryConfig(getDefaultConfig(__dirname), { includeWebReplay: true });

Changes

  • Add Android Logger when new frame event is not emitted (#4081)
  • React Native Tracing Deprecations (#4073)
    • new ReactNativeTracing to reactNativeTracingIntegration()
    • new ReactNavigationInstrumentation to reactNavigationIntegration().
    • new ReactNativeNavigationInstrumentation to reactNativeNavigationIntegration().
    • ReactNavigationV4Instrumentation won't be supported in the next major SDK version, upgrade to react-navigation@5 or newer.
    • RoutingInstrumentation and RoutingInstrumentationInstance replace by Integration interface from @sentry/types.
    • enableAppStartTracking, enableNativeFramesTracking, enableStallTracking, enableUserInteractionTracing moved to Sentry.init({}) root options.

Dependencies

5.31.1

Fixes

  • Sentry CLI passes thru recursive node calls during source maps auto upload from Xcode ((#3843))
    • This fixes React Native 0.75 Xcode auto upload failures

Dependencies

5.31.0

Features

  • Add Sentry.crashedLastRun() (#4014)

Fixes

  • Use install_modules_dependencies for React iOS dependencies (#4040)
  • Replay.maskAllText masks RCTParagraphComponentView (#4048)

Dependencies

5.30.0

Features

  • Add spotlight option (#4023)
    • Deprecating enableSpotlight and spotlightSidecarUrl

Dependencies

5.29.0

Features

  • TimeToInitialDisplay and TimeToFullDisplay start the time to display spans on mount (#4020)

Fixes

  • fix(ttid): End and measure TTID regardless current active span (#4019)
    • Fixes possible missing TTID measurements and spans
  • Fix crash when passing array as data to Sentry.addBreadcrumb({ data: [] }) (#4021)
    • The expected data type is plain JS object, otherwise the data might be lost.
  • Fix requireNativeComponent missing in react-native-web (#3958)

Dependencies

5.28.0

Fixes

  • Support [email protected] new sourceMapString export (#4004)
  • Sentry.captureMessage stack trace is in event.exception (moved from event.threads) (#3635, #3988)
    • To revert to the old behavior (causing the stack to be unsymbolicated) use useThreadsForMessageStack option

Dependencies

5.27.0

Fixes

  • Pass sampleRate option to the Android SDK (#3979)
  • Drop app start data older than one minute (#3974)
  • Use Platform.constants.reactNativeVersion instead of react-native internal export (#3949)

Dependencies

5.26.0

Features

  • Session Replay Public Beta (#3830)

    To enable Replay use the replaysSessionSampleRate or replaysOnErrorSampleRate options.

    import * as Sentry from '@sentry/react-native';
    
    Sentry.init({
      _experiments: {
        replaysSessionSampleRate: 1.0,
        replaysOnErrorSampleRate: 1.0,
      },
    });

    To add React Component Names use annotateReactComponents in metro.config.js.

    // For Expo
    const { getSentryExpoConfig } = require("@sentry/react-native/metro");
    const config = getSentryExpoConfig(__dirname, { annotateReactComponents: true });
    
    // For RN
    const { getDefaultConfig } = require('@react-native/metro-config');
    const { withSentryConfig } = require('@sentry/react-native/metro');
    module.exports = withSentryConfig(getDefaultConfig(__dirname), { annotateReactComponents: true });

    To change default redaction behavior add the mobileReplayIntegration.

    import * as Sentry from '@sentry/react-native';
    
    Sentry.init({
      _experiments: {
        replaysSessionSampleRate: 1.0,
        replaysOnErrorSampleRate: 1.0,
      },
      integrations: [
        Sentry.mobileReplayIntegration({
          maskAllImages: true,
          maskAllVectors: true,
          maskAllText: true,
        }),
      ],
    });

    To learn more visit Sentry's Mobile Session Replay documentation page.

Dependencies

5.25.0

Features

  • Improved Touch Event Breadcrumb components structure (#3899)
  • Set currentScreen on native scope (#3927)

Fixes

  • error.cause chain is locally symbolicated in development builds (#3920)
  • sentry-expo-upload-sourcemaps no longer requires Sentry url when uploading sourcemaps to sentry.io (#3915)
  • Flavor aware Android builds use SENTRY_AUTH_TOKEN env as fallback when token not found in sentry-flavor-type.properties. (#3917)
  • mechanism.handled:false should crash current session (#3900)

Dependencies

5.25.0-alpha.2

Features

Fixes

  • sentry-expo-upload-sourcemaps no longer requires Sentry url when uploading sourcemaps to sentry.io (#3915)

Dependencies

Access to Mobile Replay is limited to early access orgs on Sentry. If you're interested, sign up for the waitlist

5.24.2

Features

  • Add an option to disable native (iOS and Android) profiling for the HermesProfiling integration (#4094)

    To disable native profilers add the hermesProfilingIntegration.

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

5.24.1

Fixes

  • App Start Native Frames can start with zeroed values (#3881)

Dependencies

5.24.0

Features

  • Add native application start spans (#3855, #3884)
    • This doesn't change the app start measurement length, but add child spans (more detail) into the existing app start span
  • Added JS Bundle Execution start information to the application start measurements (#3857)

Fixes

  • Add more expressive debug logs to Native Frames Integration (#3880)
  • Add missing tracing integrations when using client.init() (#3882)
  • Ensure sentry-cli doesn't trigger Xcode error: prefix (#3887)
    • Fixes --allow-failure failing Xcode builds

Dependencies

5.23.1

Fixes

  • Fix failing iOS builds due to missing SentryLevel (#3854)
  • Add missing logs to dropped App Start spans (#3861)
  • Make all options of startTimeToInitialDisplaySpan optional (#3867)
  • Add Span IDs to Time to Display debug logs (#3868)
  • Use TTID end timestamp when TTFD should be updated with an earlier timestamp (#3869)

5.23.0

This release does not build on iOS. Please use 5.23.1 or newer.

Features

  • Functional integrations (#3814)

    Instead of installing @sentry/integrations and creating integrations using the new keyword, you can use direct imports of the functional integrations.

    // Before
    import * as Sentry from '@sentry/react-native';
    import { HttpClient } from '@sentry/integrations';
    
    Sentry.init({
      integrations: [
        new Sentry.BrowserIntegrations.Dedupe(),
        new Sentry.Integration.Screenshot(),
        new HttpClient(),
      ],
    });
    
    // After
    import * as Sentry from '@sentry/react-native';
    
    Sentry.init({
      integrations: [
        Sentry.dedupeIntegration(),
        Sentry.screenshotIntegration(),
        Sentry.httpClientIntegration(),
      ],
    });

    Note that the Sentry.BrowserIntegrations, Sentry.Integration and the Class style integrations will be removed in the next major version of the SDK.

Fixes

  • Remove unused rnpm config (#3811)

Dependencies

5.23.0-alpha.1

Fixes

  • Pass replaysSessionSampleRate option to Android (#3714)

Access to Mobile Replay is limited to early access orgs on Sentry. If you're interested, sign up for the waitlist

5.22.3

Fixes

  • Missing RNSentryOnDrawReporterView on iOS (#3832)

Dependencies

5.22.2

Fixes

  • Remove tunnel from SDK Options (#3787)
  • Fix Apple non UIKit builds (#3784)

Dependencies

5.22.1

Dependencies

5.23.0-alpha.0

Features

  • Mobile Session Replay Alpha (#3714)

    To enable Replay for React Native on mobile and web add the following options.

    Sentry.init({
      _experiments: {
        replaysSessionSampleRate: 1.0,
        replaysOnErrorSampleRate: 1.0,
      },
    });

    To change the default Mobile Replay options add the mobileReplayIntegration.

    Sentry.init({
      _experiments: {
        replaysSessionSampleRate: 1.0,
        replaysOnErrorSampleRate: 1.0,
      },
      integrations: [
        Sentry.mobileReplayIntegration({
          maskAllText: true,
          maskAllImages: true,
        }),
      ],
    });

    Access is limited to early access orgs on Sentry. If you're interested, sign up for the waitlist

Dependencies

5.22.0

Features

  • Updated metric normalization from @sentry/core (#11519)
  • Metric rate limiting from sentry-cocoa and sentry-android

Dependencies

5.21.0

Features

  • Add getDefaultConfig option to getSentryExpoConfig (#3690)
  • Add beforeScreenshot option to ReactNativeOptions (#3715)

Fixes

  • Do not enable NativeFramesTracking when native is not available (#3705)
  • Do not initialize the SDK during expo-router static routes generation (#3730)
  • Cancel spans in background doesn't crash in environments without AppState (#3727)
  • Fix missing Stall measurements when using new .end() span API (#3737)
  • Change TimeToDisplay unsupported log from error to warning level. (#3699)

Dependencies

5.20.0

Features

  • Automatic tracing of time to initial display for react-navigation (#3588)

    When enabled the instrumentation will create TTID spans and measurements. The TTID timestamp represent moment when the react-navigation screen was rendered by the native code.

    const routingInstrumentation = new Sentry.ReactNavigationInstrumentation({
      enableTimeToInitialDisplay: true,
    });
    
    Sentry.init({
      integrations: [new Sentry.ReactNativeTracing({routingInstrumentation})],
    });
  • Tracing of full display using manual API (#3654)

    In combination with the react-navigation automatic instrumentation you can record when the application screen is fully rendered.

    For more examples and manual time to initial display see the documentation.

    function Example() {
      const [loaded] = React.useState(false);
    
      return <View>
        <Sentry.TimeToFullDisplay record={loaded}>
          <Text>Example content</Text>
        </Sentry.TimeToFullDisplay>
      </View>;
    }

Fixes

  • Allow custom sentryUrl for Expo updates source maps uploads (#3664)
  • Missing Mobile Vitals (slow, frozen frames) when ActiveSpan (Transaction) is trimmed at the end (#3684)

5.19.3

Fixes

  • Multiple Debug IDs can be loaded into the global polyfill (#3660)
    • This fixes a symbolication issue with Expo on the web with enabled bundle splitting.

Dependencies

5.19.2

Fixes

  • expo-upload-sourcemaps now works on Windows (#3643)
  • Option enabled: false ensures no events are sent (#3606)
  • Ignore JSON response when retrieving source context from local Expo Dev Server (#3611)
  • Upload native debug files only for non-debug builds (#3649)
  • TurboModuleRegistry should not be imported in web applications (#3610)

Dependencies

5.19.1

Fixes

  • Don't add Expo Plugin option authToken to application bundle (#3630)
    • Expo plugin configurations are generelly stored in plain text, and are also automatically added to built app bundles, and are therefore considered insecure.
    • You should not set the auth token in the plugin config except for local testing. Instead, use the SENTRY_AUTH_TOKEN env variable, as pointed out in our docs.
    • In addition to showing a warning, we are now actively removing an authToken from the plugin config if it was set.
    • If you had set the auth token in the plugin config previously, and built and published an app with that config, you should rotate your token.
  • Reduce waning messages spam when a property in Expo plugin configuration is missing (#3631)
  • Add concrete error messages for RN bundle build phase patch (#3626)

5.19.0

This release contains upgrade of sentry-android dependency to major version 7. There are no breaking changes in the JS API. If you are using the Android API please check the migration guide.

Features

  • Add Android profiles to React Native Profiling (#3397)

  • Add Sentry.metrics (#3590)

    To learn more, see the Set Up Metrics guide.

    import * as Sentry from '@sentry/react-native';
    
    Sentry.init({
      dsn: '___DSN___',
      integrations: [
        Sentry.metrics.metricsAggregatorIntegration(),
      ],
    });
    
    Sentry.metrics.increment("button_click", 1, {
      tags: { system: "iOS", app_version: "1.0.0" },
    });

Fixes

  • Upload Debug Symbols Build Phase continues when node not found in WITH_ENVIRONMENT (#3573)
  • Fix proguardUuid loading on Android (#3591)

Dependencies

5.18.0

Features

  • Add @spotlightjs/spotlight support (#3550)

    Download the Spotlight desktop application and add the integration to your Sentry.init.

    import * as Sentry from '@sentry/react-native';
    
    Sentry.init({
      dsn: '___DSN___',
      enableSpotlight: __DEV__,
    });
  • Only upload Expo artifact if source map exists (#3568)

  • Read .env file in sentry-expo-upload-sourcemaps (#3571)

Fixes

  • Prevent pod install crash when visionos is not present (#3548)
  • Fetch Organization slug from @sentry/react-native/expo config when uploading artifacts (#3557)
  • Remove 404 Http Client Errors reports for Metro Dev Server Requests (#3553)
  • Stop tracing Spotlight Sidecar network request in JS (#3559)

5.17.0

Features

  • New Sentry Metro configuration function withSentryConfig (#3478)

    • Ensures all Sentry configuration is added to your Metro config
    • Includes createSentryMetroSerializer
    • Collapses Sentry internal frames from the stack trace view in LogBox
    const { getDefaultConfig } = require('@react-native/metro-config');
    const { withSentryConfig } = require('@sentry/react-native/metro');
    
    const config = getDefaultConfig(__dirname);
    module.exports = withSentryConfig(config);
  • Add experimental visionOS support (#3467)

Fixes

  • Fix WITH_ENVIRONMENT overwrite in sentry-xcode-debug-files.sh (#3525)
  • Sentry CLI 2.25.1 fixes background debug files uploads during Xcode builds (#3486)
  • Performance Tracing should be disabled by default (#3533)
  • Use $NODE_BINARY to execute Sentry CLI in Xcode scripts (#3493)
  • Return auto Release and Dist to source maps auto upload (#3540)
  • Linked errors processed before other integrations (#3535)
    • This ensure their frames are correctly symbolicated

Dependencies

5.16.0

This release ships with a beta version of our new built-in Expo SDK 50 support, which replaces the deprecated sentry-expo package. To learn more, see the Expo guide.

Features

  • New @sentry/react-native/expo Expo config plugin (#3429)

    const { withSentry } = require('@sentry/react-native/expo');
    
    const config = {...};
    
    module.exports = withSentry(config, {
      url: 'https://www.sentry.io/',
      project: 'project-slug', // Or use SENTRY_PROJECT env
      organization: 'org-slug', // Or use SENTRY_ORG env
    });
    • And Sentry.init in App.js
    import * as Sentry from '@sentry/react-native';
    
    Sentry.init({
      dsn: '__DSN__',
    });
  • New getSentryExpoConfig for simple Metro configuration (#3454, #3501, #3514)

    • This function is a drop in replacement for getDefaultConfig from expo/metro-config
    // const { getDefaultConfig } = require("expo/metro-config");
    const { getSentryExpoConfig } = require("@sentry/react-native/metro");
    
    // const config = getDefaultConfig(__dirname);
    const config = getSentryExpoConfig(__dirname);
  • New npx sentry-expo-upload-sourcemaps for simple EAS Update (npx expo export) source maps upload (#3491, #3510, #3515, #3507)

    SENTRY_PROJECT=project-slug \
    SENTRY_ORG=org-slug \
    SENTRY_AUTH_TOKEN=super-secret-token \
    npx sentry-expo-upload-sourcemaps dist

Others

  • Update sentry-xcode.sh scripts with Node modules resolution (#3450)
    • RN SDK and Sentry CLI are dynamically resolved if override is not supplied
  • Resolve Default Integrations based on current platform (#3465)
    • Native Integrations are only added if Native Module is available
    • Web Integrations only for React Native Web builds
  • Remove Native Modules warning from platform where the absence is expected (#3466)
  • Add Expo Context information using Expo Native Modules (#3466)
  • Errors from InternalBytecode.js are no longer marked as in_app (#3518)
  • Fix system node can't be overwritten in sentry-xcode-debug-files.sh (#3523)

5.16.0-alpha.4

Fixes

  • Make getSentryExpoConfig options parameter optional (#3514)
  • Use @sentry/react-native/expo as plugin name in expo-upload-sourcemaps.js (#3515)

5.16.0-alpha.3

This release is compatible with [email protected] and newer.

Features

  • withSentryExpoSerializers changes to getSentryExpoConfig (#3501)

    • getSentryExpoConfig accepts the same parameters as getDefaultConfig from expo/metro-config and returns Metro configuration
    • This also works for EAS Updates (and expo export). Debug ID is generated by expo/metro-config and used by Sentry.
    const { getSentryExpoConfig } = require("@sentry/react-native/metro");
    const config = getSentryExpoConfig(config, {});
  • Add npx sentry-expo-upload-sourcemaps for simple EAS Update (expo export) source maps upload to Sentry (#3491, #3510)

    SENTRY_PROJECT=project-slug \
    SENTRY_ORG=org-slug \
    SENTRY_AUTH_TOKEN=super-secret-token \
    npx sentry-expo-upload-sourcemaps dist
  • Sentry CLI binary path in scripts/expo-upload-sourcemaps.js is resolved dynamically (#3507)

    • Or can be overwritten by SENTRY_CLI_EXECUTABLE env
  • Resolve Default Integrations based on current platform (#3465)

    • Native Integrations are only added if Native Module is available
    • Web Integrations only for React Native Web builds
  • Remove Native Modules warning from platform where the absence is expected (#3466)

  • Add Expo Context information using Expo Native Modules (#3466)

Fixes

  • Includes fixes from version 5.15.2

5.15.2

Fixes

  • Stop sending navigation route params for auto-generated transactions, as they may contain PII or other sensitive data (#3487)

5.16.0-alpha.2

Features

  • Add withSentryExpoSerializers for easy configurable metro.config.js (#3454)

    This Serializer doesn't support EAS Updates (and expo export) commands yet. Debug IDs needed for source maps resolution in Sentry are generated only during native builds.

    const { getDefaultConfig } = require('expo/metro-config');
    const { withSentryExpoSerializers } = require("@sentry/react-native/metro");
    
    const config = getDefaultConfig(__dirname);
    module.exports = withSentryExpoSerializers(config);

    Note that this will remove any existing customSerializer. Guide for advanced setups can be found here.

Fixes

  • Expo SDK minimum version is 49 (#3453)
  • Remove RN Internal imports for RN Web builds (#3462)
  • Remove circular dependencies inside of the SDK (#3464)
  • Includes fixes from version 5.15.1

5.15.1

Fixes

  • Sentry CLI upgrade resolves Xcode Could timeout during source maps upload #3390

Dependencies

5.16.0-alpha.1

Features

  • Add @sentry/react-native/expo Expo config plugin (#3429)

    This Release introduces the first alpha version of our new SDK for Expo. At this time, the SDK is considered experimental and things might break and change in future versions.

    The core of the SDK is Expo plugin which you can easily add to your App config:

    const { withSentry } = require('@sentry/react-native/expo');
    
    const config = {...};
    
    module.exports = withSentry(config, {
      url: 'https://www.sentry.io/',
      authToken: 'example-token', // Or use SENTRY_AUTH_TOKEN env
      project: 'project-slug', // Or use SENTRY_PROJECT env
      organization: 'org-slug', // Or use SENTRY_ORG env
    });
    • And Sentry.init in App.js
    import * as Sentry from '@sentry/react-native';
    
    Sentry.init({
      dsn: '__DSN__',
    });
  • Update sentry-xcode.sh scripts with Node modules resolution (#3450)

    • RN SDK and Sentry CLI are dynamically resolved if override is not supplied

Fixes

  • Transform shipped JSX for both react-native and web (#3428)
    • Removes builds errors when using react-native-web with Webpack

5.15.0

Features

  • New simplified Sentry Metro Serializer export (#3450)

    const { createSentryMetroSerializer } = require('@sentry/react-native/metro');

Fixes

  • Encode envelopes using Base64, fix array length limit when transferring over Bridge. (#2852)
    • This fix requires a rebuild of the native app
  • Symbolicate message and non-Error stacktraces locally in debug mode (#3420)
  • Remove Sentry SDK frames from rejected promise SyntheticError stack (#3423)
  • Fix path from Xcode scripts to Collect Modules (#3451)

Dependencies

5.14.1

Fixes

  • Add hermes to Pod dependencies to fix profiling with use_frameworks (#3416)
  • Define SentryCurrentDateProvider in RNSentry (#3418)

5.14.0

Features

  • Add iOS profiles to React Native Profiling (#3349)

Fixes

  • Conditionally use Set or CountingSet in Sentry Metro plugin (#3409)
    • This makes sentryMetroSerializer compatible with Metro 0.66.2 and newer
  • Fix SIGSEV, SIGABRT and SIGBUS crashes happening after/around the August Google Play System update, see #2955 for more details

Dependencies

5.13.1-beta.1

Fixes

  • Fix SIGSEV, SIGABRT and SIGBUS crashes happening after/around the August Google Play System update, see #2955 for more details

Dependencies

5.13.0

Features

Fixes

  • Remove platform: node from Debug Builds Events (#3377)

Dependencies

5.12.0

Features

  • Automatically detect environment if not set (#3362)
  • Send Source Maps Debug ID for symbolicated Profiles (#3343)

Fixes

  • Add actual activeThreadId to Profiles (#3338)
  • Parse Hermes Profiling Bytecode Frames (#3342)

Dependencies

5.11.1

Fixes

  • Waif for has-sourcemap-debugid process to exit (#3336)

5.11.0

Features

  • Add buildFeatures.buildConfig=true to support AGP 8 (#3298)

  • Add Debug ID support (#3164)

    This is optional to use Debug IDs. Your current setup will keep working as is.

    Add Sentry Metro Serializer to metro.config.js to generate Debug ID for the application bundle and source map.

      const {createSentryMetroSerializer} = require('@sentry/react-native/dist/js/tools/sentryMetroSerializer');
      const config = {serializer: createSentryMetroSerializer()};

    On iOS update Bundle React Native Code and Images and Upload Debug Symbols to Sentry build phases.

      set -e
      WITH_ENVIRONMENT="../node_modules/react-native/scripts/xcode/with-environment.sh"
      REACT_NATIVE_XCODE="../node_modules/react-native/scripts/react-native-xcode.sh"
    
      /bin/sh -c "$WITH_ENVIRONMENT \"/bin/sh ../scripts/sentry-xcode.sh $REACT_NATIVE_XCODE\""
      /bin/sh ../../scripts/sentry-xcode-debug-files.sh

    More information about the new setup can be found here.

  • Add SENTRY_DISABLE_AUTO_UPLOAD flag (#3323)

    How to use in Android project? It works by default, just set export SENTRY_DISABLE_AUTO_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_AUTO_UPLOAD=true

Fixes

  • App start time span no longer created if too long (#3299)
  • Change log output to show what paths are considered when collecting modules (#3316)
  • Sentry.wrap doesn't enforce any keys on the wrapped component props (#3332)
  • Ignore defaults when warning about duplicate definition of trace propagation targets (#3327)
  • Screenshots are not taken when the SDK is disabled (#3333)
  • Use deprecated ReactNativeTracingOptions.tracingOrigins if set in the options (#3331)
  • Cancel auto instrumentation transaction when app goes to background (#3307)

Dependencies

5.10.0

Features

  • Add Hermes Debug Info flag to React Native Context (#3290)
    • This flag equals true when Hermes Bundle contains Debug Info (Hermes Source Map was not emitted)
  • Add enableNdk property to ReactNativeOptions for Android. (#3304)

5.9.2

Fixes

  • Create profiles for start up transactions (#3281)
  • Fix Hermes Bytecode Symbolication one line off (#3283)

Dependencies

5.9.1

  • Bump Cocoa SDK from v8.9.4 to v8.10.0 (#3250)
    • This fixes a compile error for projects that use CocoaPods with use_frameworks! option.
    • changelog
    • diff

5.9.0

Important Note

Do not use this version if you use CocoaPods with use_frameworks! option. It introduces a bug where the project won't compile. This has been fixed in version 5.9.1.

Features

  • Add support for React Native mixed stacktraces (#3201)

    In the current react-native@nightly (0.73.0-nightly-20230809-cb60e5c67) JS errors from native modules can contain native JVM or Objective-C exception stack trace. Both JS and native stack trace are processed by default no configuration needed.

  • Add tracePropagationTargets option (#3230)

    This release adds support for distributed tracing without requiring performance monitoring to be active on the React Native SDK. This means even if there is no sampled transaction/span, the SDK will still propagate traces to downstream services. Distributed Tracing can be configured with the tracePropagationTargets option, which controls what requests to attach the sentry-trace and baggage HTTP headers to (which is what propagates tracing information).

      Sentry.init({
        tracePropagationTargets: ["third-party-site.com", /^https:\/\/yourserver\.io\/api/],
      });

Fixes

  • Sentry.init must be called before Sentry.wrap(#3227)
    • The SDK now shows warning if incorrect order is detected
  • Stall Time is no longer counted when App is in Background. (#3211)
  • Use application variant instead of variant output to hook to correct package task for modules cleanup (#3161)
  • Fix isNativeAvailable after SDK reinitialization (#3200)

Dependencies

5.8.1

Dependencies

5.8.0

Features

  • Alpha support for Hermes JavaScript Profiling (#3057)

    Profiling is disabled by default. To enable it, configure both tracesSampleRate and profilesSampleRate when initializing the SDK:

      Sentry.init({
        dsn: '__DSN__',
        tracesSampleRate: 1.0,
        _experiments: {
          // The sampling rate for profiling is relative to TracesSampleRate.
          // In this case, we'll capture profiles for 100% of transactions.
          profilesSampleRate: 1.0,
        },
      });

    More documentation on profiling and current limitations can be found here.

Fixes

  • Warn users about multiple versions of promise package which can cause unexpected behavior like undefined Promise.allSettled (#3162)
  • Event is enriched with all the Android context on the JS layer and you can filter/modify all the data in the beforeSend callback similarly to iOS. (#3170)

Dependencies

5.7.1

Dependencies

5.7.0

Fixes

  • Filter beforeSendTransaction from the Native SDK (#3140)

Features

  • Use android.namespace for AGP 8 and RN 0.73 (#3133)

Dependencies

5.6.0

Features

  • Overwrite Expo bundle names in stack frames (#3115)
    • This enables source maps to resolve correctly without using sentry-expo package

Fixes

  • Disable enableNative if Native SDK is not available (#3099)
  • Dynamically resolve collectModulesScript path to support monorepos (#3092)
  • Native wrapper methods don't throw disabled error after re-initializing (#3093)

Dependencies

5.5.0

Features

  • Add expo, react_native_version and hermes_version to React Native Context (#3050)

Dependencies

5.4.2

Fixes

  • Fix event.origin and event.environment on unhandled exception (#3041)
  • Don't pass enableTracing from RN to sentry-cocoa options (#3042)
  • Only store envelopes of fatal crashes on iOS (#3051)

Dependencies

4.15.2

  • Only store envelopes of fatal crashes on iOS (#3051)

5.4.1

Fixes

  • Store envelopes immediately during a fatal crash on iOS (#3031)
  • Do not overwrite _metadata option by default sdkInfo (#3036)

Dependencies

4.15.1

Fixes

  • Store envelopes immediately during a fatal crash on iOS (#3030)

5.4.0

Features

  • Add TS 4.1 typings (#2995)
    • TS 3.8 are present and work automatically with older projects
  • Add CPU Info to Device Context (#2984)

Fixes

  • Allow disabling native on RNNA (#2978)
  • iOS Autolinking for RN 0.68 and older (#2980)
  • Clean up modules.json when building bundles (#3008)
  • Only include Screenshots and View Hierarchy for iOS and Mac Catalyst builds (#3007)
  • Breadcrumbs from Native SDKs are created with timestamps in seconds (#2997)
  • addBreadcrumb converts converts non object data to { value: data } (#2997)

Dependencies

5.3.1

Fixes

  • Disable enableNativeCrashHandling and enableAutoPerformanceTracing on Apple (#2936)
    • Mac Catalyst builds successfully
  • sentry.gradle Gracefully skip modules collecting if the script doesn't exist (#2952)

Dependencies

5.3.0

Features

  • Add enableTracing option (#2933)
  • Add Tabs auto instrumentation for React Native Navigation (#2932)
    • This is enabled by default, if you want to disable tabs instrumentation see the example below.
const routingInstrumentation = new Sentry.ReactNativeNavigationInstrumentation(Navigation, { enableTabsInstrumentation: false })

Fixes

  • Disable HTTP Client Errors by default on all platform (#2931)
    • See HttpClient for configuration details.
    • Use enableCaptureFailedRequests to enable the feature.
Sentry.init({ enableCaptureFailedRequests: true })

Dependencies

5.2.0

Features

  • Add User Interaction Tracing for Touch events (#2835)
  • Add Gesture Tracing for React Native Gesture Handler API v2 (#2865)

Fixes

  • Fix use Fetch transport when option enableNative is false (#2897)
  • Improve logs when enableNative is false (#2897)

Dependencies

5.1.1

Fixes

  • Remove non URL frame.abs_path which was causing source maps to fail (#2891)

Dependencies

5.1.0

Features

  • Add App Context in_foreground (#2826)

Fixes

  • Match app start measurements naming with other SDKs (#2855)
    • app.start.cold to app_start_cold
    • app.start.warm to app_start_warm

Dependencies

5.0.0

The React Native SDK version 5 supports both Legacy (from RN 0.65 and above) and New Architecture (from RN 0.69 and above) as well as the new React Native Gradle Plugin (introduced in RN 0.71). For detailed migration guide visit our docs.

Features

  • Add support for the RN New Architecture, backwards compatible RNSentry Turbo Module (#2522)
  • Add View Hierarchy to the crashed/errored events (#2708)
  • Send react native js engine, turbo module, fabric flags and component stack in Event contexts (#2552)
  • Sync tags, extra, fingerprint, level, environment and breadcrumbs from sentry-cocoa during event processing. (#2713)
    • breadcrumb.level value log is transformed to debug when syncing with native layers.
    • Remove breadcrumb.level value critical transformation to fatal.
    • Default breadcrumb.level is info

Breaking changes

  • Option enableAutoPerformanceTracking renamed to enableAutoPerformanceTracing
  • Option enableOutOfMemoryTracking renamed to enableWatchdogTerminationTracking
  • Remove link hooks (RN 0.68 and older) (#2332)
  • iOS min target 11, Android API min 21, min React Native version 0.65 (#2522, #2687)
  • New ReactNativeTracingOptions (#2481)
    • idleTimeout renamed to idleTimeoutMs
    • maxTransactionDuration renamed to finalTimeoutMs
  • touchEventBoundaryProps.labelName property instead of default accessibilityLabel fallback (#2712)
  • Message event current stack trace moved from exception to threads (#2694)

Fixes

  • Unreachable fallback to fetch transport if native is not available (#2695)

Dependencies

4.15.0

Features

  • Collect modules script for XCode builds supports NODE_BINARY to set path to node executable (#2805)

Fixes

  • React Native Error Handlers Integration doesn't crash if ErrorUtils are not available (#2808)

Dependencies

5.0.0-rc.1

Fixes

  • React Native Error Handlers Integration doesn't crash if ErrorUtils are not available (#2808)

5.0.0-beta.2

Features

  • Add View Hierarchy to the crashed/errored events (#2708)
  • Collect modules script for XCode builds supports NODE_BINARY to set path to node executable (#2805)

Dependencies

5.0.0-beta.1

  • Latest changes from 4.14.0

Breaking changes

  • Option enableAutoPerformanceTracking renamed to enableAutoPerformanceTracing
  • Option enableOutOfMemoryTracking renamed to enableWatchdogTerminationTracking

Features

  • Sync tags, extra, fingerprint, level, environment and breadcrumbs from sentry-cocoa during event processing. (#2713)
    • breadcrumb.level value log is transformed to debug when syncing with native layers.
    • Remove breadcrumb.level value critical transformation to fatal.
    • Default breadcrumb.level is info

Dependencies

4.14.0

Features

  • Add support for RNGP introduced in React Native 0.71.0 (#2759)

Fixes

  • Take screenshot runs on UI thread on Android (#2743)

Dependencies

5.0.0-alpha.11

  • Latest changes from 4.13.0

Breaking changes

  • Message event current stack trace moved from exception to threads (#2694)
  • touchEventBoundaryProps.labelName property instead of default accessibilityLabel fallback (#2712)

Fixes

  • Unreachable fallback to fetch transport if native is not available (#2695)

4.13.0

Fixes

  • Missing originalException in beforeSend for events from react native error handler (#2706)
  • ModulesLoader integration returns original event if native is not available and event modules overwrite native modules (#2730)

Dependencies

4.12.0

Features

  • Add lastEventId method to the API (#2675)

Fix

  • Sentry.startTransaction doesn't require op (#2691)

Dependencies

5.0.0-alpha.10

  • Latest changes from 4.11.0

Dependencies

4.11.0

Features

4.10.1

Fixes

  • Bump Wizard from v1.2.17 to v1.4.0 (#2645)
  • Android builds without ext config, auto create assets dir for modules (#2652)
  • Exit gracefully if source map file for collecting modules doesn't exist (#2655)
  • Create only one clean-up tasks for modules collection (#2657)

Dependencies

5.0.0-alpha.9

  • Latest changes from 4.10.0

Fixes

  • Add missing source Spec for RNSentry Codegen. (#2639)

4.10.0

Features

  • JS Runtime dependencies are sent in Events (#2606)
    • To collect JS dependencies on iOS add ../node_modules/@sentry/react-native/scripts/collect-modules.sh at the end of the Bundle React Native code and images build phase. The collection only works on Release builds. Android builds have a new step in sentry.gradle plugin. More in the migration documentation.

Dependencies

5.0.0-alpha.8

  • Latest changes from 4.9.0

4.9.0

Features

  • Add maxQueueSize option (#2578)

Fixes

  • Use Scope class rather than Scope type for top-level functions (#2627)

Dependencies

4.8.0

Fixes

  • Message event can have attached stacktrace (#2577)
  • Fixed maximum call stack exceeded error resulting from large payloads (#2579)

Dependencies

5.0.0-alpha.7

  • Latest changes from 4.7.1

Fixes

  • Remove hardcoded Folly version (#2558)

Features

  • Send react native js engine, turbo module, fabric flags and component stack in Event contexts (#2552)

Dependencies

4.7.1

Fixes

  • Remove duplicate sdk package record from envelope (#2570)
  • Fix appHangsTimeoutInterval -> appHangTimeoutInterval option name (#2574)

4.7.0

Dependencies

5.0.0-alpha.6

  • Latest changes from 4.6.1

Features

  • Add initial support for the RN New Architecture, backwards compatible RNSentry Turbo Module (#2522)

Breaking changes

  • New ReactNativeTracingOptions idleTimeoutMs and finalTimeoutMs replacing idleTimeout and maxTransactionDuration respectively (#2481)
  • iOS min target 12.4, Android API min 21, min React Native version 0.70 (#2522)

Dependencies

4.6.1

Fixes

  • Make configureScope callback safe #2510
  • Allows collecting app start and slow/frozen frames if Native SDK is inited manually #2517
  • Nested breadcrumb data on android was not treated correctly #2519

Dependencies

5.0.0-alpha.5

Fixes

  • Make configureScope callback safe #2510

Dependencies

4.6.0

Fixes

  • SDK Gracefully downgrades when callback throws an error (#2502)
  • React Navigation v5 ignores when current route is undefined after state changed. (#2484)

Features

  • Add ClientReports (#2496)

Sentry Self-hosted Compatibility

  • Starting with version 4.6.0 of the @sentry/react-native package, Sentry's self hosted version >= v21.9.0 is required or you have to manually disable sending client reports via the sendClientReports option. This only applies to self-hosted Sentry. If you are using sentry.io, no action is needed.

Dependencies

5.0.0-alpha.4

  • Latest changes from 4.5.0

Breaking changes

  • New ReactNativeTracingOptions idleTimeoutMs and finalTimeoutMs replacing idleTimeout and maxTransactionDuration respectively (#2481)

4.5.0

Features

  • Add user feedback (#2486)
  • Add typings for app hang functionality (#2479)

Fixes

  • Update warm/cold start span ops (#2487)
  • Detect hard crash the same as native sdks (#2480)
  • Integrations factory receives default integrations (#2494)

Dependencies

4.4.0

Features

  • Add attachments support (#2463)

4.3.1

Fixes

  • ReactNativeTracingOptions maxTransactionDuration is in seconds (#2469)

Dependencies

5.0.0-alpha.3

  • Latest changes from 4.3.x

Dependencies

4.3.0

Features

  • Add Transaction Source for Dynamic Sampling Context (#2454)

Dependencies

4.2.4

Fixes

  • ReactNativeTracing wrongly marks transactions as deadline_exceeded when it reaches the idleTimeout (#2427)

5.0.0-alpha.2

  • Latest changes from 4.2.x

5.0.0-alpha.1

Fixes

  • Auto linking for RN >= 0.69 (#2332)

4.2.3

Fixes

4.2.2

Fixes

  • Should not ignore options.transport function provided in Sentry.init(...) (#2398)

4.2.1

Fixes

  • SENTRY_DIST accepts non-number values on Android (#2395)

Features

4.2.0

Features

4.1.3

Fixes

  • Solve reference to private cocoa SDK class (#2369)

4.1.2

Fixes

  • Set default unit for measurements (#2360)
  • When using SENTRY_DIST env. var. on Android, SDK fails to convert to an Integer (#2365)

Features

4.1.1

Features

4.1.0

4.0.2

  • Fix Calculate the absolute number of Android versionCode (#2313)

4.0.1

  • Filter out app start with more than 60s (#2303)

4.0.0

Breaking changes

By bumping Sentry Javascript, new breaking changes were introduced, to know more what was changed, check the breaking changes changelog from Sentry Javascript.

4.0.0-beta.5

  • Fix warning missing DSN on BrowserClient. (#2294)

4.0.0-beta.4

4.0.0-beta.3

4.0.0-beta.2

4.0.0-beta.1

Breaking changes

By bumping Sentry Javascript, new breaking changes were introduced, to know more what was changed, check the breaking changes changelog from Sentry Javascript.

3.4.3

  • feat: Support macOS (#2240) by @ospfranco

3.4.2

  • fix: Fix cold start appearing again after js bundle reload on Android. #2229

3.4.1

  • fix: Make withTouchEventBoundary options optional #2196

3.4.0

Various fixes & improvements

  • Bump: @sentry/javascript dependencies to 6.19.2 (#2175) by @marandaneto

3.3.6

  • fix: Respect given release if no dist is given during SDK init (#2163)
  • Bump: @sentry/javascript dependencies to 6.19.2 (#2175)

3.3.5

  • Bump: Sentry Cocoa to 7.11.0 and Sentry Android to 5.7.0 (#2160)

3.3.4

  • fix(android): setContext serializes as context for Android instead of extra (#2155)
  • fix(android): Duplicate Breadcrumbs when captuing messages #2153

3.3.3

  • Bump: Sentry Cocoa to 7.10.2 and Sentry Android to 5.6.3 (#2145)
  • fix(android): Upload source maps correctly regardless of version codes #2144

3.3.2

  • fix: Do not report empty measurements #1983
  • fix(iOS): Bump Sentry Cocoa to 7.10.1 and report slow and frozen measurements (#2132)
  • fix(iOS): Missing userId on iOS when the user is not set in the Scope (#2133)

3.3.1

  • feat: Support setting maxCacheItems #2102
  • fix: Clear transaction on route change for React Native Navigation #2119

3.3.0

  • feat: Support enableNativeCrashHandling for iOS #2101
  • Bump: Sentry Cocoa 7.10.0 #2100
  • feat: Touch events now track components with sentry-label prop, falls back to accessibilityLabel and then finally displayName. #2068
  • fix: Respect sentryOption.debug setting instead of #DEBUG build flag for outputting logs #2039
  • fix: Passing correct mutableOptions to iOS SDK (#2037)
  • Bump: Bump @sentry/javascript dependencies to 6.17.9 #2082
  • fix: Discard prior transactions on react navigation dispatch #2053

3.2.14-beta.2

  • feat: Touch events now track components with sentry-label prop, falls back to accessibilityLabel and then finally displayName. #2068
  • fix: Respect sentryOption.debug setting instead of #DEBUG build flag for outputting logs #2039
  • fix: Passing correct mutableOptions to iOS SDK (#2037)
  • Bump: Bump @sentry/javascript dependencies to 6.17.9 #2082

3.2.14-beta.1

  • fix: Discard prior transactions on react navigation dispatch #2053

3.2.13

  • fix(deps): Add @sentry/wizard back in as a dependency to avoid missing dependency when running react-native link. #2015
  • Bump: sentry-cli to 1.72.0 #2016

3.2.12

  • fix: fetchNativeDeviceContexts returns an empty Array if no Device Context available #2002
  • Bump: Sentry Cocoa 7.9.0 #2011

3.2.11

  • fix: Polyfill the promise library to permanently fix unhandled rejections #1984

3.2.10

  • fix: Do not crash if androidx.core isn't available on Android #1981
  • fix: App start measurement on Android #1985
  • Bump: Sentry Android to 5.5.2 #1985

3.2.9

  • Deprecate initialScope in favor of configureScope #1963
  • Bump: Sentry Android to 5.5.1 and Sentry Cocoa to 7.7.0 #1965

3.2.8

Various fixes & improvements

  • replace usage of master to main (30b44232) by @marandaneto

3.2.7

  • fix: ReactNavigationV4Instrumentation null when evaluating 'state.routes' #1940
  • fix: ConcurrentModification exception for frameMetricsAggregator #1939

3.2.6

  • feat(android): Support monorepo in gradle plugin #1917
  • fix: Remove dependency on promiseRejectionTrackingOptions #1928

3.2.5

  • fix: Fix dynamic require for promise options bypassing try catch block and crashing apps #1923

3.2.4

  • fix: Warn when promise rejections won't be caught #1886
  • Bump: Sentry Android to 5.4.3 and Sentry Cocoa to 7.5.4 #1920

3.2.3

Various fixes & improvements

  • fix(ios): tracesSampler becomes NSNull in iOS and the app cannot be started (#1872) by @marandaneto

3.2.2

  • Bump Sentry Android SDK to 5.3.0 #1860

3.2.1

Various fixes & improvements

  • feat(ios): Missing config enableOutOfMemoryTracking on iOS/Mac (#1858) by @marandaneto

3.2.0

  • feat: Routing instrumentation will emit breadcrumbs on route change and set route tag #1837

  • Bump Sentry Android SDK to 5.2.4 (#1844)

  • Bump Sentry Cocoa SDK to 7.4.8 (#1856)

3.2.0-beta.2

  • fix: Type React Native Navigation instrumentation constructor argument as unknown to avoid typescript errors #1817

3.2.0-beta.1

  • feat: Routing instrumentation for React Native Navigation #1774

3.1.1

3.1.0

  • Feat: Allow custom release for source map upload scripts #1548
  • ref: Remove v5 prefix from react navigation instrumentation to support v6 #1768

3.0.3

  • Fix: Set Java 8 for source and target compatibility if not using AGP >= 4.2.x (#1763)

3.0.2

  • Bump: Android tooling API 30 (#1761)

3.0.1

  • fix: Add sentry-cli as a dependency #1755

3.0.0

  • feat: Align event.origin, event.environment with other hybrid sdks #1749
  • feat: Add native sdk package info onto events #1749
  • build(js): Bump sentry-javascript dependencies to 6.12.0 #1750
  • fix: Fix native frames not being added to transactions #1752
  • build(android): Bump sentry-android to 5.1.2 #1753
  • build(ios): Bump sentry-cocoa to 7.2.6 #1753
  • fix: Move @sentry/wizard dependency to devDependencies #1751

3.0.0-beta.3

  • feat: Add wrap wrapper method with profiler and touch event boundary #1728
  • feat: App-start measurements, if using the wrap wrapper, will now finish on the root component mount #1728

3.0.0-beta.2

  • feat: Native slow/frozen frames measurements #1711

3.0.0-beta.1

  • build(ios): Bump sentry-cocoa to 7.2.0-beta.9 #1704
  • build(android): Bump sentry-android to 5.1.0-beta.9 #1704
  • feat: Add app start measurements to the first transaction #1704
  • feat: Create an initial initial ui.load transaction by default #1704
  • feat: Add enableAutoPerformanceTracking flag that enables auto performance when tracing is enabled #1704

2.7.0-beta.1

  • feat: Track stalls in the JavaScript event loop as measurements #1542

2.6.2

  • fix: Fix the error handler (error dialog) not called in dev #1712

2.6.1

  • build(ios): Bump sentry-cocoa to 7.1.4 #1700

2.6.0

  • feat: Support the sendDefaultPii option. #1634
  • build(android): Bump sentry-android to 5.1.0-beta.2 #1645
  • fix: Fix transactions on Android having clock drift and missing span data #1645

2.5.2

  • fix: Fix Sentry.close() not correctly resolving the promise on iOS. #1617
  • build(js): Bump sentry-javascript dependencies to 6.7.1 #1618

2.5.1

  • fix: Fatal uncaught events should be tagged handled:false #1597
  • fix: Fix duplicate breadcrumbs on Android #1598

2.5.0

Dependencies

  • build(js): Bump sentry-javascript dependencies to 6.5.1 #1588
  • build(ios): Bump sentry-cocoa to 7.0.0 and remove setLogLevel #1459
  • build(android): Bump sentry-android to 5.0.1 #1576

Features

  • feat: Sentry.flush() to flush events to disk and returns a promise #1547
  • feat: Sentry.close() method to fully disable the SDK on all layers and returns a promise #1457

Fixes

  • fix: Process "log" levels in breadcrumbs before sending to native #1565

2.5.0-beta.1

  • build(ios): Bump sentry-cocoa to 7.0.0 and remove setLogLevel #1459
  • feat: Close method to fully disable the SDK on all layers #1457
  • build(android): Bump Android SDK to 5.0.0-beta.1 #1476

2.4.3

  • fix: Use the latest outbox path from hub options instead of private options #1529

2.4.2

  • fix: enableNative: false should take precedence over autoInitializeNativeSdk: false #1462

2.4.1

  • fix: Type navigation container ref arguments as any to avoid TypeScript errors #1453

2.4.0

  • fix: Don't call NATIVE.fetchRelease if release and dist already exists on the event #1388
  • feat: Add onReady callback that gets called after Native SDK init is called #1406

2.3.0

  • feat: Re-export Profiler and useProfiler from @sentry/react #1372
  • fix(performance): Handle edge cases in React Navigation routing instrumentation. #1365
  • build(android): Bump sentry-android to 4.3.0 #1373
  • build(devtools): Bump @sentry/wizard to 1.2.2 #1383
  • build(js): Bump sentry-javascript dependencies to 6.2.1 #1384
  • feat(performance): Option to set route change timeout in routing instrumentation #1370

2.2.2

  • fix: Fix unhandled promise rejections not being tracked #1367

2.2.1

  • build(js): Bump @sentry/* dependencies on javascript to 6.2.0 #1354
  • fix: Fix react-dom dependency issue. #1354
  • build(android): Bump sentry-android to 4.1.0 #1334

2.2.0

  • Bump: sentry-android to v4.0.0 #1309
  • build(ios): Bump sentry-cocoa to 6.1.4 #1308
  • fix: Handle auto session tracking start on iOS #1308
  • feat: Use beforeNavigate in routing instrumentation to match behavior on JS #1313
  • fix: React Navigation Instrumentation starts initial transaction before navigator mount #1315

2.2.0-beta.0

  • build(ios): Bump sentry-cocoa to 6.1.3 #1293
  • fix: pass maxBreadcrumbs to Android init
  • feat: Allow disabling native SDK initialization but still use it #1259
  • ref: Rename shouldInitializeNativeSdk to autoInitializeNativeSdk #1275
  • fix: Fix parseErrorStack that only takes string in DebugSymbolicator event processor #1274
  • fix: Only set "event" type in envelope item and not the payload #1271
  • build: Bump JS dependencies to 5.30.0 #1282
  • fix: Add fallback envelope item type to iOS. #1283
  • feat: Auto performance tracing with XHR/fetch, and routing instrumentation #1230

2.1.1

  • build(android): Bump sentry-android to 3.2.1 #1296

2.1.0

  • feat: Include @sentry/tracing and expose startTransaction #1167
  • feat: A better sample app to showcase the SDK and especially tracing #1168
  • build(js): Bump @sentry/javascript dependencies to 5.28.0. #1228
  • build(android): Bump sentry-android to 3.2.0 #1208

2.0.2

  • build(ios): Bump sentry-cocoa to 6.0.9 #1200

2.0.1

  • build(ios): Bump sentry-cocoa to 6.0.8. #1188
  • fix(ios): Remove private imports and call storeEnvelope on the client. #1188
  • fix(ios): Lock specific version in podspec. #1188
  • build(android): Bump sentry-android to 3.1.3. #1177
  • build(deps): Bump @sentry/javascript deps to version-locked 5.27.4 #1199

2.0.0

  • build(android): Changes android package name from io.sentry.RNSentryPackage to io.sentry.react.RNSentryPackage (Breaking). #1131
  • fix: As auto session tracking is now on by default, allow user to pass false to disable it. #1131
  • build: Bump sentry-android to 3.1.0. #1131
  • build: Bump sentry-cocoa to 6.0.3. #1131
  • feat(ios): Use captureEnvelope on iOS/Mac. #1131
  • feat: Support envelopes with type other than event. #1131
  • feat(android): Add enableNdkScopeSync property to ReactNativeOptions. #1131
  • feat(android): Pass attachStacktrace option property down to android SDK. #1131
  • build(js): Bump @sentry/javascript dependencies to 5.27.1. #1156

1.9.0

  • fix: Only show the "Native Sentry SDK is disabled" warning when enableNative is false and enableNativeNagger is true. #1084
  • build: Bump @sentry/javascript dependencies to 5.25.0. #1118

1.8.2

  • build: Bump @sentry/javascript dependencies to 5.24.2 #1091
  • fix: Add a check that performance exists before using it. #1091

1.8.1

  • build: Bump @sentry/javascript dependencies to 5.24.1 #1088
  • fix: Fix timestamp offset issues due to issues with performance.now() introduced in React Native 0.63. #1088

1.8.0

  • feat: Support MacOS #1068
  • build: Bump @sentry/javascript dependencies to 5.23.0 #1079
  • fix: Only call native deviceContexts on iOS #1061
  • fix: Don't send over Log and Critical levels over native bridge #1063

1.7.2

  • meta: Move from Travis CI to Github Actions #1019
  • ref: Drop TSLint in favor of ESLint #1023
  • test: Add basic end-to-end tests workflow #945
  • Bump: sentry-android to v2.3.1

1.7.1

  • build: Bump sentry-cocoa to 5.2 #1011
  • fix: App Store submission for Mac apps getsentry/sentry-cocoa#635
  • fix: Use the release and dist set in init options over native release #1009
  • fix: assign default options before enableNative check #1007

1.7.0

  • fix: Use LogBox instead of YellowBox if possible. #989
  • fix: Don't add DeviceContext default integration if enableNative is set to false. #993
  • fix: Don't log "Native Sentry SDK is disabled" if enableNativeNagger is set to false. #993
  • feat: Migrate to @sentry/react from @sentry/browser and expose ErrorBoundary & the redux enhancer. #1005

1.6.3

  • feat: Touch events take Regex for ignoreNames & add tests #973

1.6.2

  • fix: Don't prefix app:/// to "native" filename as well #957
  • feat: Add sdk_info to envelope header on Android. #958

1.6.1

  • Bump sentry-cocoa 5.1.8

1.6.0

  • feat: Log component tree with all touch events #952
  • fix: Fix appending app:/// prefix to [native code] #946
  • Bump @sentry/* to ^5.19.0
  • Bump sentry-cocoa 5.1.6

1.5.0

  • feat: Track touch events as breadcrumbs #939
  • fix: Serialize the default user keys in setUser #926
  • Bump android 2.2.0 #942
  • fix(android): Fix unmapped context keys being overwritten on Android.

1.4.5

  • fix: Fix Native Wrapper not checking enableNative setting #919

1.4.4

  • Bump cocoa 5.1.4
  • fix(ios): We only store the event in release mode #917

1.4.3

  • Extend Scope methods to set native scope too. #902
  • Bump android 2.1.6
  • Bump @sentry/* to ^5.16.1
  • Bump cocoa 5.1.3

1.4.2

  • Bump android 2.1.4 #891
  • Expose session timeout. #887
  • Added event.origin and event.environment tags to determine where events originate from. #890

1.4.1

  • Filtered out options keys passed to init that would crash native. #885

1.4.0

  • Remove usages of RNSentry to a native wrapper (#857)
  • Bump android 2.1.3 (#858)
  • Bump cocoa 5.1.0 (#870)
  • Accept enableAutoSessionTracking (#870)
  • Don't attach Android Threads (#866)
  • Refactored startWithDsnString to be startWithOptions. (#860)

1.3.9

  • Bump @sentry/wizard to 1.1.4

1.3.8

  • Fixes a bug in DebugSymbolicator

1.3.7

  • Bump @sentry/wizard to 1.1.2

1.3.6

  • Bump @sentry/* to ^5.15.4

1.3.5

  • Bump @sentry/* to ^5.15.2

1.3.4

  • Bump @sentry/* to ^5.15.1
  • Fix a bug in DebugSymbolicator to fetch the correct file
  • Bump to io.sentry:sentry-android:2.0.2

1.3.3

  • Fix sourcemap path for Android and react-native version < 0.61
  • Expose Android SDK in Java

1.3.2

  • Bump io.sentry:sentry-android:2.0.0
  • Fixes a bug on Android when sending events with wrong envelope size

1.3.1

  • Bump @sentry/wizard to 1.1.1 fixing iOS release identifiers
  • console.warn und unhandled rejections in DEV

1.3.0

  • Bump io.sentry:sentry-android:2.0.0-rc04
  • Added support for Hermes runtime!!
  • Fixed a lot of issues on Android
  • NDK support

1.2.2

  • fix(android): Crash if stacktrace.frames is empty (#742)

1.2.1

  • Bump io.sentry:sentry-android:1.7.29

1.2.0

  • Bump @sentry/* to ^5.10.0
  • Allow overriding sentry.properties location (#722)

1.1.0

  • Bump @sentry/* to ^5.9.0
  • fix(android): Feedback not working (#706)
  • fix(types): Fix type mismatch when copying breadcrumb type (#693)

1.0.9

  • Fixed an issue where breadcrumbs failed to be copied correctly

1.0.8

  • Fix missing type, miscast status_code entries in Android breadcrumbs

1.0.7

  • Store environment, release & dist on native iOS and Android clients in case of an native crash

1.0.6

  • Fix error message to guide towards correct docs page

1.0.5

  • Convert message in Java to string if it's a map (#653)

1.0.4

  • Also catch ClassCastException to support react-native versions < 0.60 (#651)

1.0.3

  • Expose BrowserIntegrations to change browser integrations (#639)

1.0.2

  • Fixes breadcrumb.data cast if it's not a hashmap (#651)

1.0.1

  • Fixed typo in RNSentry.m (#658)

1.0.0

This is a new major release of the Sentry's React Native SDK rewritten in TypeScript. This SDK is now unified with the rest of our JavaScript SDKs and published under a new name @sentry/react-native. It uses @sentry/browser and both sentry-cocoa and sentry-android for native handling.

This release is a breaking change an code changes are necessary.

New way to import and init the SDK:

import * as Sentry from '@sentry/react-native';

Sentry.init({
  dsn: 'DSN',
});

0.43.2

  • Add a check for an empty stacktrace on Android (#594)

0.43.1

  • Bump raven-js 3.27.1

0.43.0

  • Bump sentry-wizard 0.13.0

0.42.0

  • Bump sentry-cocoa 4.2.1
  • Fix a bug where environment was correctly set
  • Only upload source maps in gradle if non debug build

0.41.1

  • Fix bump version script

0.41.0

  • Update android build tools and gradle scripts to be compatible with latest version
  • Fix support to build on windows

0.40.3

  • Bump sentry-cocoa 4.1.3

0.40.2

  • Fix import for ArrayList and ReadableArray on Android, Fixes #511

0.40.1

  • Use buildToolsVersion in build.gradle

0.40.0

  • Add fingerprint support for iOS/Android, Fixes #407
  • Add support for tvOS

v0.39.1

  • Bump @sentry/wizard 0.12.1
  • Add constructor for RNSentryPackage.java, Fixes #490

v0.39.0

  • react-native-sentry >= 0.39.0 requires react-native >= 0.56.0
  • [Android] Bumping of gradle deps
compileSdkVersion 26
buildToolsVersion '26.0.3'
...
targetSdkVersion 26
  • [Android] Use sentry-android 1.7.5
  • Bump @sentry/wizard 0.11.0
  • Bump sentry-cocoa 4.1.0
  • Use new SDK identifier sentry.javascript.react-native

v0.38.3

  • Bump @sentry/wizard 0.10.2

v0.38.2

  • [Android] Use sentry-android 1.7.4

v0.38.1

  • [Android] set empty message to prevent breadcrumb exception

v0.38.0

  • [Android] Remove requirement to pass in MainApplication new RNSentryPackage(MainApplication.this)

v0.37.1

  • [Android] Call event callbacks even on failure to trigger crashes when device is offline

v0.37.0

  • Revert change to podspec file
  • Add support for transaction instead of culprit
  • Add equalsIgnoreCase to gradle release name compare
  • Bump sentry-java to 1.7.3

v0.36.0

  • Bump raven-js to 3.24.2
  • Fixed #391

v0.35.4

  • Bump sentry-cocoa to 3.12.4

v0.35.3

  • Fix wizard command

v0.35.2

  • Fixed #374

v0.35.1

  • Bump sentry-cocoa to 3.12.0

v0.35.0

  • Fixes an issue where error will not be reported to Sentry.

v0.34.1

  • Fixed #354

v0.34.0

  • Fixed #353
  • Fixed #347
  • Fixed #346
  • Fixed #342

v0.33.0

  • Add pro guard default rule @kazy1991
  • Exposed crashedLastLaunch for iOS @monotkate
  • Fixed #337
  • Fixed #333
  • Fixed #331
  • Fixed #322

v0.32.1

  • Update sentry-wizard

v0.32.0

Breaking changes

Migration guide upgrading from < 0.32.0

Since we now use @sentry/wizard for linking with out new @sentry/cli package, the old sentry-cli-bin package has been deprecated. You have to search your codebase for sentry-cli-binary and replace it with @sentry/cli. There are few places where we put it during the link process:

  • In both sentry.properties files in ios/android folder
  • In your Xcode build scripts once in Bundle React Native code and images and once in Upload Debug Symbols to Sentry

So e.g.:

The Upload Debug Symbols to Sentry build script looks like this:

export SENTRY_PROPERTIES=sentry.properties
../node_modules/sentry-cli-binary/bin/sentry-cli upload-dsym

should be changed to this:

export SENTRY_PROPERTIES=sentry.properties
../node_modules/@sentry/cli/bin/sentry-cli upload-dsym

General

  • Bump @sentry/wizard to 0.7.3
  • Bump sentry-cocoa to 3.10.0
  • Fixed #169

v0.31.0

v0.30.3

  • Fix podspec file
  • Fix gradle regex to allow number in projectname

v0.30.2

Updated npm dependencies

v0.30.1

Deploy and release over Probot

v0.30.0

Refactored iOS to use shared component from sentry-cocoa. Also squashed many little bugs on iOS.

  • Fixed #281
  • Fixed #280

v0.29.0

  • Fixed #275
  • Fixed #274
  • Fixed #272
  • Fixed #253

v0.28.0

We had to rename project.ext.sentry to project.ext.sentryCli because our own proguard gradle plugin was conflicting with the name. The docs already reflect this change.

  • #257

We now use the mainThread to report errors to RNSentry. This change is necessary in order for react-native to export constants. This change shouldn't impact anyone using react-native-sentry since most of the "heavy" load was handled by sentry-cocoa in its own background queue anyway.

  • #259
  • #244

Bump sentry-cocoa to 3.8.3

v0.27.0

We decided to deactivate stack trace merging by default on iOS since it seems to unstable right now. To activate it set:

Sentry.config('___DSN___', {
  deactivateStacktraceMerging: false,
});

We are looking into ways making this more stable and plan to re-enable it again in the future.

v0.26.0

  • Added setShouldSendCallback #250

v0.25.0

  • Fix a bug in gradle script that trigged the sourcemap upload twice
  • Fixed #245
  • Fixed #234

v0.24.2

v0.24.1

  • Bump sentry-cli version to 1.20.0

v0.24.0

  • Fix frame urls when only using raven-js
  • Upgrade sentry-java to 1.5.3
  • Upgrade sentry-cocoa to 3.8.1
  • Added support for sampleRate option

v0.23.2

  • Fixed #228 again ¯\(ツ)

v0.23.1

  • Fixed #228

v0.23.0

  • Add more event properties for setEventSentSuccessfully callback on Android

v0.22.0

  • Fixed #158
  • Add
project.ext.sentry = [
    logLevel: "debug",
    flavorAware: true
]

should be before: apply from: "../../node_modules/react-native-sentry/sentry.gradle" This enables sentry-cli debug output on android builds, also adds flavor aware sentry.properties files.

v0.21.2

  • Fixing device farm tests

v0.21.1

  • Store event on release and send on next startup.

v0.21.0

  • Fixed an issue where javascript error wasn't sent everytime

v0.20.0

  • Bump sentry-cocoa to 3.6.0

v0.19.0

  • Make userId optional for user context
  • Bump sentry-cocoa to 3.5.0

v0.18.0

  • Bump sentry-java to 1.5.1
  • Fix linking step
  • Bump raven-js to 3.17.0

v0.17.1

  • Fixed #190

v0.17.0

  • Fix disableNativeIntegration proptery to use right transport

v0.16.2

  • Remove send callback when native integration isn't available.

v0.16.1

  • Removed strange submodule

v0.16.0

  • Bump sentry-java to 1.4.0
  • Bump sentry-cocoa to 3.4.2
  • Fixed #182
  • Fixed path detection of sentry-cli

v0.15.1

  • Fixed last release

v0.15.0

  • Added compatiblity for react-native 0.47.0
  • Fixed #169
  • Fixed #106
  • Bumped sentry-cocoa to 3.3.3

Also added integration tests running on AWS Device Farm.

v0.14.16

  • Fixed #124

v0.14.12

  • Updated to sentry-cocoa 3.1.2
  • Fixed #156

v0.14.11

  • Fixed #166

v0.14.10

  • Fixed #161

v0.14.9

Fixed #163

v0.14.8

  • Fixed #159
  • Fixes breadcrumb tracking on android

v0.14.7

  • Improve performance for react-native >= 0.46

v0.14.6

  • Bump sentry-cocoa and KSCrash

v0.14.5

  • Push Podspec to sentry-cocoa 3.1.2

v0.14.4

  • Removed example project from repo
  • Make sure native client is only initialized once

v0.14.3

  • Revert to 23.0.1 android build tools

v0.14.2

  • Fixes #131

v0.14.1

  • Bump raven-js 3.16.1
  • Fixes #136

v0.14.0

  • Allowing calls to Sentry without calling install()
  • Add internal logging if logLevel >= SentryLog.Debug
  • Use sentry-cocoa 3.1.2

v0.13.3

  • Fixes #67

v0.13.2

  • Fixes #116
  • Fixes #51

v0.13.1

  • Fixed Android version dependency

v0.13.0

  • Overhauled internal handling of exceptions
  • Updated iOS and Android native dependencies

v0.12.12

  • Fixes #105
  • Added option disableNativeIntegration

v0.12.11

  • Use sentry-cocoa 3.0.9
  • Fixes #100

v0.12.10

  • Update raven-js to 3.16.0
  • Update sentry-cocoa to 3.0.8
  • Fixes #64
  • Fixes #57

v0.12.8

  • Fix typo

v0.12.9

  • Add support on iOS for stacktrace merging and react-native 0.45

v0.12.7

  • Fixes #92

v0.12.6

  • Fixes #95

v0.12.5

  • Fixes #91 #87 #82 #63 #54 #48

v0.12.3

  • Fixed #90

v0.12.2

  • Fixed #90

v0.12.4

  • Fixed #94

v0.12.1

  • Use 3.0.7 sentry-cocoa in Podspec

v0.12.0

  • Removed RSSwizzle use SentrySwizzle instead

v0.11.8

Update Podspec to use Sentry/KSCrash

v0.11.7

  • Fix duplicate symbol RSSwizzle when using CocoaPods

v0.11.6

  • Use sentry-cocoa 3.0.1

v0.11.5

v0.11.4

  • Use android buildToolsVersion 23.0.1

v0.11.3

  • Fix Xcode archive to not build generic archive

v0.11.2

  • Fix Xcode archiving

v0.11.1

  • Using latest version of sentry-cocoa

v0.11.0

This is a big release because we switched our internal iOS client from swift to objc which drastically improve the setup experience and compatibility.

We also added support for codepush, please check the docs https://docs.sentry.io/clients/react-native/codepush/ for more information.

After updating run react-native unlink react-native-sentry and react-native link react-native-sentry again in order to setup everything correctly.

v0.10.0

v0.9.1

  • Update to sentry 2.1.11 which fixes a critical bug regarding sending requests on iOS

v0.9.0

  • Improve link and unlink scripts

v0.8.5

  • Fixed: bad operand types for binary operator

v0.8.4

  • Put execution on iOS into a background thread
  • Add parameter checks on android

v0.8.3

  • Bump sentry version to 2.1.10 to fix releases

v0.8.2

  • Updated podspec thx @alloy

v0.8.1

  • Added command to package json to inject MainApplication.java into RNSentryPackage

v0.8.0

  • Added native android support
  • raven-js is always used we use the native clients for sending events and add more context to them

v0.7.0

  • Bump KSCrash and Sentry version

v0.6.0

Use raven-js internally instead switching between native and raven-js.

Native client will be used when available.

Alot of API changes to more like raven-js

v0.5.3

  • Fix import for
#if __has_include(<React/RNSentry.h>)
#import <React/RNSentry.h> // This is used for versions of react >= 0.40
#else
#import "RNSentry.h" // This is used for versions of react < 0.40
#endif

v0.5.2

  • Prefix filepath with app:// if RavenClient is used

v0.5.1

  • Fix npm test
  • Added forceRavenClient option which forces to use RavenClient instead of the NativeClient

v0.5.0

v0.4.0

  • Added ignoreModulesExclude to exclude modules that are ignored by default for stacktrace merging
  • Added ignoreModulesInclude to add additional modules that should be ignored for stacktrace merging