Releases: getsentry/sentry-react-native
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
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
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
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
Dependencies
6.3.0-beta.2
6.3.0-beta.1
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)