chore(deps): update Cocoa SDK to v9.12.0#5179
Conversation
| @@ -1 +1 @@ | |||
| Subproject commit a49e7c2148ac9e38bd35ef4f13bc9d6ea3ff0b81 | |||
| Subproject commit 0baded16c4bd1f2471949e89bf36289ca2b93080 | |||
There was a problem hiding this comment.
Bug: The .NET binding attempts to access enableSessionReplayInUnreliableEnvironment, a property removed from the native Cocoa SDK, causing a crash on initialization when Session Replay is enabled.
Severity: CRITICAL
Suggested Fix
Remove the EnableSessionReplayInUnreliableEnvironment property from the ApiDefinitions.cs binding and remove the code that sets this property during initialization in SentrySdk.cs to align with the native Cocoa SDK.
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#L1
Potential issue: The .NET SDK's C# bindings in `ApiDefinitions.cs` and initialization
logic in `SentrySdk.cs` reference the `enableSessionReplayInUnreliableEnvironment`
property. This property was removed from the native `SentryExperimentalOptions` in the
Cocoa SDK version 9.12.0. Consequently, when an iOS application with Session Replay
enabled initializes the Sentry SDK, the dynamic dispatch to set this non-existent
Objective-C property fails, resulting in a runtime crash (`NSInvalidArgumentException:
unrecognized selector sent to instance`).
Did we get this right? 👍 / 👎 to inform future reviews.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit ebfcc8f. Configure here.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5179 +/- ##
=======================================
Coverage 74.06% 74.06%
=======================================
Files 501 501
Lines 18113 18113
Branches 3521 3521
=======================================
+ Hits 13415 13416 +1
+ Misses 3838 3837 -1
Partials 860 860 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Regenerate ApiDefinitions.cs and StructsAndEnums.cs from the 9.12.0 native headers using scripts/generate-cocoa-bindings.ps1. Key changes from 9.12.0: - Remove enableSessionReplayInUnreliableEnvironment (removed in #7831 — the underlying iOS 26 Liquid Glass masking issues have been resolved) - Remove the corresponding C# property, initialization code, and sample usage - enableMetrics promoted from experimental to top-level SentryOptions (#7843) - enableReplayNetworkDetailsCapturing added to SentryExperimentalOptions - Network capture properties added to SentryReplayOptions (#7580) - NotificationService added to SentryExtensionType enum (#7818) Co-Authored-By: James Crosswell <james.crosswell@gmail.com>
ebfcc8f to
e2a9d0f
Compare
| @@ -284,38 +284,6 @@ public class NativeExperimentalOptions | |||
| /// </summary> | |||
| public class NativeSentryReplayOptions | |||
| { | |||
There was a problem hiding this comment.
Removal of EnableSessionReplayInUnreliableEnvironment is a breaking API change without migration path
The public property EnableSessionReplayInUnreliableEnvironment is being removed from NativeSentryReplayOptions without any deprecation cycle or migration path. Any consumer code that sets this property will fail to compile after upgrading. Per the skill's backwards compatibility criteria, breaking API changes should have a migration path (e.g., mark obsolete first, or document the migration in release notes/XML docs).
Verification
Reviewed the hunk showing the deletion of the public property EnableSessionReplayInUnreliableEnvironment on the public nested class NativeSentryReplayOptions within the public SentryOptions type. The PR description notes the underlying Cocoa SDK now runs Session Replay on iOS 26 by default, which explains the removal, but the .NET binding still exposes this as a public API surface and removing it directly breaks the API contract for any consumer who previously set this flag.
Identified by Warden code-review · VZF-ABE
There was a problem hiding this comment.
I think this is fine, since that functionality is clearly marked as experimental.
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [Sentry.Maui](https://sentry.io/) ([source](https://github.com/getsentry/sentry-dotnet)) | nuget | minor | `6.4.1` -> `6.5.0` | --- ### Release Notes <details> <summary>getsentry/sentry-dotnet (Sentry.Maui)</summary> ### [`v6.5.0`](https://github.com/getsentry/sentry-dotnet/blob/HEAD/CHANGELOG.md#650) [Compare Source](getsentry/sentry-dotnet@6.4.1...6.5.0) ##### Features ✨ - feat: Add support to send OTEL traces via OTLP by [@​jamescrosswell](https://github.com/jamescrosswell) in [#​4899](getsentry/sentry-dotnet#4899) ##### Fixes 🐛 - fix(unity): update `SentryEvent` to have `IsCaptured` to allow dropping screenshots of filtered events by [@​JoshuaMoelans](https://github.com/JoshuaMoelans) in [#​5162](getsentry/sentry-dotnet#5162) - fix: Memory leak when filtered Activities get garbage collected before `PruneFilteredSpans` runs by [@​jamescrosswell](https://github.com/jamescrosswell) in [#​5186](getsentry/sentry-dotnet#5186) ##### Dependencies ⬆️ ##### Deps - chore(deps): update Cocoa SDK to v9.12.0 by [@​github-actions](https://github.com/github-actions) in [#​5179](getsentry/sentry-dotnet#5179) - chore(deps): update CLI to v3.4.1 by [@​github-actions](https://github.com/github-actions) in [#​5171](getsentry/sentry-dotnet#5171) - chore(deps): update Native SDK to v0.13.8 by [@​github-actions](https://github.com/github-actions) in [#​5165](getsentry/sentry-dotnet#5165) - chore(deps): update Java SDK to v8.40.0 by [@​github-actions](https://github.com/github-actions) in [#​5161](getsentry/sentry-dotnet#5161) - chore(deps): update Cocoa SDK to v9.11.0 by [@​github-actions](https://github.com/github-actions) in [#​5160](getsentry/sentry-dotnet#5160) - chore(deps): update CLI to v3.4.0 by [@​github-actions](https://github.com/github-actions) in [#​5145](getsentry/sentry-dotnet#5145) - chore(deps): update Java SDK to v8.39.1 by [@​github-actions](https://github.com/github-actions) in [#​5144](getsentry/sentry-dotnet#5144) ##### Other - perf(logs): avoid string allocation when no parameters are passed by [@​Flash0ver](https://github.com/Flash0ver) in [#​4697](getsentry/sentry-dotnet#4697) - chore: fix missing skill by [@​jamescrosswell](https://github.com/jamescrosswell) in [#​5134](getsentry/sentry-dotnet#5134) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 *...
Updated [Sentry.AspNetCore](https://github.com/getsentry/sentry-dotnet) from 6.4.1 to 6.5.0. <details> <summary>Release notes</summary> _Sourced from [Sentry.AspNetCore's releases](https://github.com/getsentry/sentry-dotnet/releases)._ ## 6.5.0 ### Features ✨ - feat: Add support to send OTEL traces via OTLP by @jamescrosswell in [#4899](getsentry/sentry-dotnet#4899) ### Fixes 🐛 - fix(unity): update `SentryEvent` to have `IsCaptured` to allow dropping screenshots of filtered events by @JoshuaMoelans in [#5162](getsentry/sentry-dotnet#5162) - fix: Memory leak when filtered Activities get garbage collected before `PruneFilteredSpans` runs by @jamescrosswell in [#5186](getsentry/sentry-dotnet#5186) ### Dependencies ⬆️ #### Deps - chore(deps): update Cocoa SDK to v9.12.0 by @github-actions in [#5179](getsentry/sentry-dotnet#5179) - chore(deps): update CLI to v3.4.1 by @github-actions in [#5171](getsentry/sentry-dotnet#5171) - chore(deps): update Native SDK to v0.13.8 by @github-actions in [#5165](getsentry/sentry-dotnet#5165) - chore(deps): update Java SDK to v8.40.0 by @github-actions in [#5161](getsentry/sentry-dotnet#5161) - chore(deps): update Cocoa SDK to v9.11.0 by @github-actions in [#5160](getsentry/sentry-dotnet#5160) - chore(deps): update CLI to v3.4.0 by @github-actions in [#5145](getsentry/sentry-dotnet#5145) - chore(deps): update Java SDK to v8.39.1 by @github-actions in [#5144](getsentry/sentry-dotnet#5144) ### Other - perf(logs): avoid string allocation when no parameters are passed by @Flash0ver in [#4697](getsentry/sentry-dotnet#4697) - chore: fix missing skill by @jamescrosswell in [#5134](getsentry/sentry-dotnet#5134) Commits viewable in [compare view](getsentry/sentry-dotnet@6.4.1...6.5.0). </details> Updated [Sentry.Extensions.Logging](https://github.com/getsentry/sentry-dotnet) from 6.4.1 to 6.5.0. <details> <summary>Release notes</summary> _Sourced from [Sentry.Extensions.Logging's releases](https://github.com/getsentry/sentry-dotnet/releases)._ ## 6.5.0 ### Features ✨ - feat: Add support to send OTEL traces via OTLP by @jamescrosswell in [#4899](getsentry/sentry-dotnet#4899) ### Fixes 🐛 - fix(unity): update `SentryEvent` to have `IsCaptured` to allow dropping screenshots of filtered events by @JoshuaMoelans in [#5162](getsentry/sentry-dotnet#5162) - fix: Memory leak when filtered Activities get garbage collected before `PruneFilteredSpans` runs by @jamescrosswell in [#5186](getsentry/sentry-dotnet#5186) ### Dependencies ⬆️ #### Deps - chore(deps): update Cocoa SDK to v9.12.0 by @github-actions in [#5179](getsentry/sentry-dotnet#5179) - chore(deps): update CLI to v3.4.1 by @github-actions in [#5171](getsentry/sentry-dotnet#5171) - chore(deps): update Native SDK to v0.13.8 by @github-actions in [#5165](getsentry/sentry-dotnet#5165) - chore(deps): update Java SDK to v8.40.0 by @github-actions in [#5161](getsentry/sentry-dotnet#5161) - chore(deps): update Cocoa SDK to v9.11.0 by @github-actions in [#5160](getsentry/sentry-dotnet#5160) - chore(deps): update CLI to v3.4.0 by @github-actions in [#5145](getsentry/sentry-dotnet#5145) - chore(deps): update Java SDK to v8.39.1 by @github-actions in [#5144](getsentry/sentry-dotnet#5144) ### Other - perf(logs): avoid string allocation when no parameters are passed by @Flash0ver in [#4697](getsentry/sentry-dotnet#4697) - chore: fix missing skill by @jamescrosswell in [#5134](getsentry/sentry-dotnet#5134) Commits viewable in [compare view](getsentry/sentry-dotnet@6.4.1...6.5.0). </details> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: James Gunn <james@gunn.io>

Bumps modules/sentry-cocoa from 9.11.0 to 9.12.0.
Auto-generated by a dependency updater.
Changelog
9.12.0
Warning
This release promotes Metrics out of experimental and removes
options.experimental.enableMetricsandoptions.experimental.beforeSendMetric. If you set either of these, your app will fail to compile after upgrading.Migrate to
options.enableMetricsandoptions.beforeSendMetric(top-level onOptions) — 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
UIDesignRequiresCompatibilitynot 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:
Improvements
enableSessionReplayInUnreliableEnvironmentexperimental option and the environment checker that temporarily disabled Session Replay on iOS 26 (#7831)Features
Fixes
sentrycrashfu_readBytesFromFDwhenread()returns EOF on a truncated file (#7853)SentryFramesTrackerlisteners causingEXC_BAD_ACCESSinNSConcreteHashTable removeItem:when a listener is deallocated on a background thread (#7839)