Download Latest Version Sentry-Dynamic-WithARM64e.xcframework.zip (150.3 MB)
Email in envelope

Get an email when there's a new version of Official Sentry SDK

Home / 9.12.0
Name Modified Size InfoDownloads / Week
Parent folder
Sentry-Dynamic-WithARM64e.xcframework.zip 2026-04-30 150.0 MB
Sentry-Dynamic.xcframework.zip 2026-04-30 135.9 MB
Sentry-WithoutUIKitOrAppKit-WithARM64e.xcframework.zip 2026-04-30 120.7 MB
Sentry-WithoutUIKitOrAppKit.xcframework.zip 2026-04-30 109.4 MB
Sentry.xcframework.zip 2026-04-30 65.3 MB
SentrySwiftUI.xcframework.zip 2026-04-30 716.4 kB
9.12.0 source code.tar.gz 2026-04-30 10.3 MB
9.12.0 source code.zip 2026-04-30 11.5 MB
README.md 2026-04-30 2.9 kB
Totals: 9 Items   603.9 MB 0

[!WARNING] This release promotes Metrics out of experimental and removes options.experimental.enableMetrics and options.experimental.beforeSendMetric. If you set either of these, your app will fail to compile after upgrading. Migrate to options.enableMetrics and options.beforeSendMetric (top-level on Options) — the defaults and behavior are unchanged.

[!WARNING] Session Replay now runs on iOS 26 with Liquid Glass. Previously, the SDK auto-disabled Session Replay on iOS 26 builds that adopted Liquid Glass (built with Xcode 26+ and UIDesignRequiresCompatibility not set). Now that the underlying redaction issues have been addressed, replays will be captured in those environments — verify your masking still meets your privacy requirements. If you want to keep Session Replay disabled on Liquid Glass builds, you will need to gate the sample rates yourself. For reference, see how the SDK used to perform the check: https://github.com/getsentry/sentry-cocoa/blob/adef457c1344e5efda4b74a1f33913d4d49ef7e0/Sources/Swift/Integrations/SessionReplay/SentrySessionReplayEnvironmentChecker.swift

Example — disable Session Replay when Liquid Glass is active:

```swift import Sentry

SentrySDK.start { options in options.dsn = "PUBLICDSN_"

var sessionRate: Float = 0.2
var errorRate: Float = 1.0

if #available(iOS 26.0, *) {
    let compatibilityMode = Bundle.main.object(forInfoDictionaryKey: "UIDesignRequiresCompatibility") as? Bool ?? false
    let xcodeVersion = Int(Bundle.main.object(forInfoDictionaryKey: "DTXcode") as? String ?? "") ?? 0
    let builtWithXcode26OrLater = xcodeVersion >= 2600
    let liquidGlassActive = builtWithXcode26OrLater && !compatibilityMode
    if liquidGlassActive {
        sessionRate = 0
        errorRate = 0
    }
}

options.sessionReplay.sessionSampleRate = sessionRate
options.sessionReplay.onErrorSampleRate = errorRate

} ```

Improvements

  • Remove enableSessionReplayInUnreliableEnvironment experimental option and the environment checker that temporarily disabled Session Replay on iOS 26 (#7831)

Features

  • Make feature Metrics generally available, moving experimental options to top-level options (#7843)
  • Add Session Replay network details capture, including request/response headers and bodies extraction (#7580, [#7582], [#7584], [#7585], [#7588], [#7590], [#7854])

Fixes

  • Fix infinite loop in sentrycrashfu_readBytesFromFD when read() returns EOF on a truncated file (#7853)
  • Disable app hang and watchdog termination tracking in Notification Service Extensions (#7818)
  • Fix JSON encoding of infinite numeric values in crash reports (#7802)
  • Fix race condition in SentryFramesTracker listeners causing EXC_BAD_ACCESS in NSConcreteHashTable removeItem: when a listener is deallocated on a background thread (#7839)
Source: README.md, updated 2026-04-30