Releases: getsentry/sentry-cocoa
9.17.1
Fixes
- Ship dSYMs in SentryObjC-Dynamic.xcframework artifacts (#8036)
- Fix missing
_OBJC_CLASS_$_symbols in x86_64 slice of SentryObjC dynamic framework (#8037) - Mark feedback form aliases and conformances unavailable in app extensions (#8040)
- Silence retroactive conformance warning for
SentryLevel: CustomStringConvertiblewhen building with SPM from source (#8032)
9.17.0
Features
-
Support creating envelope items from attachments via SentryObjC (#8001)
-
Add format-string logging to
SentryObjCLoggerwith automatic message template extraction (#7996)[SentryObjCSDK.logger infoWithFormat:@"User %@ processed %d items", userName, count];
-
Add managed user feedback form presentation APIs (#7873)
Apps using the managed User Feedback integration can now present the form directly:
- Use
SentrySDK.feedback.show()to let the SDK pick the best presenter. - In UIKit, present the
SentrySDK.FeedbackForm()view controller yourself. - In SwiftUI, use
.sentryFeedback(isPresented:), or presentSentrySDK.FeedbackFormView()from a container such as.sheet.
These APIs use the global
SentryOptions.configureUserFeedbackconfiguration and temporarily hide the managed widget
while the form is open, when possible. - Use
-
Add per-form feedback configuration (#8018)
Managed feedback presentation APIs now accept a configuration closure, so apps can customize a single
form on top of the globalSentryOptions.configureUserFeedbacksettings without mutating them:SentrySDK.feedback.show { config in config.configureForm = { form in form.formTitle = "Report a Bug" form.submitButtonLabel = "Send Report" } config.tags = ["screen": "settings"] }
-
Standalone app start sub-spans operations have been renamed for better clarity (#8003):
- Pre Runtime Init: app.start -> app.start.pre_runtime_init
- Runtime Init to Pre Main Initializers: app.start -> app.start.runtime_init
- UIKit Init: app.start -> app.start.uikit_init
- Application Init: app.start -> app.start.application_init
- Extended App Start: app.start -> app.start.extended_app_start
Deprecations
- Deprecate the managed User Feedback widget/FAB. It will be removed in v10. Present the feedback form from your own UI with
SentrySDK.feedback.show(),SentrySDK.FeedbackForm, or.sentryFeedback(isPresented:)instead. (#8022)
Fixes
- App start duration on the Vitals dashboard now reflects the extended app launch time when using
extendAppLaunch()(#8028)
9.16.1
Note
No documented changes. This is the same as 9.16.0, re-released to fix the SentryObjC-Static SPM checksum.
Important
The new SentryObjC SDK introduced in this release should be considered experimental and may be subject to breaking changes.
Features
-
Add SentryObjC wrapper SDK — a pure Objective-C interface for projects that cannot enable Clang modules (e.g., ObjC++ with
-fmodules=NO). (#7918)Ships as a compile-from-source SPM product
SentryObjC, a static pre-compiled frameworkSentryObjC-Static.xcframework.zipand a dynamic pre-compiled frameworkSentryObjC-Dynamic.xcframework.zip.Steps to migrate:
- Replace your dependency on the target
SentryorSentrySPMwithSentryObjC(orSentryObjC-Static/SentryObjC-Dynamicif you want to use the precompiled binary targets). - Change
#import <Sentry/Sentry.h>to#import <SentryObjC/SentryObjC.h> - Rename
Sentry-prefixed types toSentryObjC(e.g.,SentrySDK→SentryObjCSDK,SentryOptions→SentryObjCOptions).
- Replace your dependency on the target
-
SentrySDK.extendAppLaunch()now returns the extended app launch span, allowing users to add child spans for granular breakdown of the app start period (#7985)
Fixes
- Fix crash in
SentryFramesTracker.add/removeListenerwhen called from a listener's owninit/deiniton a background thread, observed on iOS 26 (#7943) - Report only
coldorwarmasstart_typefor standalone app starts, removing the.prewarmedsuffix per sentry-conventions (#7968) - Fix reporting arbitrary Objective-C object throws via the C++ exception monitor (#7984)
9.16.0
Warning
The SentryObjC-Static SPM binary target in this release has an incorrect checksum and resolving dependencies might fail, but the release artifacts are not affected.
Important
The new SentryObjC SDK introduced in this release should be considered experimental and may be subject to breaking changes.
Features
-
Add SentryObjC wrapper SDK — a pure Objective-C interface for projects that cannot enable Clang modules (e.g., ObjC++ with
-fmodules=NO). (#7918)Ships as a compile-from-source SPM product
SentryObjC, a static pre-compiled frameworkSentryObjC-Static.xcframework.zipand a dynamic pre-compiled frameworkSentryObjC-Dynamic.xcframework.zip.Steps to migrate:
- Replace your dependency on the target
SentryorSentrySPMwithSentryObjC(orSentryObjC-Static/SentryObjC-Dynamicif you want to use the precompiled binary targets). - Change
#import <Sentry/Sentry.h>to#import <SentryObjC/SentryObjC.h> - Rename
Sentry-prefixed types toSentryObjC(e.g.,SentrySDK→SentryObjCSDK,SentryOptions→SentryObjCOptions).
- Replace your dependency on the target
-
SentrySDK.extendAppLaunch()now returns the extended app launch span, allowing users to add child spans for granular breakdown of the app start period (#7985)
Fixes
- Fix crash in
SentryFramesTracker.add/removeListenerwhen called from a listener's owninit/deiniton a background thread, observed on iOS 26 (#7943) - Report only
coldorwarmasstart_typefor standalone app starts, removing the.prewarmedsuffix per sentry-conventions (#7968) - Fix reporting arbitrary Objective-C object throws via the C++ exception monitor (#7984)
9.16.0-alpha.3
Important
The new SentryObjC SDK introduced in this release should be considered experimental and may be subject to breaking changes.
Features
-
Add SentryObjC wrapper SDK — a pure Objective-C interface for projects that cannot enable Clang modules (e.g., ObjC++ with
-fmodules=NO). (#7918)Ships as a compile-from-source SPM product
SentryObjC, a static pre-compiled frameworkSentryObjC-Static.xcframework.zipand a dynamic pre-compiled frameworkSentryObjC-Dynamic.xcframework.zip.Steps to migrate:
- Replace your dependency on the target
SentryorSentrySPMwithSentryObjC(orSentryObjC-Static/SentryObjC-Dynamicif you want to use the precompiled binary targets). - Change
#import <Sentry/Sentry.h>to#import <SentryObjC/SentryObjC.h> - Rename
Sentry-prefixed types toSentryObjC(e.g.,SentrySDK→SentryObjCSDK,SentryOptions→SentryObjCOptions).
- Replace your dependency on the target
Fixes
- Fix crash in
SentryFramesTracker.add/removeListenerwhen called from a listener's owninit/deiniton a background thread, observed on iOS 26 (#7943) - Report only
coldorwarmasstart_typefor standalone app starts, removing the.prewarmedsuffix per sentry-conventions (#7968) - Fix reporting arbitrary Objective-C object throws via the C++ exception monitor (#7984)
9.16.0-alpha.2
Important
The new SentryObjC SDK introduced in this release should be considered experimental and may be subject to breaking changes.
Features
- Add SentryObjC wrapper SDK — a pure Objective-C interface for projects that cannot enable Clang modules (e.g., ObjC++ with
-fmodules=NO). Ships asSentryObjC-Dynamic.xcframework.zipand as a compile-from-source SPM product. (#7918)
Steps to migrate:- Replace your dependency on
SentrywithSentryObjC(SPM product or xcframework) - Change
#import <Sentry/Sentry.h>to#import <SentryObjC/SentryObjC.h> - Rename
Sentry-prefixed types toSentryObjC(e.g.,SentrySDK→SentryObjCSDK,SentryOptions→SentryObjCOptions).
- Replace your dependency on
Fixes
9.16.0-alpha.1
Important
The new SentryObjC SDK introduced in this release should be considered experimental and may be subject to breaking changes.
Features
- Add SentryObjC wrapper SDK — a pure Objective-C interface for projects that cannot enable Clang modules (e.g., ObjC++ with
-fmodules=NO). Ships asSentryObjC-Dynamic.xcframework.zipand as a compile-from-source SPM product. (#7918)
Steps to migrate:- Replace your dependency on
SentrywithSentryObjC(SPM product or xcframework) - Change
#import <Sentry/Sentry.h>to#import <SentryObjC/SentryObjC.h> - Rename
Sentry-prefixed types toSentryObjC(e.g.,SentrySDK→SentryObjCSDK,SentryOptions→SentryObjCOptions).
- Replace your dependency on
Fixes
- Fix crash in
SentryFramesTracker.add/removeListenerwhen called from a listener's owninit/deiniton a background thread, observed on iOS 26 (#7943)
9.15.0
Features
- Add
SentrySDK.extendAppLaunch()andSentrySDK.finishExtendedAppLaunch()to extend standalone app start spans beyond the default end point (e.g. include initial data loading). CallextendAppLaunch()afterSentrySDK.start(options:)and before the app start transaction is created, then callfinishExtendedAppLaunch()when your app is fully ready. Requiresoptions.experimental.enableStandaloneAppStartTracing = true. (#7936) - Skip max app start duration limit for standalone app start tracing (#7949)
Fixes
- Fix UIViewController transactions lost during launch profiling (#7920)
8.58.3
9.14.0
Features
- Add standalone app start tracing as an experimental option (#7660), enable it via
options.experimental.enableStandaloneAppStartTracing = true
Fixes
- Defer Session Replay startup until a foreground window is available (#7928)
- Fix race conditions in scope observer iteration and propagation context locking (#7897)
- Support stack traces for standalone clients (#7817)
- Prevent SessionTracker crash with profiling (#7927)
- Reevaluation of sampling decision is only done for new sessions.
- Call SentrySessionListener on main thread (#7917)