Changes
-
Migrate iOS internals from the deprecated
PrivateSentrySDKOnlySPI toSentrySDK.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 todebug, printed only when the SDK is initialized withdebug: 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. Theirturbo_module.*durations are now correct, and slow ones produce anative.turbo_modulebreadcrumb. 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-pluginsthrough theexpopackage in the Expo config plugin (#6581) -
Make the
RNSentrySPEC CHECKSUM inPodfile.lockmachine-independent (#6534)The prebuilt
Sentry.xcframeworkis now referenced through a$(PODS_ROOT)/sentry-xcframeworks/…symlink instead of the absolute per-user cache path, soPodfile.lockno longer churns between developers and CI. Expect a one-timeRNSentrychecksum change on the nextpod install; theSENTRY_XCFRAMEWORK_CACHE_DIR=/tmp/…workaround is no longer needed.
Internal
-
Mark
enableTurboModuleTrackingas 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 fromturboModuleContextIntegration(), which is enabled by default withenableNativeand never reads this option. No behaviour change.