Requested by: @alwx
Merge target: (default)
Quick links:
Assign the accepted label to this issue to approve the release.
Targets
Checked targets will be skipped (either already published or user-requested skip). Uncheck to retry a target.
📋 Changelog
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
- Bump Android SDK from v8.51.0 to v8.52.0 (#6566)
Requested by: @alwx
Merge target: (default)
Quick links:
Assign the accepted label to this issue to approve the release.
Targets
Checked targets will be skipped (either already published or user-requested skip). Uncheck to retry a target.
📋 Changelog
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.
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.Dependencies