Releases: getsentry/sentry-react-native
6.8.0
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 fromcollect-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
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 toannotateReactComponents
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
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 inSentry.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 optionalOptionsConfiguration<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
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
fromcore
to extract the URL from DSN avoiding unimplementedURL.protocol
errors (#4395)
Changes
- Rename
navigation.processing
span to more expressiveNavigation dispatch to screen A mounted/navigation cancelled
(#4423) - Add RN SDK package to
sdk.packages
for Cocoa (#4381)
Internal
- Initialize
RNSentryTimeToDisplay
during native moduleinit
on iOS (#4443)
Dependencies
6.5.0
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 thecaptureUserFeedback
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 toproduction
- Deprecated
_experiments.replaysSessionSampleRate
and_experiments.replaysOnErrorSampleRate
usereplaysSessionSampleRate
andreplaysOnErrorSampleRate
(#4384)
Dependencies
6.5.0-beta.1
Features
-
Adds new
captureFeedback
and deprecates thecaptureUserFeedback
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)
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 (Stable)
6.4.0-beta.1
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)
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 inmetro.config.js
using theenableSourceContextInDevelopment
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
afterRewriteFrames
to avoid overwrites by default (#4285)- If custom
RewriteFrames
is provided the order changes
- If custom
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