Releases: getsentry/sentry-cocoa
9.1.0
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
SentryDsnfrom Objective-C to Swift, removing theSentryDsn.hfrom the public header files.
Features
Improvements
- Flush Logs on
WillTerminateorWillResignActiveNotifications (#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.idnot set to installationId if no user is set (#7005)
9.0.0
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
SentryEventDecoderto SPI (#6365) - Makes
PreviewRedactOptions,SentryProfileOptions,SentryRedactViewHelper,SentryViewScreenshotOptions,SentryReplayOptions,SentryUserFeedbackConfiguration,SentryUserFeedbackFormConfiguration,SentryUserFeedbackThemeConfiguration,SentryUserFeedbackWidgetConfiguration,SentryFeedback, andSentryExperimentalOptionsfinal(#6365) - Removes Decodable conformances from the public API of model classes (#5691)
- Removes unused SentryLogLevel (#5591)
- Removes deprecated
setExtraValuefrom 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
integrationsproperty fromSentryOptions(#5749) - Removes
defaultIntegrationsfunction fromSentryOptions(#6664) - Makes
SentryEventDecodableinternal (#5808) - The
spanproperty onSentryScopeis now readonly (#5866) - Removes
SentryIntegrationProtocolfrom the API. This is not used after the removal of theintegrationsproperty (#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
enablePerformanceV2option 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.instructionproperty (#6504) - Remove
uuidandnameofSentryDebugMeta(#6512) UsedebugIDinstead ofuuidandcodeFileinstead ofname. - Enable enablePreWarmedAppStartTracing by default (#6508). With this option enabled, the SDK collects prewarmed app starts.
- Set
SentryFrame.functiondefault tonilinstead of<redacted>(#6608) - Change
valueandtypeofSentryExceptionto be nullable (#6563) - Change the default trace context status to "ok" instead of "undefined" (#6611)
- Remove
getHashfrom 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.typetonilwhenNSExceptionhas noreason(#6653). The backend then can provide a proper message when there is no reason. - Rename
SentryLog.LevelandSentryLog.Attributefor ObjC (#6666) - Change
SentryFeedbackinitializer 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
SentryLevelenum to be written in ObjC (#6802) - Removes SentryEnvelopeItemHeader from the public API (#6870)
- Change the
http.response.status_codefor 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
enablePropagateTraceparentto support OTel/W3C trace propagation (#6356) - Move
enableFileManagerSwizzlingfrom experimental options to top-level options (#6592).
This option is still disabled by default and will be enabled in a future major release. - Move
enableDataSwizzlingfrom experimental options to top-level options (#6592). This option remains enabled by default. - Add
sentry.replay_idattribute to logs (#6515) - Structured Logs: Add log APIs to
HubandClient(#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
SentryMechanismMetatoSentryMechanismContextto resolve Kotlin Multi-Platform build errors (#6607) - Remove unnecesary dependency on
SentryCppHelperto 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
9.0.0-rc.1
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
SentryEventDecoderto SPI (#6365) - Makes
PreviewRedactOptions,SentryProfileOptions,SentryRedactViewHelper,SentryViewScreenshotOptions,SentryReplayOptions,SentryUserFeedbackConfiguration,SentryUserFeedbackFormConfiguration,SentryUserFeedbackThemeConfiguration,SentryUserFeedbackWidgetConfiguration,SentryFeedback, andSentryExperimentalOptionsfinal(#6365) - Removes Decodable conformances from the public API of model classes (#5691)
- Removes unused SentryLogLevel (#5591)
- Removes deprecated
setExtraValuefrom 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
integrationsproperty fromSentryOptions(#5749) - Removes
defaultIntegrationsfunction fromSentryOptions(#6664) - Makes
SentryEventDecodableinternal (#5808) - The
spanproperty onSentryScopeis now readonly (#5866) - Removes
SentryIntegrationProtocolfrom the API. This is not used after the removal of theintegrationsproperty (#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
enablePerformanceV2option 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.instructionproperty (#6504) - Remove
uuidandnameofSentryDebugMeta(#6512) UsedebugIDinstead ofuuidandcodeFileinstead ofname. - Enable enablePreWarmedAppStartTracing by default (#6508). With this option enabled, the SDK collects prewarmed app starts.
- Set
SentryFrame.functiondefault tonilinstead of<redacted>(#6608) - Change
valueandtypeofSentryExceptionto be nullable (#6563) - Change the default trace context status to "ok" instead of "undefined" (#6611)
- Remove
getHashfrom 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.typetonilwhenNSExceptionhas noreason(#6653). The backend then can provide a proper message when there is no reason. - Rename
SentryLog.LevelandSentryLog.Attributefor ObjC (#6666) - Change
SentryFeedbackinitializer 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
SentryLevelenum 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
enablePropagateTraceparentto support OTel/W3C trace propagation (#6356) - Move
enableFileManagerSwizzlingfrom experimental options to top-level options (#6592).
This option is still disabled by default and will be enabled in a future major release. - Move
enableDataSwizzlingfrom experimental options to top-level options (#6592). This option remains enabled by default. - Add
sentry.replay_idattribute to logs (#6515) - Structured Logs: Add log APIs to
HubandClient(#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
SentryMechanismMetatoSentryMechanismContextto resolve Kotlin Multi-Platform build errors (#6607) - Remove unnecesary dependency on
SentryCppHelperto Sentry (#6754) - Limit log batching to maximum 100 logs per batch (#6768)
Improvements
9.0.0-rc.0
Breaking Changes
- Bumped minimum OS versions to iOS 15.0, macOS 12.0, tvOS 15.0, visionOS 1.0, and watchOS 8.0
- Moves
SentryEventDecoderto SPI (#6365) - Makes
PreviewRedactOptions,SentryProfileOptions,SentryRedactViewHelper,SentryViewScreenshotOptions,SentryReplayOptions,SentryUserFeedbackConfiguration,SentryUserFeedbackFormConfiguration,SentryUserFeedbackThemeConfiguration,SentryUserFeedbackWidgetConfiguration,SentryFeedback, andSentryExperimentalOptionsfinal(#6365) - Removes Decodable conformances from the public API of model classes (#5691)
- Removes unused SentryLogLevel (#5591)
- Removes deprecated
setExtraValuefrom 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
integrationsproperty fromSentryOptions(#5749) - Removes
defaultIntegrationsfunction fromSentryOptions(#6664) - Makes
SentryEventDecodableinternal (#5808) - The
spanproperty onSentryScopeis now readonly (#5866) - Removes
SentryIntegrationProtocolfrom the API. This is not used after the removal of theintegrationsproperty (#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
enablePerformanceV2option 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.instructionproperty (#6504) - Remove
uuidandnameofSentryDebugMeta(#6512) UsedebugIDinstead ofuuidandcodeFileinstead ofname. - Enable enablePreWarmedAppStartTracing by default (#6508). With this option enabled, the SDK collects prewarmed app starts.
- Set
SentryFrame.functiondefault tonilinstead of<redacted>(#6608) - Change
valueandtypeofSentryExceptionto be nullable (#6563) - Change the default trace context status to "ok" instead of "undefined" (#6611)
- Remove
getHashfrom 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.typetonilwhenNSExceptionhas noreason(#6653). The backend then can provide a proper message when there is no reason. - Rename
SentryLog.LevelandSentryLog.Attributefor ObjC (#6666) - Change
SentryFeedbackinitializer 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
enablePropagateTraceparentto support OTel/W3C trace propagation (#6356) - Move
enableFileManagerSwizzlingfrom experimental options to top-level options (#6592).
This option is still disabled by default and will be enabled in a future major release. - Move
enableDataSwizzlingfrom experimental options to top-level options (#6592). This option remains enabled by default. - Add
sentry.replay_idattribute to logs (#6515) - Structured Logs: Add log APIs to
HubandClient(#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
SentryMechanismMetatoSentryMechanismContextto resolve Kotlin Multi-Platform build errors (#6607) - Remove unnecesary dependency on
SentryCppHelperto Sentry (#6754) - Limit log batching to maximum 100 logs per batch (#6768)
Improvements
8.57.3
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
UIDesignRequiresCompatibilitytoYESinInfo.plist
Override (use with caution): If you understand the PII risks and want to enable session replay anyway, you can set:
options.experimental.enableSessionReplayInUnreliableEnvironment = trueThis experimental override option will be removed in a future minor version once the masking issues are resolved.
Fixes
9.0.0-alpha.1
Breaking Changes
- Bumped minimum OS versions to iOS 15.0, macOS 12.0, tvOS 15.0, visionOS 1.0, and watchOS 8.0
- Moves
SentryEventDecoderto SPI (#6365) - Makes
PreviewRedactOptions,SentryProfileOptions,SentryRedactViewHelper,SentryViewScreenshotOptions,SentryReplayOptions,SentryUserFeedbackConfiguration,SentryUserFeedbackFormConfiguration,SentryUserFeedbackThemeConfiguration,SentryUserFeedbackWidgetConfiguration,SentryFeedback, andSentryExperimentalOptionsfinal(#6365) - Removes Decodable conformances from the public API of model classes (#5691)
- Removes unused SentryLogLevel (#5591)
- Removes deprecated
setExtraValuefrom 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
integrationsproperty fromSentryOptions(#5749) - Removes
defaultIntegrationsfunction fromSentryOptions(#6664) - Makes
SentryEventDecodableinternal (#5808) - The
spanproperty onSentryScopeis now readonly (#5866) - Removes
SentryIntegrationProtocolfrom the API. This is not used after the removal of theintegrationsproperty (#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
enablePerformanceV2option 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.instructionproperty (#6504) - Remove
uuidandnameofSentryDebugMeta(#6512) UsedebugIDinstead ofuuidandcodeFileinstead ofname. - Enable enablePreWarmedAppStartTracing by default (#6508). With this option enabled, the SDK collects prewarmed app starts.
- Set
SentryFrame.functiondefault tonilinstead of<redacted>(#6608) - Change
valueandtypeofSentryExceptionto be nullable (#6563) - Change the default trace context status to "ok" instead of "undefined" (#6611)
- Remove
getHashfrom 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.typetonilwhenNSExceptionhas noreason(#6653). The backend then can provide a proper message when there is no reason. - Rename
SentryLog.LevelandSentryLog.Attributefor ObjC (#6666) - Change
SentryFeedbackinitializer 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
SentryMechanismMetatoSentryMechanismContextto resolve Kotlin Multi-Platform build errors (#6607) - Remove unnecesary dependency on
SentryCppHelperto Sentry (#6754)
Improvements
- Replace deprecated SCNetworkReachability with NWPathMonitor (#6019)
- Expose attachment type on
SentryAttachmentfor 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
enablePropagateTraceparentto support OTel/W3C trace propagation (#6356) - Move
enableFileManagerSwizzlingfrom experimental options to top-level options (#6592).
This option is still disabled by default and will be enabled in a future major release. - Move
enableDataSwizzlingfrom experimental options to top-level options (#6592). This option remains enabled by default. - Add
sentry.replay_idattribute to logs (#6515) - Structured Logs: Add log APIs to
HubandClient(#6737)
9.0.0-alpha.0
Breaking Changes
- Moves
SentryEventDecoderto SPI (#6365) - Makes
PreviewRedactOptions,SentryProfileOptions,SentryRedactViewHelper,SentryViewScreenshotOptions,SentryReplayOptions,SentryUserFeedbackConfiguration,SentryUserFeedbackFormConfiguration,SentryUserFeedbackThemeConfiguration,SentryUserFeedbackWidgetConfiguration,SentryFeedback, andSentryExperimentalOptionsfinal(#6365) - Removes Decodable conformances from the public API of model classes (#5691)
- Removes unused SentryLogLevel (#5591)
- Removes deprecated
setExtraValuefrom 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
integrationsproperty fromSentryOptions(#5749) - Removes
defaultIntegrationsfunction fromSentryOptions(#6664) - Makes
SentryEventDecodableinternal (#5808) - The
spanproperty onSentryScopeis now readonly (#5866) - Removes
SentryIntegrationProtocolfrom the API. This is not used after the removal of theintegrationsproperty (#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
enablePerformanceV2option 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.instructionproperty (#6504) - Remove
uuidandnameofSentryDebugMeta(#6512) UsedebugIDinstead ofuuidandcodeFileinstead ofname. - Enable enablePreWarmedAppStartTracing by default (#6508). With this option enabled, the SDK collects prewarmed app starts.
- Set
SentryFrame.functiondefault tonilinstead of<redacted>(#6608) - Change
valueandtypeofSentryExceptionto be nullable (#6563) - Change the default trace context status to "ok" instead of "undefined" (#6611)
- Remove
getHashfrom 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.typetonilwhenNSExceptionhas noreason(#6653). The backend then can provide a proper message when there is no reason. - Rename
SentryLog.LevelandSentryLog.Attributefor 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
SentryMechanismMetatoSentryMechanismContextto resolve Kotlin Multi-Platform build errors (#6607)
Improvements
- Replace deprecated SCNetworkReachability with NWPathMonitor (#6019)
- Expose attachment type on
SentryAttachmentfor 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
enablePropagateTraceparentto support OTel/W3C trace propagation (#6356) - Move
enableFileManagerSwizzlingfrom experimental options to top-level options (#6592).
This option is still disabled by default and will be enabled in a future major release. - Move
enableDataSwizzlingfrom experimental options to top-level options (#6592). This option remains enabled by default. - Add
sentry.replay_idattribute to logs (#6515) - Structured Logs: Add
SentrySwiftLogIntegration (#6286)
8.57.2
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
UIDesignRequiresCompatibilitytoYESinInfo.plist
Override (use with caution): If you understand the PII risks and want to enable session replay anyway, you can set:
options.experimental.enableSessionReplayInUnreliableEnvironment = trueThis 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
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
UIDesignRequiresCompatibilitytoYESinInfo.plist
Override (use with caution): If you understand the PII risks and want to enable session replay anyway, you can set:
options.experimental.enableSessionReplayInUnreliableEnvironment = trueThis experimental override option will be removed in a future minor version once the masking issues are resolved.
Fixes
8.57.0
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
UIDesignRequiresCompatibilitytoYESinInfo.plist
Override (use with caution): If you understand the PII risks and want to enable session replay anyway, you can set:
options.experimental.enableSessionReplayInUnreliableEnvironment = trueThis 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.enableSessionReplayInUnreliableEnvironmentto allow overriding the automatic disabling (#6389)