Skip to content

Releases: getsentry/sentry-cocoa

9.1.0

10 Dec 18:52

Choose a tag to compare

Warning

The class SentryDsn has been converted from Objective-C to Swift. While the public API remains the same, you might have to remove imports of the SentryDsn.h from your Objective-C code.
We acknowledge that this is a breaking change introduced in a minor release, but it should have been part of the major release 9.0.0 already before - apologies for any inconveniences caused.

Breaking Changes

  • Refactored type SentryDsn from Objective-C to Swift, removing the SentryDsn.h from the public header files.

Features

  • Add attributes data to SentryScope (#6830)
  • Add SentryScope attributes into log messages (#6834)

Improvements

  • Flush Logs on WillTerminate or WillResignActive Notifications (#6909)

Fixes

  • Save app context information (release name, dist, environment) on app hang events before saving to disk to prevent incorrect version information when an app hang turns fatal (#6998)
  • Disabled automatic session tracking in system extensions to prevent extension blocking and unwanted dock icon behavior (#6962) (#6962)
  • Fixes crash when null values are passed to UIApplication sendAction:to:from:forEvent: (#6970)
  • Fixes user.id not set to installationId if no user is set (#7005)

9.0.0

01 Dec 14:19

Choose a tag to compare

This changelog lists every breaking change. For a high-level overview and upgrade guidance, see the migration guide.

Breaking Changes

  • Bumped minimum OS versions to iOS 15.0, macOS 10.14.0, tvOS 15.0, visionOS 1.0, and watchOS 8.0 (#6873)
  • Moves SentryEventDecoder to SPI (#6365)
  • Makes PreviewRedactOptions, SentryProfileOptions, SentryRedactViewHelper, SentryViewScreenshotOptions, SentryReplayOptions, SentryUserFeedbackConfiguration, SentryUserFeedbackFormConfiguration, SentryUserFeedbackThemeConfiguration, SentryUserFeedbackWidgetConfiguration, SentryFeedback, and SentryExperimentalOptions final (#6365)
  • Removes Decodable conformances from the public API of model classes (#5691)
  • Removes unused SentryLogLevel (#5591)
  • Removes deprecated setExtraValue from SentrySpan (#5864)
  • Removes deprecated getStoreEndpoint (#5591)
  • Remove legacy profiling, the only supported profiling is now what was known as continuous V2 (#6386)
  • Removes deprecated useSpan function (#5591)
  • Makes app hang tracking V2 the default and removes the option to enable/disable it (#5615)
  • Removes initializers for SentryTraceContext from the public API (#6662)
  • Removes integrations property from SentryOptions (#5749)
  • Removes defaultIntegrations function from SentryOptions (#6664)
  • Makes SentryEventDecodable internal (#5808)
  • The span property on SentryScope is now readonly (#5866)
  • Removes SentryIntegrationProtocol from the API. This is not used after the removal of the integrations property (#6660)
  • Removes deprecated SentryDebugImageProvider class (#5598)
  • Properties on SentryOptions that had no effect on the WithoutUIKit variant are now removed from the API (#6644)
  • Removes the SentryOptions.inAppExclude property because it had no effect (#6646)
  • Removes segment property on SentryUser, SentryBaggage, and SentryTraceContext (#5638)
  • Removes deprecated TraceContext initializers (#6348)
  • Removes deprecated user feedback API, this is replaced with the new feedback API (#5591)
  • Removes enablePerformanceV2 option and makes this the default. The app start duration will now finish when the first frame is drawn instead of when the OS posts the UIWindowDidBecomeVisibleNotification. (#6008)
  • Removes enableTracing property from SentryOptions (#5694)
  • Structured Logs: Move options out of experimental (#6359)
  • Remove unused SentryFrame.instruction property (#6504)
  • Remove uuid and name of SentryDebugMeta (#6512) Use debugID instead of uuid and codeFile instead of name.
  • Enable enablePreWarmedAppStartTracing by default (#6508). With this option enabled, the SDK collects prewarmed app starts.
  • Set SentryFrame.function default to nil instead of <redacted> (#6608)
  • Change value and type of SentryException to be nullable (#6563)
  • Change the default trace context status to "ok" instead of "undefined" (#6611)
  • Remove getHash from SentryDsn (#6605)
  • The precompiled XCFramework is now built with Xcode 16. To submit to the App Store, Apple now requires Xcode 16.
    If you need a precompiled XCFramework built with Xcode 15, continue using Sentry SDK 8.x.x.
  • Set SentryException.type to nil when NSException has no reason (#6653). The backend then can provide a proper message when there is no reason.
  • Rename SentryLog.Level and SentryLog.Attribute for ObjC (#6666)
  • Change SentryFeedback initializer to support multiple attachments (#6752)
  • App hang tracking is now automatically disabled for Widgets, Live Activities, Action Extensions, (Siri) Intent Extensions, and Share Extensions (#6670).
    These components run in separate processes or sandboxes with different execution characteristics, which can cause false positive app hang reports.
  • HTTP Client errors now mark sessions as errored (#6633)
  • The Package.swift has swift-tools-version set to 6.0 (#6764)
  • Converts the SentryLevel enum to be written in ObjC (#6802)
  • Removes SentryEnvelopeItemHeader from the public API (#6870)
  • Change the http.response.status_code for spans to int (#6896)

Features

  • Add SentryDistribution as Swift Package Manager target (#6149)
  • Moves SentryClient and SentryHub to be written in Swift (#6627)
  • Add option enablePropagateTraceparent to support OTel/W3C trace propagation (#6356)
  • Move enableFileManagerSwizzling from experimental options to top-level options (#6592).
    This option is still disabled by default and will be enabled in a future major release.
  • Move enableDataSwizzling from experimental options to top-level options (#6592). This option remains enabled by default.
  • Add sentry.replay_id attribute to logs (#6515)
  • Structured Logs: Add log APIs to Hub and Client (#6737)
  • Add options to customize UserFeedback error messages (#6790)

Fixes

  • Fixes warnings about minimum OS version being lower than Xcode supported version (#5591)
  • Fixes a crash when setting configureUserFeedback to nil (#6642)
  • Fix issue where the thread that generated an event could be missing when more than 100 threads are running (#6377)
  • Fix wrong Frame Delay when becoming active, which lead to false reported app hangs when the app moves to the foreground after being in the background (#6381)
  • Rename SentryMechanismMeta to SentryMechanismContext to resolve Kotlin Multi-Platform build errors (#6607)
  • Remove unnecesary dependency on SentryCppHelper to Sentry (#6754)
  • Limit log batching to maximum 100 logs per batch (#6768)
  • Fix UIWindow being possibly accessed from a background thread in SentryCrashWrapper (#6905)
  • Ensure SentrySDK.close resets everything on the main thread (#6907)
  • Allow transaction tags to be accessed and modified in beforeSend (#6910)
  • Convert bools to Swift in Options code docs (#6922)

Improvements

  • Replace deprecated SCNetworkReachability with NWPathMonitor (#6019)
  • Expose attachment type on SentryAttachment for downstream SDKs (like sentry-godot) (#6521)
  • Increase attachment max size to 100MB (#6537)
  • Increase maximum attachment size to 200MB (#6726)

9.0.0-rc.1

25 Nov 10:33

Choose a tag to compare

9.0.0-rc.1 Pre-release
Pre-release

Breaking Changes

  • Bumped minimum OS versions to iOS 15.0, macOS 10.14.0, tvOS 15.0, visionOS 1.0, and watchOS 8.0 (#6873)
  • Moves SentryEventDecoder to SPI (#6365)
  • Makes PreviewRedactOptions, SentryProfileOptions, SentryRedactViewHelper, SentryViewScreenshotOptions, SentryReplayOptions, SentryUserFeedbackConfiguration, SentryUserFeedbackFormConfiguration, SentryUserFeedbackThemeConfiguration, SentryUserFeedbackWidgetConfiguration, SentryFeedback, and SentryExperimentalOptions final (#6365)
  • Removes Decodable conformances from the public API of model classes (#5691)
  • Removes unused SentryLogLevel (#5591)
  • Removes deprecated setExtraValue from SentrySpan (#5864)
  • Removes deprecated getStoreEndpoint (#5591)
  • Remove legacy profiling, the only supported profiling is now what was known as continuous V2 (#6386)
  • Removes deprecated useSpan function (#5591)
  • Makes app hang tracking V2 the default and removes the option to enable/disable it (#5615)
  • Removes initializers for SentryTraceContext from the public API (#6662)
  • Removes integrations property from SentryOptions (#5749)
  • Removes defaultIntegrations function from SentryOptions (#6664)
  • Makes SentryEventDecodable internal (#5808)
  • The span property on SentryScope is now readonly (#5866)
  • Removes SentryIntegrationProtocol from the API. This is not used after the removal of the integrations property (#6660)
  • Removes deprecated SentryDebugImageProvider class (#5598)
  • Properties on SentryOptions that had no effect on the WithoutUIKit variant are now removed from the API (#6644)
  • Removes the SentryOptions.inAppExclude property because it had no effect (#6646)
  • Removes segment property on SentryUser, SentryBaggage, and SentryTraceContext (#5638)
  • Removes deprecated TraceContext initializers (#6348)
  • Removes deprecated user feedback API, this is replaced with the new feedback API (#5591)
  • Removes enablePerformanceV2 option and makes this the default. The app start duration will now finish when the first frame is drawn instead of when the OS posts the UIWindowDidBecomeVisibleNotification. (#6008)
  • Removes enableTracing property from SentryOptions (#5694)
  • Structured Logs: Move options out of experimental (#6359)
  • Remove unused SentryFrame.instruction property (#6504)
  • Remove uuid and name of SentryDebugMeta (#6512) Use debugID instead of uuid and codeFile instead of name.
  • Enable enablePreWarmedAppStartTracing by default (#6508). With this option enabled, the SDK collects prewarmed app starts.
  • Set SentryFrame.function default to nil instead of <redacted> (#6608)
  • Change value and type of SentryException to be nullable (#6563)
  • Change the default trace context status to "ok" instead of "undefined" (#6611)
  • Remove getHash from SentryDsn (#6605)
  • The precompiled XCFramework is now built with Xcode 16. To submit to the App Store, Apple now requires Xcode 16.
    If you need a precompiled XCFramework built with Xcode 15, continue using Sentry SDK 8.x.x.
  • Set SentryException.type to nil when NSException has no reason (#6653). The backend then can provide a proper message when there is no reason.
  • Rename SentryLog.Level and SentryLog.Attribute for ObjC (#6666)
  • Change SentryFeedback initializer to support multiple attachments (#6752)
  • App hang tracking is now automatically disabled for Widgets, Live Activities, Action Extensions, (Siri) Intent Extensions, and Share Extensions (#6670).
    These components run in separate processes or sandboxes with different execution characteristics, which can cause false positive app hang reports.
  • HTTP Client errors now mark sessions as errored (#6633)
  • The Package.swift has swift-tools-version set to 6.0 (#6764)
  • Converts the SentryLevel enum to be written in ObjC (#6802)
  • Removes SentryEnvelopeItemHeader from the public API (#6870)

Features

  • Add SentryDistribution as Swift Package Manager target (#6149)
  • Moves SentryClient and SentryHub to be written in Swift (#6627)
  • Add option enablePropagateTraceparent to support OTel/W3C trace propagation (#6356)
  • Move enableFileManagerSwizzling from experimental options to top-level options (#6592).
    This option is still disabled by default and will be enabled in a future major release.
  • Move enableDataSwizzling from experimental options to top-level options (#6592). This option remains enabled by default.
  • Add sentry.replay_id attribute to logs (#6515)
  • Structured Logs: Add log APIs to Hub and Client (#6737)

Fixes

  • Fixes warnings about minimum OS version being lower than Xcode supported version (#5591)
  • Fixes a crash when setting configureUserFeedback to nil (#6642)
  • Fix issue where the thread that generated an event could be missing when more than 100 threads are running (#6377)
  • Fix wrong Frame Delay when becoming active, which lead to false reported app hangs when the app moves to the foreground after being in the background (#6381)
  • Rename SentryMechanismMeta to SentryMechanismContext to resolve Kotlin Multi-Platform build errors (#6607)
  • Remove unnecesary dependency on SentryCppHelper to Sentry (#6754)
  • Limit log batching to maximum 100 logs per batch (#6768)

Improvements

  • Replace deprecated SCNetworkReachability with NWPathMonitor (#6019)
  • Expose attachment type on SentryAttachment for downstream SDKs (like sentry-godot) (#6521)
  • Increase attachment max size to 100MB (#6537)
  • Increase maximum attachment size to 200MB (#6726)

9.0.0-rc.0

17 Nov 15:06

Choose a tag to compare

9.0.0-rc.0 Pre-release
Pre-release

Breaking Changes

  • Bumped minimum OS versions to iOS 15.0, macOS 12.0, tvOS 15.0, visionOS 1.0, and watchOS 8.0
  • Moves SentryEventDecoder to SPI (#6365)
  • Makes PreviewRedactOptions, SentryProfileOptions, SentryRedactViewHelper, SentryViewScreenshotOptions, SentryReplayOptions, SentryUserFeedbackConfiguration, SentryUserFeedbackFormConfiguration, SentryUserFeedbackThemeConfiguration, SentryUserFeedbackWidgetConfiguration, SentryFeedback, and SentryExperimentalOptions final (#6365)
  • Removes Decodable conformances from the public API of model classes (#5691)
  • Removes unused SentryLogLevel (#5591)
  • Removes deprecated setExtraValue from SentrySpan (#5864)
  • Removes deprecated getStoreEndpoint (#5591)
  • Remove legacy profiling, the only supported profiling is now what was known as continuous V2 (#6386)
  • Removes deprecated useSpan function (#5591)
  • Makes app hang tracking V2 the default and removes the option to enable/disable it (#5615)
  • Removes initializers for SentryTraceContext from the public API (#6662)
  • Removes integrations property from SentryOptions (#5749)
  • Removes defaultIntegrations function from SentryOptions (#6664)
  • Makes SentryEventDecodable internal (#5808)
  • The span property on SentryScope is now readonly (#5866)
  • Removes SentryIntegrationProtocol from the API. This is not used after the removal of the integrations property (#6660)
  • Removes deprecated SentryDebugImageProvider class (#5598)
  • Properties on SentryOptions that had no effect on the WithoutUIKit variant are now removed from the API (#6644)
  • Removes the SentryOptions.inAppExclude property because it had no effect (#6646)
  • Removes segment property on SentryUser, SentryBaggage, and SentryTraceContext (#5638)
  • Removes deprecated TraceContext initializers (#6348)
  • Removes deprecated user feedback API, this is replaced with the new feedback API (#5591)
  • Removes enablePerformanceV2 option and makes this the default. The app start duration will now finish when the first frame is drawn instead of when the OS posts the UIWindowDidBecomeVisibleNotification. (#6008)
  • Removes enableTracing property from SentryOptions (#5694)
  • Structured Logs: Move options out of experimental (#6359)
  • Remove unused SentryFrame.instruction property (#6504)
  • Remove uuid and name of SentryDebugMeta (#6512) Use debugID instead of uuid and codeFile instead of name.
  • Enable enablePreWarmedAppStartTracing by default (#6508). With this option enabled, the SDK collects prewarmed app starts.
  • Set SentryFrame.function default to nil instead of <redacted> (#6608)
  • Change value and type of SentryException to be nullable (#6563)
  • Change the default trace context status to "ok" instead of "undefined" (#6611)
  • Remove getHash from SentryDsn (#6605)
  • The precompiled XCFramework is now built with Xcode 16. To submit to the App Store, Apple now requires Xcode 16.
    If you need a precompiled XCFramework built with Xcode 15, continue using Sentry SDK 8.x.x.
  • Set SentryException.type to nil when NSException has no reason (#6653). The backend then can provide a proper message when there is no reason.
  • Rename SentryLog.Level and SentryLog.Attribute for ObjC (#6666)
  • Change SentryFeedback initializer to support multiple attachments (#6752)
  • App hang tracking is now automatically disabled for Widgets, Live Activities, Action Extensions, (Siri) Intent Extensions, and Share Extensions (#6670).
    These components run in separate processes or sandboxes with different execution characteristics, which can cause false positive app hang reports.
  • HTTP Client errors now mark sessions as errored (#6633)
  • The Package.swift has swift-tools-version set to 6.0 (#6764)

Features

  • Add SentryDistribution as Swift Package Manager target (#6149)
  • Moves SentryClient and SentryHub to be written in Swift (#6627)
  • Add option enablePropagateTraceparent to support OTel/W3C trace propagation (#6356)
  • Move enableFileManagerSwizzling from experimental options to top-level options (#6592).
    This option is still disabled by default and will be enabled in a future major release.
  • Move enableDataSwizzling from experimental options to top-level options (#6592). This option remains enabled by default.
  • Add sentry.replay_id attribute to logs (#6515)
  • Structured Logs: Add log APIs to Hub and Client (#6737)

Fixes

  • Fixes warnings about minimum OS version being lower than Xcode supported version (#5591)
  • Fixes a crash when setting configureUserFeedback to nil (#6642)
  • Fix issue where the thread that generated an event could be missing when more than 100 threads are running (#6377)
  • Fix wrong Frame Delay when becoming active, which lead to false reported app hangs when the app moves to the foreground after being in the background (#6381)
  • Rename SentryMechanismMeta to SentryMechanismContext to resolve Kotlin Multi-Platform build errors (#6607)
  • Remove unnecesary dependency on SentryCppHelper to Sentry (#6754)
  • Limit log batching to maximum 100 logs per batch (#6768)

Improvements

  • Replace deprecated SCNetworkReachability with NWPathMonitor (#6019)
  • Expose attachment type on SentryAttachment for downstream SDKs (like sentry-godot) (#6521)
  • Increase attachment max size to 100MB (#6537)
  • Increase maximum attachment size to 200MB (#6726)

8.57.3

14 Nov 07:33

Choose a tag to compare

Warning

Session Replay is disabled by default on iOS 26.0+ with Xcode 26.0+ to prevent PII leaks

Due to potential masking issues introduced by Apple's Liquid Glass rendering changes in iOS 26.0, Session Replay is now automatically disabled on apps running iOS 26.0+ when built with Xcode 26.0 or later. This is a defensive measure to protect user privacy and prevent potential PII leaks until masking is reliably supported.

Session replay will work normally if:

  • Your app runs on iOS versions older than 26.0, OR
  • Your app is built with Xcode versions older than 26.0, OR
  • Your app explicitly sets UIDesignRequiresCompatibility to YES in Info.plist

Override (use with caution): If you understand the PII risks and want to enable session replay anyway, you can set:

options.experimental.enableSessionReplayInUnreliableEnvironment = true

This experimental override option will be removed in a future minor version once the masking issues are resolved.

Fixes

  • Remove unnecessary dependency on SentryCppHelper to Sentry (#6754) (#6761)
  • Resolve SDK crash caused by UIPrintPanelViewController incorrectly casting to UISplitViewController (#6771)

9.0.0-alpha.1

12 Nov 18:24

Choose a tag to compare

9.0.0-alpha.1 Pre-release
Pre-release

Breaking Changes

  • Bumped minimum OS versions to iOS 15.0, macOS 12.0, tvOS 15.0, visionOS 1.0, and watchOS 8.0
  • Moves SentryEventDecoder to SPI (#6365)
  • Makes PreviewRedactOptions, SentryProfileOptions, SentryRedactViewHelper, SentryViewScreenshotOptions, SentryReplayOptions, SentryUserFeedbackConfiguration, SentryUserFeedbackFormConfiguration, SentryUserFeedbackThemeConfiguration, SentryUserFeedbackWidgetConfiguration, SentryFeedback, and SentryExperimentalOptions final (#6365)
  • Removes Decodable conformances from the public API of model classes (#5691)
  • Removes unused SentryLogLevel (#5591)
  • Removes deprecated setExtraValue from SentrySpan (#5864)
  • Removes deprecated getStoreEndpoint (#5591)
  • Remove legacy profiling, the only supported profiling is now what was known as continuous V2 (#6386)
  • Removes deprecated useSpan function (#5591)
  • Makes app hang tracking V2 the default and removes the option to enable/disable it (#5615)
  • Removes initializers for SentryTraceContext from the public API (#6662)
  • Removes integrations property from SentryOptions (#5749)
  • Removes defaultIntegrations function from SentryOptions (#6664)
  • Makes SentryEventDecodable internal (#5808)
  • The span property on SentryScope is now readonly (#5866)
  • Removes SentryIntegrationProtocol from the API. This is not used after the removal of the integrations property (#6660)
  • Removes deprecated SentryDebugImageProvider class (#5598)
  • Properties on SentryOptions that had no effect on the WithoutUIKit variant are now removed from the API (#6644)
  • Removes the SentryOptions.inAppExclude property because it had no effect (#6646)
  • Removes segment property on SentryUser, SentryBaggage, and SentryTraceContext (#5638)
  • Removes deprecated TraceContext initializers (#6348)
  • Removes deprecated user feedback API, this is replaced with the new feedback API (#5591)
  • Removes enablePerformanceV2 option and makes this the default. The app start duration will now finish when the first frame is drawn instead of when the OS posts the UIWindowDidBecomeVisibleNotification. (#6008)
  • Removes enableTracing property from SentryOptions (#5694)
  • Structured Logs: Move options out of experimental (#6359)
  • Remove unused SentryFrame.instruction property (#6504)
  • Remove uuid and name of SentryDebugMeta (#6512) Use debugID instead of uuid and codeFile instead of name.
  • Enable enablePreWarmedAppStartTracing by default (#6508). With this option enabled, the SDK collects prewarmed app starts.
  • Set SentryFrame.function default to nil instead of <redacted> (#6608)
  • Change value and type of SentryException to be nullable (#6563)
  • Change the default trace context status to "ok" instead of "undefined" (#6611)
  • Remove getHash from SentryDsn (#6605)
  • The precompiled XCFramework is now built with Xcode 16. To submit to the App Store, Apple now requires Xcode 16.
    If you need a precompiled XCFramework built with Xcode 15, continue using Sentry SDK 8.x.x.
  • Set SentryException.type to nil when NSException has no reason (#6653). The backend then can provide a proper message when there is no reason.
  • Rename SentryLog.Level and SentryLog.Attribute for ObjC (#6666)
  • Change SentryFeedback initializer to support multiple attachments (#6752)

Fixes

  • Fixes warnings about minimum OS version being lower than Xcode supported version (#5591)
  • Fixes a crash when setting configureUserFeedback to nil (#6642)
  • Fix issue where the thread that generated an event could be missing when more than 100 threads are running (#6377)
  • Fix wrong Frame Delay when becoming active, which lead to false reported app hangs when the app moves to the foreground after being in the background (#6381)
  • Rename SentryMechanismMeta to SentryMechanismContext to resolve Kotlin Multi-Platform build errors (#6607)
  • Remove unnecesary dependency on SentryCppHelper to Sentry (#6754)

Improvements

  • Replace deprecated SCNetworkReachability with NWPathMonitor (#6019)
  • Expose attachment type on SentryAttachment for downstream SDKs (like sentry-godot) (#6521)
  • Increase attachment max size to 100MB (#6537)
  • Increase maximum attachment size to 200MB (#6726)

Features

  • Add SentryDistribution as Swift Package Manager target (#6149)
  • Moves SentryClient and SentryHub to be written in Swift (#6627)
  • Add option enablePropagateTraceparent to support OTel/W3C trace propagation (#6356)
  • Move enableFileManagerSwizzling from experimental options to top-level options (#6592).
    This option is still disabled by default and will be enabled in a future major release.
  • Move enableDataSwizzling from experimental options to top-level options (#6592). This option remains enabled by default.
  • Add sentry.replay_id attribute to logs (#6515)
  • Structured Logs: Add log APIs to Hub and Client (#6737)

9.0.0-alpha.0

10 Nov 14:01

Choose a tag to compare

9.0.0-alpha.0 Pre-release
Pre-release

Breaking Changes

  • Moves SentryEventDecoder to SPI (#6365)
  • Makes PreviewRedactOptions, SentryProfileOptions, SentryRedactViewHelper, SentryViewScreenshotOptions, SentryReplayOptions, SentryUserFeedbackConfiguration, SentryUserFeedbackFormConfiguration, SentryUserFeedbackThemeConfiguration, SentryUserFeedbackWidgetConfiguration, SentryFeedback, and SentryExperimentalOptions final (#6365)
  • Removes Decodable conformances from the public API of model classes (#5691)
  • Removes unused SentryLogLevel (#5591)
  • Removes deprecated setExtraValue from SentrySpan (#5864)
  • Removes deprecated getStoreEndpoint (#5591)
  • Remove legacy profiling, the only supported profiling is now what was known as continuous V2 (#6386)
  • Removes deprecated useSpan function (#5591)
  • Makes app hang tracking V2 the default and removes the option to enable/disable it (#5615)
  • Removes initializers for SentryTraceContext from the public API (#6662)
  • Removes integrations property from SentryOptions (#5749)
  • Removes defaultIntegrations function from SentryOptions (#6664)
  • Makes SentryEventDecodable internal (#5808)
  • The span property on SentryScope is now readonly (#5866)
  • Removes SentryIntegrationProtocol from the API. This is not used after the removal of the integrations property (#6660)
  • Removes deprecated SentryDebugImageProvider class (#5598)
  • Properties on SentryOptions that had no effect on the WithoutUIKit variant are now removed from the API (#6644)
  • Removes the SentryOptions.inAppExclude property because it had no effect (#6646)
  • Removes segment property on SentryUser, SentryBaggage, and SentryTraceContext (#5638)
  • Removes deprecated TraceContext initializers (#6348)
  • Removes deprecated user feedback API, this is replaced with the new feedback API (#5591)
  • Removes enablePerformanceV2 option and makes this the default. The app start duration will now finish when the first frame is drawn instead of when the OS posts the UIWindowDidBecomeVisibleNotification. (#6008)
  • Removes enableTracing property from SentryOptions (#5694)
  • Structured Logs: Move options out of experimental (#6359)
  • Remove unused SentryFrame.instruction property (#6504)
  • Remove uuid and name of SentryDebugMeta (#6512) Use debugID instead of uuid and codeFile instead of name.
  • Enable enablePreWarmedAppStartTracing by default (#6508). With this option enabled, the SDK collects prewarmed app starts.
  • Set SentryFrame.function default to nil instead of <redacted> (#6608)
  • Change value and type of SentryException to be nullable (#6563)
  • Change the default trace context status to "ok" instead of "undefined" (#6611)
  • Remove getHash from SentryDsn (#6605)
  • The precompiled XCFramework is now built with Xcode 16. To submit to the App Store, Apple now requires Xcode 16.
    If you need a precompiled XCFramework built with Xcode 15, continue using Sentry SDK 8.x.x.
  • Set SentryException.type to nil when NSException has no reason (#6653). The backend then can provide a proper message when there is no reason.
  • Rename SentryLog.Level and SentryLog.Attribute for ObjC (#6666)

Fixes

  • Fixes warnings about minimum OS version being lower than Xcode supported version (#5591)
  • Fixes a crash when setting configureUserFeedback to nil (#6642)
  • Fix issue where the thread that generated an event could be missing when more than 100 threads are running (#6377)
  • Fix wrong Frame Delay when becoming active, which lead to false reported app hangs when the app moves to the foreground after being in the background (#6381)
  • Rename SentryMechanismMeta to SentryMechanismContext to resolve Kotlin Multi-Platform build errors (#6607)

Improvements

  • Replace deprecated SCNetworkReachability with NWPathMonitor (#6019)
  • Expose attachment type on SentryAttachment for downstream SDKs (like sentry-godot) (#6521)
  • Increase attachment max size to 100MB (#6537)

Features

  • Add SentryDistribution as Swift Package Manager target (#6149)
  • Moves SentryClient and SentryHub to be written in Swift (#6627)
  • Add option enablePropagateTraceparent to support OTel/W3C trace propagation (#6356)
  • Move enableFileManagerSwizzling from experimental options to top-level options (#6592).
    This option is still disabled by default and will be enabled in a future major release.
  • Move enableDataSwizzling from experimental options to top-level options (#6592). This option remains enabled by default.
  • Add sentry.replay_id attribute to logs (#6515)
  • Structured Logs: Add SentrySwiftLog Integration (#6286)

8.57.2

06 Nov 11:07

Choose a tag to compare

Warning

Session Replay is disabled by default on iOS 26.0+ with Xcode 26.0+ to prevent PII leaks

Due to potential masking issues introduced by Apple's Liquid Glass rendering changes in iOS 26.0, Session Replay is now automatically disabled on apps running iOS 26.0+ when built with Xcode 26.0 or later. This is a defensive measure to protect user privacy and prevent potential PII leaks until masking is reliably supported.

Session replay will work normally if:

  • Your app runs on iOS versions older than 26.0, OR
  • Your app is built with Xcode versions older than 26.0, OR
  • Your app explicitly sets UIDesignRequiresCompatibility to YES in Info.plist

Override (use with caution): If you understand the PII risks and want to enable session replay anyway, you can set:

options.experimental.enableSessionReplayInUnreliableEnvironment = true

This experimental override option will be removed in a future minor version once the masking issues are resolved.

Fixes

  • Fix rendering method for fast view rendering (#6360)
  • Session Replay masking improvements (#6292)
    • Fix SwiftUI.List background decoration view causing incorrect clipping of screen content
    • Fix sublayer rendering order by properly sorting by zPosition with insertion order as tie-breaker
    • Fix UISwitch internal images being incorrectly redacted
    • Fix UITextField placeholder text (UITextFieldLabel) not being detected for redaction
    • Use string-based class comparison to avoid triggering Objective-C +initialize on background threads
    • Add layer class filtering for views used in multiple contexts (e.g., SwiftUI._UIGraphicsView)
    • Improve transform calculations for views with custom anchor points
    • Fix axis-aligned transform detection for optimized opaque view clipping
  • Fix conversion of frame rate to time interval for session replay (#6623)
  • Change Session Replay masking to prevent semi‑transparent full‑screen overlays from clearing redactions by making opaque clipping stricter (#6629)
    Views now need to be fully opaque (view and layer backgrounds with alpha == 1) and report opaque to qualify for clip‑out.
    This avoids leaks at the cost of fewer clip‑out optimizations.

8.57.1

30 Oct 08:13

Choose a tag to compare

Warning

Session Replay is disabled by default on iOS 26.0+ with Xcode 26.0+ to prevent PII leaks

Due to potential masking issues introduced by Apple's Liquid Glass rendering changes in iOS 26.0, Session Replay is now automatically disabled on apps running iOS 26.0+ when built with Xcode 26.0 or later. This is a defensive measure to protect user privacy and prevent potential PII leaks until masking is reliably supported.

Session replay will work normally if:

  • Your app runs on iOS versions older than 26.0, OR
  • Your app is built with Xcode versions older than 26.0, OR
  • Your app explicitly sets UIDesignRequiresCompatibility to YES in Info.plist

Override (use with caution): If you understand the PII risks and want to enable session replay anyway, you can set:

options.experimental.enableSessionReplayInUnreliableEnvironment = true

This experimental override option will be removed in a future minor version once the masking issues are resolved.

Fixes

  • Fix crash from accessing UITouch instances from background thread in SentryTouchTracker (#6584)
  • Disable SessionSentryReplayIntegration if the environment is unsafe [#6573]
  • Fix crash when last replay info is missing some keys [#6577]

8.57.0

14 Oct 11:18

Choose a tag to compare

Warning

Session Replay is disabled by default on iOS 26.0+ with Xcode 26.0+ to prevent PII leaks

Due to potential masking issues introduced by Apple's Liquid Glass rendering changes in iOS 26.0, Session Replay is now automatically disabled on apps running iOS 26.0+ when built with Xcode 26.0 or later. This is a defensive measure to protect user privacy and prevent potential PII leaks until masking is reliably supported.

Session replay will work normally if:

  • Your app runs on iOS versions older than 26.0, OR
  • Your app is built with Xcode versions older than 26.0, OR
  • Your app explicitly sets UIDesignRequiresCompatibility to YES in Info.plist

Override (use with caution): If you understand the PII risks and want to enable session replay anyway, you can set:

options.experimental.enableSessionReplayInUnreliableEnvironment = true

This experimental override option will be removed in a future minor version once the masking issues are resolved.

Fixes

  • Fix wrong Frame Delay when becoming active, which lead to false reported app hangs when the app moves to the foreground after being in the background (#6393)
  • Session replay is now automatically disabled in environments with unreliable masking to prevent PII leaks (#6389)
    • Detects iOS 26.0+ runtime with Xcode 26.0+ builds (DTXcode >= 2600)
    • Detects missing or disabled UIDesignRequiresCompatibility
    • Uses defensive approach: assumes unsafe unless proven safe
  • Add options.experimental.enableSessionReplayInUnreliableEnvironment to allow overriding the automatic disabling (#6389)