Skip to content

8.23.0

Latest

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 13 Aug 09:50

Changes

  • Migrate iOS internals from the deprecated PrivateSentrySDKOnly SPI to SentrySDK.internal (#6541)

    Re-lands #6380, reverted in 8.20.0 by #6491 because it broke iOS screenshot capture. The underlying sentry-cocoa bug is fixed in 9.24.0.

Warning

Action required if you target React Native < 0.75.
RNSentry now ships Swift code, which makes it a Swift pod under CocoaPods. If your Podfile doesn't already modularize React Native's ObjC pods (RN >= 0.75 does this by default), add use_modular_headers! to your ios/Podfile before running pod install. Otherwise pod install fails with an error like:
The Swift pod 'RNSentry' depends upon 'React-hermes', which does not define modules.

Fixes

  • Send SDK-internal diagnostics to the debug logger instead of the Sentry Logs API (#6585)

    Ten internal warnings in the TurboModule instrumentation, scope sync and the Expo Router error boundary were written against logger, which captures a log record and sends it to your project. They now go to debug, printed only when the SDK is initialized with debug: true.

  • Measure callback-style native module calls until their completion callback fires (#6561)

    Bridge methods that report completion through success/failure callbacks instead of a Promise return undefined, so they were recorded as sync calls with a near-zero duration. Their turbo_module.* durations are now correct, and slow ones produce a native.turbo_module breadcrumb. On the Old Architecture a failure callback is also counted as an error, following React Native's own (failure, success) trailing-argument convention.

  • Resolve config-plugins through the expo package in the Expo config plugin (#6581)

  • Make the RNSentry SPEC CHECKSUM in Podfile.lock machine-independent (#6534)

    The prebuilt Sentry.xcframework is now referenced through a $(PODS_ROOT)/sentry-xcframeworks/… symlink instead of the absolute per-user cache path, so Podfile.lock no longer churns between developers and CI. Expect a one-time RNSentry checksum change on the next pod install; the SENTRY_XCFRAMEWORK_CACHE_DIR=/tmp/… workaround is no longer needed.

Internal

  • Mark enableTurboModuleTracking as internal and correct its documentation (#6168)

    The option only installs the native TurboModulePerfLogger; no sink consumes its callbacks, so enabling it emits no data. Its documentation claimed it fed crash attribution, per-module spans and aggregated stats — those all come from turboModuleContextIntegration(), which is enabled by default with enableNative and never reads this option. No behaviour change.

Dependencies