- 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)
- 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)
- 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)
- Bump CLI from v2.36.6 to v2.37.0 (#4153)
- Bump Cocoa SDK from v8.36.0 to v8.37.0 (#4156)
- Bump Android SDK from v7.14.0 to v7.15.0 (#4161)
- Bump JavaScript SDK from v7.119.0 to v7.119.1 (#4149)
- Bump CLI from v2.36.1 to v2.36.6 (#4116, #4131, #4137, #4144)
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
-
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 }), ], });
-
Exclude Sentry Web Replay by default, reducing the code in 130KB. (#4006)
- You can keep Sentry Web Replay by setting
includeWebReplay
totrue
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 });
- You can keep Sentry Web Replay by setting
- Add Android Logger when new frame event is not emitted (#4081)
- React Native Tracing Deprecations (#4073)
new ReactNativeTracing
toreactNativeTracingIntegration()
new ReactNavigationInstrumentation
toreactNavigationIntegration()
.new ReactNativeNavigationInstrumentation
toreactNativeNavigationIntegration()
.ReactNavigationV4Instrumentation
won't be supported in the next major SDK version, upgrade toreact-navigation@5
or newer.RoutingInstrumentation
andRoutingInstrumentationInstance
replace byIntegration
interface from@sentry/types
.enableAppStartTracking
,enableNativeFramesTracking
,enableStallTracking
,enableUserInteractionTracing
moved toSentry.init({})
root options.
- 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
- Add
Sentry.crashedLastRun()
(#4014)
- Use
install_modules_dependencies
for React iOS dependencies (#4040) Replay.maskAllText
masksRCTParagraphComponentView
(#4048)
- Add
spotlight
option (#4023)- Deprecating
enableSpotlight
andspotlightSidecarUrl
- Deprecating
- Bump JavaScript SDK from v7.118.0 to v7.119.0 (#4031)
- Bump Cocoa SDK from v8.33.0 to v8.34.0 (#4026)
TimeToInitialDisplay
andTimeToFullDisplay
start the time to display spans on mount (#4020)
- 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.
- The expected
- Fix
requireNativeComponent
missing inreact-native-web
(#3958)
- Bump JavaScript SDK from v7.117.0 to v7.118.0 (#4018)
- Bump Android SDK from v7.13.0 to v7.14.0 (#4022)
- Support
[email protected]
newsourceMapString
export (#4004) Sentry.captureMessage
stack trace is inevent.exception
(moved fromevent.threads
) (#3635, #3988)- To revert to the old behavior (causing the stack to be unsymbolicated) use
useThreadsForMessageStack
option
- To revert to the old behavior (causing the stack to be unsymbolicated) use
- Pass
sampleRate
option to the Android SDK (#3979) - Drop app start data older than one minute (#3974)
- Use
Platform.constants.reactNativeVersion
instead ofreact-native
internal export (#3949)
- Bump Android SDK from v7.12.0 to v7.13.0 (#3970, #3984)
- Bump Cocoa SDK from v8.31.1 to v8.32.0 (#3969)
-
Session Replay Public Beta (#3830)
To enable Replay use the
replaysSessionSampleRate
orreplaysOnErrorSampleRate
options.import * as Sentry from '@sentry/react-native'; Sentry.init({ _experiments: { replaysSessionSampleRate: 1.0, replaysOnErrorSampleRate: 1.0, }, });
To add React Component Names use
annotateReactComponents
inmetro.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.
- Improved Touch Event Breadcrumb components structure (#3899)
- Set
currentScreen
on native scope (#3927)
error.cause
chain is locally symbolicated in development builds (#3920)sentry-expo-upload-sourcemaps
no longer requires Sentry url when uploading sourcemaps tosentry.io
(#3915)- Flavor aware Android builds use
SENTRY_AUTH_TOKEN
env as fallback when token not found insentry-flavor-type.properties
. (#3917) mechanism.handled:false
should crash current session (#3900)
- Improve touch event component info if annotated with
@sentry/babel-plugin-component-annotate
(#3899) - Add replay breadcrumbs for touch & navigation events (#3846)
- Add network data to Session Replays (#3912)
- Filter Sentry Event Breadcrumbs from Mobile Replays (#3925)
sentry-expo-upload-sourcemaps
no longer requires Sentry url when uploading sourcemaps tosentry.io
(#3915)
- Bump Cocoa SDK from v8.25.0-alpha.0 to v8.30.0 (#3914)
- Bump Android SDK from v7.9.0-alpha.1 to v7.11.0-alpha.2 (#3830)
Access to Mobile Replay is limited to early access orgs on Sentry. If you're interested, sign up for the waitlist
-
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 }), ], });
- App Start Native Frames can start with zeroed values (#3881)
- 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)
- 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 Xcodeerror:
prefix (#3887)- Fixes
--allow-failure
failing Xcode builds
- Fixes
- Bump Cocoa SDK from v8.27.0 to v8.28.0 (#3866)
- Bump Android SDK from v7.8.0 to v7.10.0 (#3805)
- Bump JavaScript SDK from v7.113.0 to v7.117.0 (#3806)
- 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)
This release does not build on iOS. Please use 5.23.1
or newer.
-
Functional integrations (#3814)
Instead of installing
@sentry/integrations
and creating integrations using thenew
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.
- Remove unused
rnpm
config (#3811)
- 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
- Missing
RNSentryOnDrawReporterView
on iOS (#3832)
-
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
- Bump Cocoa SDK to 8.25.0-alpha.0
- Bump Android SDK to 7.9.0-alpha.1
- Updated metric normalization from
@sentry/core
(#11519) - Metric rate limiting from
sentry-cocoa
andsentry-android
- Bump Cocoa SDK from v8.21.0 to v8.24.0 (#3686, #3696)
- Bump Android SDK from v7.6.0 to v7.8.0 (#3750)
- Bump JavaScript SDK from v7.100.1 to v7.110.1 (#3601, #3758)
- Add
getDefaultConfig
option togetSentryExpoConfig
(#3690) - Add
beforeScreenshot
option toReactNativeOptions
(#3715)
- 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)
-
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>; }
- 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)
- 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.
- Bump CLI from v2.25.2 to v2.30.0 (#3534, #3666)
- Bump Cocoa SDK from v8.20.0 to v8.21.0 (#3651)
- Bump Android SDK from v7.3.0 to v7.5.0 (#3615)
- 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)
- 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)
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.
-
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" }, });
- Upload Debug Symbols Build Phase continues when
node
not found inWITH_ENVIRONMENT
(#3573) - Fix
proguardUuid
loading on Android (#3591)
- Bump Android SDK from v6.34.0 to v7.3.0 (#3434)
- Bump JavaScript SDK from v7.81.1 to v7.100.1 (#3426, #3589)
-
Add
@spotlightjs/spotlight
support (#3550)Download the
Spotlight
desktop application and add the integration to yourSentry.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 insentry-expo-upload-sourcemaps
(#3571)
- 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)
-
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)
- To set up
react-native-visionos
with the Sentry React Native SDK follow the standardiOS
guides. - Xcode project is located in
visionos
folder instead ofios
.
- To set up
- Fix
WITH_ENVIRONMENT
overwrite insentry-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
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.
-
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
inApp.js
import * as Sentry from '@sentry/react-native'; Sentry.init({ dsn: '__DSN__', });
- And
-
New
getSentryExpoConfig
for simple Metro configuration (#3454, #3501, #3514)- This function is a drop in replacement for
getDefaultConfig
fromexpo/metro-config
// const { getDefaultConfig } = require("expo/metro-config"); const { getSentryExpoConfig } = require("@sentry/react-native/metro"); // const config = getDefaultConfig(__dirname); const config = getSentryExpoConfig(__dirname);
- This function is a drop in replacement for
-
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
- 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)
- Make
getSentryExpoConfig
options parameter optional (#3514) - Use
@sentry/react-native/expo
as plugin name inexpo-upload-sourcemaps.js
(#3515)
This release is compatible with [email protected]
and newer.
-
withSentryExpoSerializers
changes togetSentryExpoConfig
(#3501)getSentryExpoConfig
accepts the same parameters asgetDefaultConfig
fromexpo/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
- Or can be overwritten by
-
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)
- Includes fixes from version 5.15.2
- Stop sending navigation route params for auto-generated transactions, as they may contain PII or other sensitive data (#3487)
- Further details and other strategies to mitigate this issue can be found on our trouble shooting guide page
-
Add
withSentryExpoSerializers
for easy configurablemetro.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.
- 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
- Sentry CLI upgrade resolves Xcode Could timeout during source maps upload #3390
-
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
inApp.js
import * as Sentry from '@sentry/react-native'; Sentry.init({ dsn: '__DSN__', });
- And
-
Update
sentry-xcode.sh
scripts with Node modules resolution (#3450)- RN SDK and Sentry CLI are dynamically resolved if override is not supplied
- Transform shipped JSX for both react-native and web (#3428)
- Removes builds errors when using react-native-web with Webpack
-
New simplified Sentry Metro Serializer export (#3450)
const { createSentryMetroSerializer } = require('@sentry/react-native/metro');
- 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)
- Add hermes to Pod dependencies to fix profiling with
use_frameworks
(#3416) - Define SentryCurrentDateProvider in RNSentry (#3418)
- Add iOS profiles to React Native Profiling (#3349)
- 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
- Bump Android SDK from v6.33.1 to v6.34.0 (#3408)
- Bump JavaScript SDK from v7.80.0 to v7.81.1 (#3396)
- Fix SIGSEV, SIGABRT and SIGBUS crashes happening after/around the August Google Play System update, see #2955 for more details
-
Export New JS Performance API (#3371)
// Start a span that tracks the duration of expensiveFunction const result = Sentry.startSpan({ name: 'important function' }, () => { return expensiveFunction(); });
Read more at https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md#7690
-
Report current screen in
contexts.app.view_names
(#3339)
- Remove
platform: node
from Debug Builds Events (#3377)
- Bump Android SDK from v6.32.0 to v6.33.1 (#3374)
- Bump Cocoa SDK from v8.14.2 to v8.15.2 (#3376)
- Bump CLI from v2.21.2 to v2.21.3 (#3381)
- Bump JavaScript SDK from v7.76.0 to v7.80.0 (#3372)
- Automatically detect environment if not set (#3362)
- Send Source Maps Debug ID for symbolicated Profiles (#3343)
- Bump JavaScript SDK from v7.73.0 to v7.76.0 (#3344, #3365)
- Bump Cocoa SDK from v8.13.0 to v8.14.2 (#3340)
- Bump Android SDK from v6.30.0 to v6.32.0 (#3341)
- Waif for
has-sourcemap-debugid
process to exit (#3336)
-
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
andUpload 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 yourandroid/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
andscripts/sentry-xcode-debug-files.sh
in your build phases. And add the following to yourios/.xcode.env.local
file.export SENTRY_DISABLE_AUTO_UPLOAD=true
- 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)
- Bump CLI from v2.20.7 to v2.21.2 (#3301)
- Bump Android SDK from v6.29.0 to v6.30.0 (#3309)
- Bump JavaScript SDK from v7.69.0 to v7.73.0 (#3297)
- Bump Cocoa SDK from v8.11.0 to v8.13.0 (#3292)
- 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)
- This flag equals
- Add
enableNdk
property to ReactNativeOptions for Android. (#3304)
- Create profiles for start up transactions (#3281)
- Fix Hermes Bytecode Symbolication one line off (#3283)
- Bump CLI from v2.20.5 to v2.20.7 (#3265, #3273)
- Bump Cocoa SDK from v8.10.0 to v8.11.0 (#3245)
- Bump JavaScript SDK from v7.63.0 to v7.69.0 (#3277, #3247)
- Bump Android SDK from v6.28.0 to v6.29.0 (#3271)
- Bump Cocoa SDK from v8.9.4 to v8.10.0 (#3250)
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
.
-
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 thesentry-trace
andbaggage
HTTP headers to (which is what propagates tracing information).Sentry.init({ tracePropagationTargets: ["third-party-site.com", /^https:\/\/yourserver\.io\/api/], });
Sentry.init
must be called beforeSentry.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)
- Bump Android SDK from v6.27.0 to v6.28.0 (#3192)
- Bump Cocoa SDK from v8.9.3 to v8.9.4 (#3225)
- Bump JavaScript SDK from v7.61.0 to v7.63.0 (#3226, #3235)
- Bump CLI from v2.19.4 to v2.20.5 (#3212, #3233)
-
Alpha support for Hermes JavaScript Profiling (#3057)
Profiling is disabled by default. To enable it, configure both
tracesSampleRate
andprofilesSampleRate
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.
- Warn users about multiple versions of
promise
package which can cause unexpected behavior like undefinedPromise.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)
- Bump JavaScript SDK from v7.57.0 to v7.60.1 (#3184, #3199)
- Bump Cocoa SDK from v8.8.0 to v8.9.3 (#3188, #3206)
- Bump Android SDK from v6.25.1 to v6.27.0 (#3170)
- Filter beforeSendTransaction from the Native SDK (#3140)
- Use
android.namespace
for AGP 8 and RN 0.73 (#3133)
- Bump JavaScript SDK from v7.54.0 to v7.57.0 (#3119, #3153)
- Bump CLI from v2.18.1 to v2.19.4 (#3124, #3151)
- Bump Android SDK from v6.22.0 to v6.25.0 (#3127, #3163)
- Bump Cocoa SDK from v8.7.3 to v8.8.0 (#3123)
- Overwrite Expo bundle names in stack frames (#3115)
- This enables source maps to resolve correctly without using
sentry-expo
package
- This enables source maps to resolve correctly without using
- 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)
- Bump JavaScript SDK from v7.52.0 to v7.54.0 (#3071, #3088, #3094)
- Bump Android SDK from v6.18.1 to v6.22.0 (#3086, #3075)
- Bump Cocoa SDK from v8.7.1 to v8.7.3 (#3076)
- Bump CLI from v2.17.5 to v2.18.1 (#3082)
- Add
expo
,react_native_version
andhermes_version
to React Native Context (#3050)
- Bump JavaScript SDK from v7.51.1 to v7.52.0 (#3054, #3068)
- Bump Cocoa SDK from v8.6.0 to v8.7.1 (#3056, #3067)
- Fix
event.origin
andevent.environment
on unhandled exception (#3041) - Don't pass
enableTracing
from RN tosentry-cocoa
options (#3042) - Only store envelopes of fatal crashes on iOS (#3051)
- Only store envelopes of fatal crashes on iOS (#3051)
- Store envelopes immediately during a fatal crash on iOS (#3031)
- Do not overwrite
_metadata
option by defaultsdkInfo
(#3036)
- Bump JavaScript SDK from v7.49.0 to v7.50.0 (#3035)
- Bump Cocoa SDK from v8.5.0 to v8.6.0 (#3023)
- Bump Android SDK from v6.17.0 to v6.18.1 (#3017)
- Bump CLI from v2.17.4 to v2.17.5 (#3024)
- Store envelopes immediately during a fatal crash on iOS (#3030)
- Add TS 4.1 typings (#2995)
- TS 3.8 are present and work automatically with older projects
- Add CPU Info to Device Context (#2984)
- 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)
- Bump JavaScript SDK from v7.47.0 to v7.49.0 (#2975, #2988)
- Bump Cocoa SDK from v8.4.0 to v8.5.0 (#2977)
- Bump CLI from v2.17.1 to v2.17.4 (#2966, #2982, #2987)
- Disable
enableNativeCrashHandling
andenableAutoPerformanceTracing
on Apple (#2936)- Mac Catalyst builds successfully
sentry.gradle
Gracefully skip modules collecting if the script doesn't exist (#2952)
- Bump JavaScript SDK from v7.45.0 to v7.47.0 (#2946, #2958)
- Bump Android SDK from v6.16.0 to v6.17.0 (#2948)
- Bump Cocoa SDK from v8.3.3 to v8.4.0 (#2954)
- Bump CLI from v2.16.1 to v2.17.1 (#2957, #2964)
- 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 })
- 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 })
- Bump JavaScript SDK from v7.44.2 to v7.45.0 (#2927)
- Bump CLI from v2.15.2 to v2.16.1 (#2926)
- Bump Cocoa SDK from v8.3.2 to v8.3.3 (#2925)
- Add User Interaction Tracing for Touch events (#2835)
- Add Gesture Tracing for React Native Gesture Handler API v2 (#2865)
- Fix use Fetch transport when option
enableNative
isfalse
(#2897) - Improve logs when
enableNative
isfalse
(#2897)
- Bump JavaScript SDK from v7.40.0 to v7.44.2 (#2874, #2908, #2909)
- Bump Android SDK from v6.15.0 to v6.16.0 (#2903)
- Bump Cocoa SDK from v8.3.0 to v8.3.2 (#2895)
- Bump CLI from v2.14.4 to v2.15.2 (#2898)
- Remove non URL
frame.abs_path
which was causing source maps to fail (#2891)
- Add App Context
in_foreground
(#2826)
- Match app start measurements naming with other SDKs (#2855)
app.start.cold
toapp_start_cold
app.start.warm
toapp_start_warm
- Bump Cocoa SDK from v8.0.0 to v8.2.0 (#2776)
- Bump JavaScript SDK from v7.37.2 to v7.40.0 (#2836, #2864)
- Bump CLI from v2.10.0 to v2.14.3 (#2848, #2869)
- Bump Android SDK from v6.14.0 to v6.15.0 (#2868)
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.
- 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
andbreadcrumbs
fromsentry-cocoa
during event processing. (#2713)breadcrumb.level
valuelog
is transformed todebug
when syncing with native layers.- Remove
breadcrumb.level
valuecritical
transformation tofatal
. - Default
breadcrumb.level
isinfo
- Option
enableAutoPerformanceTracking
renamed toenableAutoPerformanceTracing
- Option
enableOutOfMemoryTracking
renamed toenableWatchdogTerminationTracking
- 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 toidleTimeoutMs
maxTransactionDuration
renamed tofinalTimeoutMs
touchEventBoundaryProps.labelName
property instead of defaultaccessibilityLabel
fallback (#2712)- Message event current stack trace moved from
exception
tothreads
(#2694)
- Unreachable fallback to fetch transport if native is not available (#2695)
- Collect modules script for XCode builds supports NODE_BINARY to set path to node executable (#2805)
- React Native Error Handlers Integration doesn't crash if ErrorUtils are not available (#2808)
- Bump Android SDK from v6.12.1 to v6.14.0 (#2790, #2809, #2828)
- Bump Sample React Native from v0.71.0 to v0.71.1 (#2767)
- Bump JavaScript SDK from v7.32.1 to v7.37.2 (#2785, #2799, #2818)
- React Native Error Handlers Integration doesn't crash if ErrorUtils are not available (#2808)
- 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)
- Bump Android SDK from v6.12.1 to v6.14.0 (#2790, #2809, #2828)
- Bump Sample React Native from v0.71.0 to v0.71.1 (#2767)
- Bump JavaScript SDK from v7.32.1 to v7.37.2 (#2785, #2799, #2818)
- Latest changes from 4.14.0
- Option
enableAutoPerformanceTracking
renamed toenableAutoPerformanceTracing
- Option
enableOutOfMemoryTracking
renamed toenableWatchdogTerminationTracking
- Sync
tags
,extra
,fingerprint
,level
,environment
andbreadcrumbs
fromsentry-cocoa
during event processing. (#2713)breadcrumb.level
valuelog
is transformed todebug
when syncing with native layers.- Remove
breadcrumb.level
valuecritical
transformation tofatal
. - Default
breadcrumb.level
isinfo
- Add support for RNGP introduced in React Native 0.71.0 (#2759)
- Take screenshot runs on UI thread on Android (#2743)
- Bump Android SDK from v6.11.0 to v6.12.1 (#2755)
- Bump JavaScript SDK from v7.29.0 to v7.32.1 (#2738, #2777)
- Latest changes from 4.13.0
- Message event current stack trace moved from exception to threads (#2694)
touchEventBoundaryProps.labelName
property instead of defaultaccessibilityLabel
fallback (#2712)
- Unreachable fallback to fetch transport if native is not available (#2695)
- Missing
originalException
inbeforeSend
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)
- Bump Cocoa SDK from v7.31.3 to v7.31.5 (#2699, #2714)
- Bump JavaScript SDK from v7.26.0 to v7.29.0 (#2705, #2709, #2715, #2736)
- Bump Android SDK from v6.9.2 to v6.11.0 (#2704, #2724)
- Add
lastEventId
method to the API (#2675)
Sentry.startTransaction
doesn't requireop
(#2691)
- Bump Cocoa SDK from v7.31.2 to v7.31.3 (#2647)
- Bump JavaScript SDK from v7.21.1 to v7.26.0 (#2672, #2648, #2692)
- Bump Android SDK from v6.9.1 to v6.9.2 (#2677)
- Latest changes from 4.11.0
- Screenshots (#2610)
- 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)
- Latest changes from 4.10.0
- Add missing source Spec for RNSentry Codegen. (#2639)
- 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 theBundle React Native code and images
build phase. The collection only works on Release builds. Android builds have a new step insentry.gradle
plugin. More in the migration documentation.
- To collect JS dependencies on iOS add
- Latest changes from 4.9.0
- Add
maxQueueSize
option (#2578)
- Use
Scope
class rather thanScope
type for top-level functions (#2627)
- Bump JavaScript SDK from v7.16.0 to v7.20.1 (#2582, #2598, #2632, #2607)
- Bump Cocoa SDK from v7.29.0 to v7.31.2 (#2592, #2601, #2629)
- Bump Android SDK from v6.6.0 to v6.8.0 (#2600, #2628)
- Message event can have attached stacktrace (#2577)
- Fixed maximum call stack exceeded error resulting from large payloads (#2579)
- Latest changes from 4.7.1
- Remove hardcoded Folly version (#2558)
- Send react native js engine, turbo module, fabric flags and component stack in Event contexts (#2552)
- Bump CLI from v1.74.4 to v2.7.0 (#2457)
- Bump Android SDK from v6.5.0 to v6.6.0 (#2572)
- Bump Cocoa SDK from v7.28.0 to v7.29.0 (#2571)
- Remove duplicate sdk package record from envelope (#2570)
- Fix
appHangsTimeoutInterval
->appHangTimeoutInterval
option name (#2574)
- Bump Android SDK from v6.4.3 to v6.5.0 (#2535)
- Bump JavaScript SDK from v7.14.2 to v7.16.0 (#2536, #2561)
- Bump Cocoa SDK from v7.27.1 to v7.28.0 (#2548)
- Latest changes from 4.6.1
- Add initial support for the RN New Architecture, backwards compatible RNSentry Turbo Module (#2522)
- 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)
- 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
- Bump JavaScript SDK from v7.14.0 to v7.14.2 (#2511, #2526)
- Bump Cocoa SDK from v7.27.0 to v7.27.1 (#2521)
- Bump Android SDK from v6.4.2 to v6.4.3 (#2520)
- Make
configureScope
callback safe #2510
- Bump JavaScript SDK from v7.14.0 to v7.14.1 (#2511)
- Bump Cocoa SDK from v7.27.0 to v7.27.1 (#2521)
- Bump Android SDK from v6.4.2 to v6.4.3 (#2520)
- SDK Gracefully downgrades when callback throws an error (#2502)
- React Navigation v5 ignores when current route is undefined after state changed. (#2484)
- Add ClientReports (#2496)
- 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 thesendClientReports
option. This only applies to self-hosted Sentry. If you are using sentry.io, no action is needed.
- Bump Cocoa SDK from v7.25.1 to v7.27.0 (#2500, #2506)
- Bump JavaScript SDK from v7.13.0 to v7.14.0 (#2504)
- Latest changes from 4.5.0
- New ReactNativeTracingOptions idleTimeoutMs and finalTimeoutMs replacing idleTimeout and maxTransactionDuration respectively (#2481)
- Update warm/cold start span ops (#2487)
- Detect hard crash the same as native sdks (#2480)
- Integrations factory receives default integrations (#2494)
- Add attachments support (#2463)
- ReactNativeTracingOptions maxTransactionDuration is in seconds (#2469)
- Latest changes from 4.3.x
- Add Transaction Source for Dynamic Sampling Context (#2454)
- Bump Cocoa SDK from v7.23.0 to v7.24.1 (#2456)
- Bump Android SDK from v6.3.1 to v6.4.1 (#2437)
- Bump JavaScript SDK from v7.9.0 to v7.12.1 (#2451)
- ReactNativeTracing wrongly marks transactions as deadline_exceeded when it reaches the idleTimeout (#2427)
- Latest changes from 4.2.x
- Auto linking for RN >= 0.69 (#2332)
- Bump Cocoa SDK to v7.23.0 (#2401)
- Bump Android SDK to v6.3.1 (#2410)
- Bump JavaScript SDK to v7.9.0 (#2412)
- Should not ignore
options.transport
function provided inSentry.init(...)
(#2398)
- SENTRY_DIST accepts non-number values on Android (#2395)
- Bump Cocoa SDK to v7.21.0 (#2374)
- Bump Android SDK to v6.3.0 (#2380)
- Bump JavaScript SDK to v7.7.0 (#2375)
- Solve reference to private cocoa SDK class (#2369)
- Set default unit for measurements (#2360)
- When using SENTRY_DIST env. var. on Android, SDK fails to convert to an Integer (#2365)
- Fix: Send DidBecomeActiveNotification when OOM enabled (#2326)
- Fix: SDK overwrites the user defined ReactNativeTracing (#2319)
- Bump Sentry JavaScript 7.3.1 (#2306)
- Bump Sentry Cocoa 7.18.1 (#2320)
- Bump Sentry Android 6.1.4 (#2320)
- Fix Calculate the absolute number of Android versionCode (#2313)
- Filter out app start with more than 60s (#2303)
- Bump Sentry JavaScript 7.1.1 (#2279)
- Bump Sentry Cocoa 7.18.0 (#2303)
- Bump Sentry Android 6.1.2 (#2303)
By bumping Sentry Javascript, new breaking changes were introduced, to know more what was changed, check the breaking changes changelog from Sentry Javascript.
- Fix warning missing DSN on BrowserClient. (#2294)
By bumping Sentry Javascript, new breaking changes were introduced, to know more what was changed, check the breaking changes changelog from Sentry Javascript.
- feat: Support macOS (#2240) by @ospfranco
- fix: Fix cold start appearing again after js bundle reload on Android. #2229
- fix: Make withTouchEventBoundary options optional #2196
- Bump: @sentry/javascript dependencies to 6.19.2 (#2175) by @marandaneto
- fix: Respect given release if no dist is given during SDK init (#2163)
- Bump: @sentry/javascript dependencies to 6.19.2 (#2175)
- Bump: Sentry Cocoa to 7.11.0 and Sentry Android to 5.7.0 (#2160)
- fix(android): setContext serializes as context for Android instead of extra (#2155)
- fix(android): Duplicate Breadcrumbs when captuing messages #2153
- 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
- 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)
- feat: Support setting maxCacheItems #2102
- fix: Clear transaction on route change for React Native Navigation #2119
- 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 toaccessibilityLabel
and then finallydisplayName
. #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
- feat: Touch events now track components with
sentry-label
prop, falls back toaccessibilityLabel
and then finallydisplayName
. #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
- 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
- fix: fetchNativeDeviceContexts returns an empty Array if no Device Context available #2002
- Bump: Sentry Cocoa 7.9.0 #2011
- fix: Polyfill the promise library to permanently fix unhandled rejections #1984
- 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
- Deprecate initialScope in favor of configureScope #1963
- Bump: Sentry Android to 5.5.1 and Sentry Cocoa to 7.7.0 #1965
- replace usage of master to main (30b44232) by @marandaneto
- fix: ReactNavigationV4Instrumentation null when evaluating 'state.routes' #1940
- fix: ConcurrentModification exception for frameMetricsAggregator #1939
- feat(android): Support monorepo in gradle plugin #1917
- fix: Remove dependency on promiseRejectionTrackingOptions #1928
- fix: Fix dynamic require for promise options bypassing try catch block and crashing apps #1923
- 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
- fix(ios): tracesSampler becomes NSNull in iOS and the app cannot be started (#1872) by @marandaneto
- Bump Sentry Android SDK to 5.3.0 #1860
- feat(ios): Missing config
enableOutOfMemoryTracking
on iOS/Mac (#1858) by @marandaneto
-
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)
- fix: Type React Native Navigation instrumentation constructor argument as unknown to avoid typescript errors #1817
- feat: Routing instrumentation for React Native Navigation #1774
- Feat: Allow custom release for source map upload scripts #1548
- ref: Remove v5 prefix from react navigation instrumentation to support v6 #1768
- Fix: Set Java 8 for source and target compatibility if not using AGP >= 4.2.x (#1763)
- Bump: Android tooling API 30 (#1761)
- fix: Add sentry-cli as a dependency #1755
- 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
- 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
- feat: Native slow/frozen frames measurements #1711
- 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
- feat: Track stalls in the JavaScript event loop as measurements #1542
- fix: Fix the error handler (error dialog) not called in dev #1712
- build(ios): Bump sentry-cocoa to 7.1.4 #1700
- 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
- fix: Fix
Sentry.close()
not correctly resolving the promise on iOS. #1617 - build(js): Bump sentry-javascript dependencies to 6.7.1 #1618
- fix: Fatal uncaught events should be tagged handled:false #1597
- fix: Fix duplicate breadcrumbs on Android #1598
- 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
- 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
- fix: Process "log" levels in breadcrumbs before sending to native #1565
- 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
- fix: Use the latest outbox path from hub options instead of private options #1529
- fix: enableNative: false should take precedence over autoInitializeNativeSdk: false #1462
- fix: Type navigation container ref arguments as any to avoid TypeScript errors #1453
- 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
- 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
- fix: Fix unhandled promise rejections not being tracked #1367
- 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
- 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
- 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
- build(android): Bump
sentry-android
to 3.2.1 #1296
- 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
- build(ios): Bump
sentry-cocoa
to 6.0.9 #1200
- 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
- build(android): Changes android package name from
io.sentry.RNSentryPackage
toio.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
- fix: Only show the "Native Sentry SDK is disabled" warning when
enableNative
is false andenableNativeNagger
is true. #1084 - build: Bump @sentry/javascript dependencies to 5.25.0. #1118
- build: Bump @sentry/javascript dependencies to 5.24.2 #1091
- fix: Add a check that
performance
exists before using it. #1091
- 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
- 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
- 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
- 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
- fix: Use
LogBox
instead ofYellowBox
if possible. #989 - fix: Don't add
DeviceContext
default integration ifenableNative
is set tofalse
. #993 - fix: Don't log "Native Sentry SDK is disabled" if
enableNativeNagger
is set tofalse
. #993 - feat: Migrate to
@sentry/react
from@sentry/browser
and exposeErrorBoundary
& the redux enhancer. #1005
- feat: Touch events take Regex for ignoreNames & add tests #973
- fix: Don't prefix app:/// to "native" filename as well #957
- feat: Add sdk_info to envelope header on Android. #958
- Bump
sentry-cocoa
5.1.8
- 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
- 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.
- fix: Fix Native Wrapper not checking enableNative setting #919
- Bump cocoa 5.1.4
- fix(ios): We only store the event in release mode #917
- 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
- Bump android 2.1.4 #891
- Expose session timeout. #887
- Added
event.origin
andevent.environment
tags to determine where events originate from. #890
- Filtered out
options
keys passed toinit
that would crash native. #885
- 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)
- Bump
@sentry/wizard
to1.1.4
- Fixes a bug in
DebugSymbolicator
- Bump
@sentry/wizard
to1.1.2
- Bump
@sentry/*
to^5.15.4
- Bump
@sentry/*
to^5.15.2
- 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
- Fix sourcemap path for Android and
react-native
version< 0.61
- Expose Android SDK in Java
- Bump
io.sentry:sentry-android:2.0.0
- Fixes a bug on Android when sending events with wrong envelope size
- Bump
@sentry/wizard
to1.1.1
fixing iOS release identifiers - console.warn und unhandled rejections in DEV
- Bump
io.sentry:sentry-android:2.0.0-rc04
- Added support for Hermes runtime!!
- Fixed a lot of issues on Android
- NDK support
- fix(android): Crash if stacktrace.frames is empty (#742)
- Bump
io.sentry:sentry-android:1.7.29
- Bump
@sentry/*
to^5.10.0
- Allow overriding sentry.properties location (#722)
- Bump
@sentry/*
to^5.9.0
- fix(android): Feedback not working (#706)
- fix(types): Fix type mismatch when copying breadcrumb
type
(#693)
- Fixed an issue where breadcrumbs failed to be copied correctly
- Fix missing
type
, miscaststatus_code
entries in Android breadcrumbs
- Store
environment
,release
&dist
on native iOS and Android clients in case of an native crash
- Fix error message to guide towards correct docs page
- Convert
message
in Java to string if it's a map (#653)
- Also catch
ClassCastException
to support react-native versions < 0.60 (#651)
- Expose
BrowserIntegrations
to change browser integrations (#639)
- Fixes
breadcrumb.data
cast if it's not a hashmap (#651)
- Fixed typo in
RNSentry.m
(#658)
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',
});
- Add a check for an empty stacktrace on Android (#594)
- Bump
raven-js
3.27.1
- Bump
sentry-wizard
0.13.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
- Fix bump version script
- Update android build tools and gradle scripts to be compatible with latest version
- Fix support to build on windows
- Bump
sentry-cocoa
4.1.3
- Fix import for ArrayList and ReadableArray on Android, Fixes #511
- Use
buildToolsVersion
in build.gradle
- Add fingerprint support for iOS/Android, Fixes #407
- Add support for tvOS
- Bump
@sentry/wizard
0.12.1
- Add constructor for
RNSentryPackage.java
, Fixes #490
react-native-sentry >= 0.39.0
requiresreact-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
- Bump
@sentry/wizard
0.10.2
- [Android] Use
sentry-android
1.7.4
- [Android] set empty message to prevent breadcrumb exception
- [Android] Remove requirement to pass in
MainApplication
new RNSentryPackage(MainApplication.this)
- [Android] Call event callbacks even on failure to trigger crashes when device is offline
- 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
- Bump raven-js to 3.24.2
- Fixed #391
- Bump sentry-cocoa to 3.12.4
- Fix wizard command
- Fixed #374
- Bump sentry-cocoa to 3.12.0
- Fixes an issue where error will not be reported to Sentry.
- Fixed #354
- Fixed #353
- Fixed #347
- Fixed #346
- Fixed #342
- Add pro guard default rule @kazy1991
- Exposed crashedLastLaunch for iOS @monotkate
- Fixed #337
- Fixed #333
- Fixed #331
- Fixed #322
- Update sentry-wizard
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 inios
/android
folder - In your Xcode build scripts once in
Bundle React Native code and images
and once inUpload 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
- Bump
@sentry/wizard
to0.7.3
- Bump
sentry-cocoa
to3.10.0
- Fixed #169
- Use https://github.com/getsentry/sentry-wizard for setup process
- Fix podspec file
- Fix gradle regex to allow number in projectname
Updated npm dependencies
Deploy and release over Probot
Refactored iOS to use shared component from sentry-cocoa. Also squashed many little bugs on iOS.
- Fixed #281
- Fixed #280
- Fixed #275
- Fixed #274
- Fixed #272
- Fixed #253
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
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.
- Added
setShouldSendCallback
#250
- Fix a bug in gradle script that trigged the sourcemap upload twice
- Fixed #245
- Fixed #234
- Fixed #241
- Bump
sentry-cli
version to1.20.0
- Fix frame urls when only using
raven-js
- Upgrade
sentry-java
to1.5.3
- Upgrade
sentry-cocoa
to3.8.1
- Added support for
sampleRate
option
- Fixed #228 again ¯\(ツ)/¯
- Fixed #228
- Add more event properties for
setEventSentSuccessfully
callback on Android
- 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.
- Fixing device farm tests
- Store event on release and send on next startup.
- Fixed an issue where javascript error wasn't sent everytime
- Bump
sentry-cocoa
to3.6.0
- Make
userId
optional for user context - Bump
sentry-cocoa
to3.5.0
- Bump
sentry-java
to1.5.1
- Fix linking step
- Bump
raven-js
to3.17.0
- Fixed #190
- Fix
disableNativeIntegration
proptery to use right transport
- Remove send callback when native integration isn't available.
- Removed strange submodule
- Bump
sentry-java
to1.4.0
- Bump
sentry-cocoa
to3.4.2
- Fixed #182
- Fixed path detection of sentry-cli
- Fixed last release
- Added compatiblity for react-native
0.47.0
- Fixed #169
- Fixed #106
- Bumped
sentry-cocoa
to3.3.3
Also added integration tests running on AWS Device Farm.
- Fixed #124
- Updated to
sentry-cocoa
3.1.2
- Fixed #156
- Fixed #166
- Fixed #161
Fixed #163
- Fixed #159
- Fixes breadcrumb tracking on android
- Improve performance for
react-native >= 0.46
- Bump
sentry-cocoa
andKSCrash
- Push Podspec to
sentry-cocoa
3.1.2
- Removed example project from repo
- Make sure native client is only initialized once
- Revert to
23.0.1
android build tools
- Fixes #131
- Bump
raven-js
3.16.1
- Fixes #136
- Allowing calls to Sentry without calling
install()
- Add internal logging if
logLevel >= SentryLog.Debug
- Use
sentry-cocoa
3.1.2
- Fixes #67
- Fixes #116
- Fixes #51
- Fixed Android version dependency
- Overhauled internal handling of exceptions
- Updated iOS and Android native dependencies
- Fixes #105
- Added option
disableNativeIntegration
- Use sentry-cocoa
3.0.9
- Fixes #100
- Update
raven-js
to3.16.0
- Update
sentry-cocoa
to3.0.8
- Fixes #64
- Fixes #57
- Fix typo
- Add support on iOS for stacktrace merging and
react-native 0.45
- Fixes #92
- Fixes #95
- Fixes #91 #87 #82 #63 #54 #48
- Fixed #90
- Fixed #90
- Fixed #94
- Use
3.0.7
sentry-cocoa
in Podspec
- Removed
RSSwizzle
useSentrySwizzle
instead
Update Podspec to use Sentry/KSCrash
- Fix
duplicate symbol
RSSwizzle
when using CocoaPods
- Use
sentry-cocoa
3.0.1
- Fix #77
- Use android buildToolsVersion 23.0.1
- Fix Xcode archive to not build generic archive
- Fix Xcode archiving
- Using latest version of
sentry-cocoa
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.
- Greatly improved the linking process. Check out our docs for more information https://docs.sentry.io/clients/react-native/
- Update to sentry 2.1.11 which fixes a critical bug regarding sending requests on iOS
- Improve link and unlink scripts
- Fixed: bad operand types for binary operator
- Put execution on iOS into a background thread
- Add parameter checks on android
- Bump sentry version to 2.1.10 to fix releases
- Updated podspec thx @alloy
- Added command to package json to inject MainApplication.java into RNSentryPackage
- Added native android support
- raven-js is always used we use the native clients for sending events and add more context to them
- Bump KSCrash and Sentry version
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
- 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
- Prefix filepath with
app://
if RavenClient is used
- Fix
npm test
- Added
forceRavenClient
option which forces to use RavenClient instead of the NativeClient
- Added support for installation with cocoapods see https://docs.sentry.io/clients/react-native/#setup-with-cocoapods
- Lowered minimum version requirement for
react-native
to0.38.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