Skip to content

Releases: getsentry/sentry-react-native

8.19.0

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 16 Jul 13:45

Features

  • Aggregate TurboModule call counts + latency per (module, method, kind) and flush them on transaction finish and on a lazy periodic timer (#6377)

    Counters land on the finishing transaction as a synthetic turbo_modules.aggregate child span (per-call breakdown in span attributes) plus headline measurements on the root span (turbo_modules.call_count, turbo_modules.error_count, turbo_modules.total_ms, turbo_modules.top_module_ms). Long-running sessions without transactions emit a periodic info-level event (default every 30s, only when there's data).

    Sentry.init({
      integrations: [
        Sentry.turboModuleContextIntegration({
          // optional knobs (defaults shown):
          enableAggregateStats: true,
          aggregateFlushIntervalMs: 30_000,
          ignoreTurboModules: ['RNSentry'],
        }),
      ],
    });
  • Add Sentry.reportFullyDisplayed() imperative API for signaling Time to Full Display (#6419)

  • Add enableHistoricalTombstoneReporting option to report historical tombstones from Android's ApplicationExitInfo (#6450)

Fixes

  • Fix iOS time-to-initial-display fallback spans reporting a spurious deadline_exceeded status and inflated duration (#6438)
  • Fix TypeError when showFeedbackForm/showFeedbackButton/showScreenshotButton is called before FeedbackFormProvider mounts (#6435)
  • Fix orphaned TTID/TTFD spans in the trace view (#6437)
  • Fix iOS retain cycle in RNSentryOnDrawReporterView leaking TTID/TTFD reporter views and their frame-tracker listeners (#6449)
  • Fix expoRouterIntegration bailing out on cold start when Sentry.init() runs before Expo Router's Root Layout mounts β€” the store.navigationRef check is now retried until both the ref and its .current are populated (#6451)
  • Fix reactNavigationIntegration reading a stale route from an override provider (e.g. expoRouterIntegration), causing navigation transactions to be named/attributed for the previous route (#6458)

Internal

  • Migrate iOS code from the deprecated PrivateSentrySDKOnly SPI (and SentrySwizzle.h macro) to the new SentrySDK.internal Swift API exposed by sentry-cocoa 9.19.0, via a thin in-pod ObjC↔Swift bridge (#6380)

Dependencies

8.14.2

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 16 Jul 08:03

Fixes

  • Fix iOS retain cycle in RNSentryOnDrawReporterView leaking TTID/TTFD reporter views and their frame-tracker listeners (#6449)

8.18.0

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 09 Jul 09:58

Features

  • Add experimental extendAppStart/finishExtendedAppStart/getExtendedAppStartSpan to extend the standalone app start window and instrument post-init work (#6392)

Changes

  • Consume sentry-cocoa as a prebuilt xcframework by default on iOS (#6413)

    Warning

    This may be a breaking change for some setups. pod install now downloads Sentry.xcframework from sentry-cocoa's GitHub release (SHA256-verified) and vendors it, instead of building Sentry from source as a CocoaPod. If your iOS build breaks after upgrading (e.g. when another pod also depends on the Sentry CocoaPod), or if your pod install environment cannot reach github.com, set SENTRY_USE_XCFRAMEWORK=0 before pod install to restore the previous source-build behavior.

Fixes

  • Skip iOS source maps upload on Debug builds (#6405)

Dependencies

8.18.0-alpha.3

8.18.0-alpha.3 Pre-release
Pre-release

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 06 Jul 14:26

Changes

  • Consume sentry-cocoa as a prebuilt xcframework by default on iOS (#6381)

    Warning

    This may be a breaking change for some setups. pod install now downloads Sentry.xcframework from sentry-cocoa's GitHub release (SHA256-verified) and vendors it, instead of building Sentry from source as a CocoaPod. If your iOS build breaks after upgrading (e.g. when another pod also depends on the Sentry CocoaPod), or if your pod install environment cannot reach github.com, set SENTRY_USE_XCFRAMEWORK=0 before pod install to restore the previous source-build behavior.

8.18.0-alpha.2

8.18.0-alpha.2 Pre-release
Pre-release

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 06 Jul 12:31

Changes

  • Consume sentry-cocoa as a prebuilt xcframework by default on iOS (#6381)

    Warning

    This may be a breaking change for some setups. pod install now downloads Sentry.xcframework from sentry-cocoa's GitHub release (SHA256-verified) and vendors it, instead of building Sentry from source as a CocoaPod. If your iOS build breaks after upgrading (e.g. when another pod also depends on the Sentry CocoaPod), or if your pod install environment cannot reach github.com, set SENTRY_USE_XCFRAMEWORK=0 before pod install to restore the previous source-build behavior.

8.18.0-alpha

8.18.0-alpha Pre-release
Pre-release

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 06 Jul 11:39

Fixes

  • Fix Android New Architecture build failing at CMake configure on React Native 0.75 by gating the libsentry-tm-perf-logger.so native build to RN 0.76+ (#6407)

8.17.2

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 06 Jul 10:53

Fixes

  • Fix Android New Architecture build failing to link libsentry-tm-perf-logger.so with an undefined TurboModulePerfLogger::enableLogging symbol on some setups (e.g. armeabi-v7a) (#6406)
  • Fix Android New Architecture build failing at CMake configure on React Native 0.75 by gating the libsentry-tm-perf-logger.so native build to RN 0.76+ (#6407)

8.17.1

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 03 Jul 10:55

Warning

⚠️ Known Issue (Android): New Architecture builds on sentry-react-native 8.17.1 can fail to build libsentry-tm-perf-logger.so (subset-ABI builds such as armeabi-v7a/Expo, and React Native 0.75) (#6398). Please use 8.17.2.

Fixes

  • Force 16 KB ELF alignment for libsentry-tm-perf-logger.so so it does not break 16 KB page size compatibility on Android 15+ (#6396)

8.17.0

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 02 Jul 14:02

Warning

⚠️ Known Issue (Android): Apps built with the New Architecture on sentry-react-native 8.17.0 bundle a native library (libsentry-tm-perf-logger.so) that is not 16 KB page aligned, which breaks 16 KB page size compatibility on Android 15+ (and fails Google Play's 16 KB requirement). See #6394.
Please use 8.17.1.

Features

  • Add experimental enableStandaloneAppStartTracing to send app start as a standalone app.start transaction (#6359)

  • Set app.vitals.start.screen on the standalone app.start transaction from the current route (#6369)

  • Expose top-level Sentry.setAttribute and Sentry.setAttributes APIs (#6354).

  • Add enableTurboModuleTracking opt-in experimental option to enable Turbo Module performance tracking in the New Architecture (#6307)

  • Use the runtime's native btoa for envelope base64 encoding when available, to improve captureEnvelope performance. Falls back to the bundled JS encoder if btoa is missing (#6351).

  • Opt-in build-time auto-wrap for Expo Router's per-route ErrorBoundary (#6347)

    Enable autoWrapExpoRouterErrorBoundary: true in getSentryExpoConfig (or withSentryConfig) and the Sentry Babel plugin rewrites export { ErrorBoundary } from 'expo-router' into a wrapExpoRouterErrorBoundary call at build time β€” no route-file edits needed:

    // metro.config.js
    module.exports = getSentryExpoConfig(__dirname, {
      autoWrapExpoRouterErrorBoundary: true,
    });

Changes

  • Default mobileReplayIntegration({ networkCaptureBodies }) to true, matching the iOS and Android native SDK defaults (#6372)

Fixes

  • Forward Session Replay network detail options to the native SDKs so network request and response bodies are displayed (#6373)
  • The Sentry Babel transformer no longer injects @sentry/babel-plugin-component-annotate unless annotateReactComponents is explicitly enabled (#6347)

Dependencies

8.16.0

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 25 Jun 12:37

Features

  • Capture errors that hit Expo Router's per-route ErrorBoundary (#6318)

    Wrap the boundary with Sentry.wrapExpoRouterErrorBoundary in your route file:

    // app/_layout.tsx
    import { ErrorBoundary as ExpoErrorBoundary } from 'expo-router';
    import * as Sentry from '@sentry/react-native';
    
    export const ErrorBoundary = Sentry.wrapExpoRouterErrorBoundary(ExpoErrorBoundary);

    Render-phase errors that reach the boundary are captured with route context (route.name, route.path, route.params), the in-flight navigation transaction is tagged as errored, and a breadcrumb is emitted. Concrete paths and params are gated behind sendDefaultPii.

Fixes

  • Fix fatal NSInvalidArgumentException crash in RNSentryReplayBreadcrumbConverter when a touch breadcrumb path contains a non-dictionary element (#6346)
  • Apply SENTRY_ENVIRONMENT, SENTRY_RELEASE and SENTRY_DIST build-time overrides to the JS bundled options to match the native SDKs (#6330)
  • Fix user geo being dropped from the native scope by forwarding it as a structured object instead of a JSON string (#6309)
  • Remove unused React/RCTTextView.h import that broke iOS builds on React Native 0.87, where the header was removed as part of the legacy architecture cleanup (#6322)

Internal

  • Hide the dataCollection option until it is fully supported in React Native. It is exposed by @sentry/core but is not yet honored by the native SDKs (iOS/Android) nor by the RN-specific sendDefaultPii gates, so setting it would silently have no effect. Use sendDefaultPii instead. (#6345)

Dependencies