-
-
Notifications
You must be signed in to change notification settings - Fork 58
chore(deps): update Cocoa SDK to v9.0.0 #2439
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
65f513e to
b1c94c2
Compare
b1c94c2 to
9253e73
Compare
| version = 9.0.0 | ||
| repo = https://github.com/getsentry/sentry-cocoa |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: iOS native bridge calls initWithDict:didFailWithError: which was removed in Cocoa SDK 9.0.0, leading to silent Sentry SDK initialization failure.
Severity: CRITICAL | Confidence: High
🔍 Detailed Analysis
The iOS native bridge (package-dev/Plugins/iOS/SentryNativeBridge.m) attempts to initialize SentryOptions using initWithDict:didFailWithError:. This method was removed in Cocoa SDK 9.0.0, causing the runtime to fail finding it. Consequently, the Sentry SDK initialization on iOS fails silently, disabling all Sentry functionality, including event capture and crash reporting, without user notification.
💡 Suggested Fix
Update the iOS native bridge to use the new block-based initializer [SentrySDK startWithConfigureOptions:...] for SentryOptions to ensure compatibility with Cocoa SDK 9.0.0.
🤖 Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.
Location: modules/sentry-cocoa.properties#L1-L2
Potential issue: The iOS native bridge (`package-dev/Plugins/iOS/SentryNativeBridge.m`)
attempts to initialize `SentryOptions` using `initWithDict:didFailWithError:`. This
method was removed in Cocoa SDK 9.0.0, causing the runtime to fail finding it.
Consequently, the Sentry SDK initialization on iOS fails silently, disabling all Sentry
functionality, including event capture and crash reporting, without user notification.
Did we get this right? 👍 / 👎 to inform future reviews.
Reference ID: 5760755
Bumps modules/sentry-cocoa.properties from 8.57.3 to 9.0.0.
Auto-generated by a dependency updater.
Changelog
9.0.0
This changelog lists every breaking change. For a high-level overview and upgrade guidance, see the migration guide.
Breaking Changes
SentryEventDecoderto SPI (#6365)PreviewRedactOptions,SentryProfileOptions,SentryRedactViewHelper,SentryViewScreenshotOptions,SentryReplayOptions,SentryUserFeedbackConfiguration,SentryUserFeedbackFormConfiguration,SentryUserFeedbackThemeConfiguration,SentryUserFeedbackWidgetConfiguration,SentryFeedback, andSentryExperimentalOptionsfinal(#6365)setExtraValuefrom SentrySpan (#5864)integrationsproperty fromSentryOptions(#5749)defaultIntegrationsfunction fromSentryOptions(#6664)SentryEventDecodableinternal (#5808)spanproperty onSentryScopeis now readonly (#5866)SentryIntegrationProtocolfrom the API. This is not used after the removal of theintegrationsproperty (#6660)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)SentryFrame.instructionproperty (#6504)uuidandnameofSentryDebugMeta(#6512) UsedebugIDinstead ofuuidandcodeFileinstead ofname.SentryFrame.functiondefault tonilinstead of<redacted>(#6608)valueandtypeofSentryExceptionto be nullable (#6563)getHashfrom SentryDsn (#6605)If you need a precompiled XCFramework built with Xcode 15, continue using Sentry SDK 8.x.x.
SentryException.typetonilwhenNSExceptionhas noreason(#6653). The backend then can provide a proper message when there is no reason.SentryLog.LevelandSentryLog.Attributefor ObjC (#6666)SentryFeedbackinitializer to support multiple attachments (#6752)These components run in separate processes or sandboxes with different execution characteristics, which can cause false positive app hang reports.
SentryLevelenum to be written in ObjC (#6802)http.response.status_codefor spans to int (#6896)Features
enablePropagateTraceparentto support OTel/W3C trace propagation (#6356)enableFileManagerSwizzlingfrom experimental options to top-level options (#6592).This option is still disabled by default and will be enabled in a future major release.
enableDataSwizzlingfrom experimental options to top-level options (#6592). This option remains enabled by default.sentry.replay_idattribute to logs (#6515)HubandClient(#6737)Fixes
SentryMechanismMetatoSentryMechanismContextto resolve Kotlin Multi-Platform build errors (#6607)SentryCppHelperto Sentry (#6754)beforeSend(#6910)Improvements
SentryAttachmentfor downstream SDKs (like sentry-godot) (#6521)9.0.0-rc.1
Breaking Changes
SentryEventDecoderto SPI (#6365)PreviewRedactOptions,SentryProfileOptions,SentryRedactViewHelper,SentryViewScreenshotOptions,SentryReplayOptions,SentryUserFeedbackConfiguration,SentryUserFeedbackFormConfiguration,SentryUserFeedbackThemeConfiguration,SentryUserFeedbackWidgetConfiguration,SentryFeedback, andSentryExperimentalOptionsfinal(#6365)setExtraValuefrom SentrySpan (#5864)integrationsproperty fromSentryOptions(#5749)defaultIntegrationsfunction fromSentryOptions(#6664)SentryEventDecodableinternal (#5808)spanproperty onSentryScopeis now readonly (#5866)SentryIntegrationProtocolfrom the API. This is not used after the removal of theintegrationsproperty (#6660)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)SentryFrame.instructionproperty (#6504)uuidandnameofSentryDebugMeta(#6512) UsedebugIDinstead ofuuidandcodeFileinstead ofname.SentryFrame.functiondefault tonilinstead of<redacted>(#6608)valueandtypeofSentryExceptionto be nullable (#6563)getHashfrom SentryDsn (#6605)If you need a precompiled XCFramework built with Xcode 15, continue using Sentry SDK 8.x.x.
SentryException.typetonilwhenNSExceptionhas noreason(#6653). The backend then can provide a proper message when there is no reason.SentryLog.LevelandSentryLog.Attributefor ObjC (#6666)SentryFeedbackinitializer to support multiple attachments (#6752)These components run in separate processes or sandboxes with different execution characteristics, which can cause false positive app hang reports.
SentryLevelenum to be written in ObjC (#6802)Features
enablePropagateTraceparentto support OTel/W3C trace propagation (#6356)enableFileManagerSwizzlingfrom experimental options to top-level options (#6592).This option is still disabled by default and will be enabled in a future major release.
enableDataSwizzlingfrom experimental options to top-level options (#6592). This option remains enabled by default.sentry.replay_idattribute to logs (#6515)HubandClient(#6737)Fixes
SentryMechanismMetatoSentryMechanismContextto resolve Kotlin Multi-Platform build errors (#6607)SentryCppHelperto Sentry (#6754)Improvements
SentryAttachmentfor downstream SDKs (like sentry-godot) (#6521)9.0.0-rc.0
Breaking Changes
SentryEventDecoderto SPI (#6365)PreviewRedactOptions,SentryProfileOptions,SentryRedactViewHelper,SentryViewScreenshotOptions,SentryReplayOptions,SentryUserFeedbackConfiguration,SentryUserFeedbackFormConfiguration,SentryUserFeedbackThemeConfiguration,SentryUserFeedbackWidgetConfiguration,SentryFeedback, andSentryExperimentalOptionsfinal(#6365)setExtraValuefrom SentrySpan (#5864)integrationsproperty fromSentryOptions(#5749)defaultIntegrationsfunction fromSentryOptions(#6664)SentryEventDecodableinternal (#5808)spanproperty onSentryScopeis now readonly (#5866)SentryIntegrationProtocolfrom the API. This is not used after the removal of theintegrationsproperty (#6660)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)SentryFrame.instructionproperty (#6504)uuidandnameofSentryDebugMeta(#6512) UsedebugIDinstead ofuuidandcodeFileinstead ofname.SentryFrame.functiondefault tonilinstead of<redacted>(#6608)valueandtypeofSentryExceptionto be nullable (#6563)getHashfrom SentryDsn (#6605)If you need a precompiled XCFramework built with Xcode 15, continue using Sentry SDK 8.x.x.
SentryException.typetonilwhenNSExceptionhas noreason(#6653). The backend then can provide a proper message when there is no reason.SentryLog.LevelandSentryLog.Attributefor ObjC (#6666)SentryFeedbackinitializer to support multiple attachments (#6752)These components run in separate processes or sandboxes with different execution characteristics, which can cause false positive app hang reports.
SentryLevelenum to be written in ObjC (#6802)Features
enablePropagateTraceparentto support OTel/W3C trace propagation (#6356)enableFileManagerSwizzlingfrom experimental options to top-level options (#6592).This option is still disabled by default and will be enabled in a future major release.
enableDataSwizzlingfrom experimental options to top-level options (#6592). This option remains enabled by default.sentry.replay_idattribute to logs (#6515)HubandClient(#6737)Fixes
SentryMechanismMetatoSentryMechanismContextto resolve Kotlin Multi-Platform build errors (#6607)SentryCppHelperto Sentry (#6754)Improvements
SentryAttachmentfor downstream SDKs (like sentry-godot) (#6521)9.0.0-alpha.1
Breaking Changes
SentryEventDecoderto SPI (#6365)PreviewRedactOptions,SentryProfileOptions,SentryRedactViewHelper,SentryViewScreenshotOptions,SentryReplayOptions,SentryUserFeedbackConfiguration,SentryUserFeedbackFormConfiguration,SentryUserFeedbackThemeConfiguration,SentryUserFeedbackWidgetConfiguration,SentryFeedback, andSentryExperimentalOptionsfinal(#6365)setExtraValuefrom SentrySpan (#5864)integrationsproperty fromSentryOptions(#5749)defaultIntegrationsfunction fromSentryOptions(#6664)SentryEventDecodableinternal (#5808)spanproperty onSentryScopeis now readonly (#5866)SentryIntegrationProtocolfrom the API. This is not used after the removal of theintegrationsproperty (#6660)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)SentryFrame.instructionproperty (#6504)uuidandnameofSentryDebugMeta(#6512) UsedebugIDinstead ofuuidandcodeFileinstead ofname.SentryFrame.functiondefault tonilinstead of<redacted>(#6608)valueandtypeofSentryExceptionto be nullable (#6563)getHashfrom SentryDsn (#6605)If you need a precompiled XCFramework built with Xcode 15, continue using Sentry SDK 8.x.x.
SentryException.typetonilwhenNSExceptionhas noreason(#6653). The backend then can provide a proper message when there is no reason.SentryLog.LevelandSentryLog.Attributefor ObjC (#6666)SentryFeedbackinitializer to support multiple attachments (#6752)Fixes
SentryMechanismMetatoSentryMechanismContextto resolve Kotlin Multi-Platform build errors (#6607)SentryCppHelperto Sentry (#6754)Improvements
SentryAttachmentfor downstream SDKs (like sentry-godot) (#6521)Features
enablePropagateTraceparentto support OTel/W3C trace propagation (#6356)enableFileManagerSwizzlingfrom experimental options to top-level options (#6592).This option is still disabled by default and will be enabled in a future major release.
enableDataSwizzlingfrom experimental options to top-level options (#6592). This option remains enabled by default.sentry.replay_idattribute to logs (#6515)HubandClient(#6737)9.0.0-alpha.0
Breaking Changes
SentryEventDecoderto SPI (#6365)PreviewRedactOptions,SentryProfileOptions,SentryRedactViewHelper,SentryViewScreenshotOptions,SentryReplayOptions,SentryUserFeedbackConfiguration,SentryUserFeedbackFormConfiguration,SentryUserFeedbackThemeConfiguration,SentryUserFeedbackWidgetConfiguration,SentryFeedback, andSentryExperimentalOptionsfinal(#6365)setExtraValuefrom SentrySpan (#5864)integrationsproperty fromSentryOptions(#5749)defaultIntegrationsfunction fromSentryOptions(#6664)SentryEventDecodableinternal (#5808)SentryIntegrationProtocolfrom the API. This is not used after the removal of theintegrationsproperty (#6660)debug=Truewhich fixes various deadlocks (#6562)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)SentryFrame.instructionproperty (#6504)uuidandnameofSentryDebugMeta(#6512) UsedebugIDinstead ofuuidandcodeFileinstead ofname.SentryFrame.functiondefault tonilinstead of<redacted>(#6608)valueandtypeofSentryExceptionto be nullable (#6563)getHashfrom SentryDsn (#6605)If you need a precompiled XCFramework built with Xcode 15, continue using Sentry SDK 8.x.x.
SentryException.typetonilwhenNSExceptionhas noreason(#6653). The backend then can provide a proper message when there is no reason.SentryLog.LevelandSentryLog.Attributefor ObjC (#6666)Fixes
SentryMechanismMetatoSentryMechanismContextto resolve Kotlin Multi-Platform build errors (#6607)Improvements
SentryAttachmentfor downstream SDKs (like sentry-godot) (#6521)Features
enablePropagateTraceparentto support OTel/W3C trace propagation (#6356)enableFileManagerSwizzlingfrom experimental options to top-level options (#6592).This option is still disabled by default and will be enabled in a future major release.
enableDataSwizzlingfrom experimental options to top-level options (#6592). This option remains enabled by default.sentry.replay_idattribute to logs (#6515)