Releases: getsentry/sentry-react-native
Releases · getsentry/sentry-react-native
8.13.0
Features
- Add breadcrumbs for dispatched React Navigation events (#6218)
- Add
Sentry.NavigationContainerdrop-in wrapper for React Navigation (#6199) - Opt-in: consume sentry-cocoa via Swift Package Manager. Set
SENTRY_USE_SPM=1beforepod installto pullSentryfrom sentry-cocoa's SPM package as a binary xcframework instead of the CocoaPods source build (#6182) - Add
disableAutoUploadoption to Expo plugin to disable source map and debug symbol uploads (#6195) - Expose
pauseAppHangTrackingandresumeAppHangTrackingAPIs on iOS (#6192) - Better route and dynamic param extraction for Expo Router (#6197)
Fixes
- Rethrow native exceptions from Sentry's Expo host handler so Android crashes terminate the process instead of leaving the app on a blank screen (#6228)
- Bound TTID/TTFD to prevent inflated transactions (#6210)
- Return
NOfromrequiresMainQueueSetupto avoid unnecessarydispatch_syncon the main queue during bridge init (#6202)
Dependencies
8.12.0
Features
- Multi-instance
<TimeToInitialDisplay>/<TimeToFullDisplay>coordination (#6090)- New
readyprop. When a screen has multiple async data sources, mount one<TimeToFullDisplay ready={...} />per source — TTID/TTFD is recorded only when every instance reportsready === true. - The existing
recordprop is unchanged BUT it is now deprecated in favor ofready.
- New
- Extract text content from children of touched components as a label fallback for touch breadcrumbs (#6106)
- Auto-inject
sentry-labelfrom static text content at build time whenannotateReactComponentsis enabled (#6141) - Respect Replay Mask boundaries when reading
sentry-labelfor touch breadcrumbs (#6142) - Add
textComponentNamesoption toannotateReactComponentsfor custom text components (#6169) - Add first-class
expoRouterIntegration()with auto-registration (#6189) - Expose
addConsoleInstrumentationFilterfrom@sentry/core(#6180) - Expose experimental
captureSurfaceViewsoption for Android Session Replay (#6175) - Add OTA SDK version to native
sdk.packageswhen JS bundle version differs from built-in version (#6191)
Fixes
- Deduplicate native HTTP breadcrumbs that duplicate JS XHR/fetch breadcrumbs (#6132)
- Fix duplicate JS error reporting on iOS New Architecture when the native SDK is initialized early via
sentry.options.json("Capture App Start Errors"). It's done by applying theExceptionsManager.reportExceptionC++ wrapper filter in both init paths (#6145) - Fix boolean options from
sentry.options.jsonbeing ignored on Android when usingRNSentrySDK.init(#6130) - Fix
includeWebFeedback: falseMetro config option causing crash at startup (#6150) - Fix
sentry-expo-upload-sourcemapsfailing for projects withdevEngines.packageManagerset to non-npm managers (#6155) - Fix Metro serializer wrapper breaking
getModulesRunBeforeMainModulefor third-party plugins likereact-native-workletsbundleMode(#6188)
Dependencies
8.11.1
8.11.0
Warning
sentry-react-native 8.10.0+ may crash when using AVAssetDownloadURLSession due to an issue in the sentry-cocoa SDK. Please use 8.11.1.
Features
- Use
accessibilityLabel,aria-label, andtestIDas fallback labels for touch breadcrumbs whensentry-labelis not set (#6103)
Fixes
- Fix the issue with uploading iOS Debug Symbols in EAS Build when using pnpm (#6076)
- Improve frame delay collection performance by using sentry-java
getFramesDelayAPI (#6074)
Dependencies
8.10.0
Warning
sentry-react-native 8.10.0+ may crash when using AVAssetDownloadURLSession due to an issue in the sentry-cocoa SDK. Please use 8.11.1.
Features
- Support
SENTRY_RELEASEandSENTRY_DISTenv vars in build scripts to override values insentry.options.jsonat build time (#6070) - Add
includeWebFeedbackMetro config option to exclude@sentry-internal/feedbackfrom the bundle (#6025) - Add rage tap detection — rapid consecutive taps on the same element emit
ui.multiClickbreadcrumbs and appear on the replay timeline with the rage click icon (#5992)
Fixes
- Android build failure in
expo-handlerwhen Android SDK 31 is not installed by usingsafeExtGetforcompileSdkVersionandminSdkVersion(#6061) - Stop the Hermes sampling profiler on React instance teardown to prevent
pthread_killSIGABRT when the JS thread is torn down with profiling active (#6035) - Restrict the URI scope of
getDataFromUrion iOS and Android (#6045) - Restrict the Metro source-context middleware to files within the project root (#6044)
- Escape
nameandversionvalues when injecting release constants into the web bundle (#6044) - Mask the Sentry auth token in the
sentry.gradleupload-task lifecycle log (#6057) - Discard invalid navigation/interaction transactions via an event processor instead of mutating the internal
_sampledflag, removing misleading "dropped due to sampling" debug logs (#6051)
Dependencies
8.9.2
8.9.1
Features
- Add new
@sentry/expo-upload-sourcemapspackage for uploading JavaScript bundles and source maps from Expo builds to Sentry (#6027)- The existing
sentry-expo-upload-sourcemapsbin bundled with@sentry/react-nativeis superseded by the new package; it continues to work unchanged for now
- The existing
- Expose scope-level attributes API (
setAttribute,setAttributes,removeAttribute) bridging to native SDKs (#6009) - Expose screenshot masking options (
screenshot.maskAllText,screenshot.maskAllImages,screenshot.maskedViewClasses,screenshot.unmaskedViewClasses) for error screenshots (#6007) - Warn Expo users at Metro startup when prebuilt native projects are missing Sentry configuration (#5984)
- Re-export AI SDK manual instrumentation helpers (
instrumentOpenAiClient,instrumentAnthropicAiClient,instrumentGoogleGenAIClient,createLangChainCallbackHandler,instrumentLangGraph,instrumentStateGraphCompile) for use in React Native apps (#6028) - Add
Sentry.GlobalErrorBoundarycomponent (andwithGlobalErrorBoundaryHOC) that renders a fallback UI for fatal non-rendering JS errors routed throughErrorUtilsin addition to the render-phase errors caught bySentry.ErrorBoundary. Opt-in flagsincludeNonFatalGlobalErrorsandincludeUnhandledRejectionsextend the fallback to non-fatal errors and unhandled promise rejections respectively. (#6023)
Fixes
- Fix
@sentry/expo-upload-sourcemapspublishing issue (#6037) - Fix iOS UI profiling options being silently ignored (#6012)
- Fix
_experiments.enableUnhandledCPPExceptionsV2being silently ignored on iOS (#6014) - Check
captureReplayreturn value in iOS bridge to avoid linking error events to uncaptured replays (#6008) - Report the expected properties file path and any missing keys when using
flavorAwareon Android, instead of failing with an opaqueIllegal null value provided in this collectionerror (#6031)
Dependencies
8.9.0
Warning
This release has a broken workspace-protocol dependency and cannot be installed; use 8.9.1
Features
- Add new
@sentry/expo-upload-sourcemapspackage for uploading JavaScript bundles and source maps from Expo builds to Sentry (#6027)- The existing
sentry-expo-upload-sourcemapsbin bundled with@sentry/react-nativeis superseded by the new package; it continues to work unchanged for now
- The existing
- Expose scope-level attributes API (
setAttribute,setAttributes,removeAttribute) bridging to native SDKs (#6009) - Expose screenshot masking options (
screenshot.maskAllText,screenshot.maskAllImages,screenshot.maskedViewClasses,screenshot.unmaskedViewClasses) for error screenshots (#6007) - Warn Expo users at Metro startup when prebuilt native projects are missing Sentry configuration (#5984)
- Re-export AI SDK manual instrumentation helpers (
instrumentOpenAiClient,instrumentAnthropicAiClient,instrumentGoogleGenAIClient,createLangChainCallbackHandler,instrumentLangGraph,instrumentStateGraphCompile) for use in React Native apps (#6028) - Add
Sentry.GlobalErrorBoundarycomponent (andwithGlobalErrorBoundaryHOC) that renders a fallback UI for fatal non-rendering JS errors routed throughErrorUtilsin addition to the render-phase errors caught bySentry.ErrorBoundary. Opt-in flagsincludeNonFatalGlobalErrorsandincludeUnhandledRejectionsextend the fallback to non-fatal errors and unhandled promise rejections respectively. (#6023)
Fixes
- Fix iOS UI profiling options being silently ignored (#6012)
- Fix
_experiments.enableUnhandledCPPExceptionsV2being silently ignored on iOS (#6014) - Check
captureReplayreturn value in iOS bridge to avoid linking error events to uncaptured replays (#6008) - Report the expected properties file path and any missing keys when using
flavorAwareon Android, instead of failing with an opaqueIllegal null value provided in this collectionerror (#6031)
Dependencies
8.8.0
Features
- Enable "Open Sentry" button in Playground for Expo apps (#5947)
- Add
attachAllThreadsoption to attach full stack traces for all threads to captured events on iOS (#5960) - Add
strictTraceContinuationandorgIdoptions for trace continuation validation (#5829) - Add
deeplinkIntegrationfor automatic deep link breadcrumbs (#5983) - Name navigation spans using dispatched action payload when
useDispatchedActionDatais enabled (#5982)
Fixes
- Fix sourcemap upload script failing when
withSentryis used programmatically inapp.config.ts(#6006) - Retry native module resolution to prevent silent event drops in production Hermes builds (#5981)
- Lazy-load Metro internal modules to prevent Expo 55 import errors (#5958)
- Fix app start transaction profile offset by using the actual profiling start timestamp instead of the adjusted app start time (#5962)
- Use React
componentStackas fallback when error has no stack trace on Android (#5965) - Add
SENTRY_PROJECT_ROOTenv var to override project root in Xcode build phase scripts for monorepo setups (#5961)
Dependencies
8.7.0 (Stable)
Features
- Add
Sentry.appLoaded()API to explicitly signal app start end (#5940) - Add
frames.delayspan data from native SDKs to app start, TTID/TTFD, and JS API spans (#5907) - Rename
FeedbackWidgettoFeedbackFormandshowFeedbackWidgettoshowFeedbackForm(#5931)- The old names are deprecated but still work
- Deprecate
FeedbackButton,showFeedbackButton, andhideFeedbackButton(#5933)
Fixes
- Fix inflated
http.clientspan durations on iOS when the app backgrounds during a request (#5944) - Fix crash caused by nullish response in supabase PostgREST handler (#5938)
- Fix iOS crash (EXC_BAD_ACCESS) in time-to-initial-display when navigating between screens (#5887)