Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Sep 16, 2025

fixes #4139


Bumps modules/sentry-cocoa.properties from 8.55.1 to 8.56.0.

Auto-generated by a dependency updater.

Changelog

8.56.0

Features

  • Structured Logs: Flush logs on SDK flush/close (#5834)
  • Add masking options for screenshots (#5401)
  • Add significant time change breadcrumb (#6112)
  • Add support for iOS 26, macOS 26, visionOS 26, watchOS 26, and tvOS 26 in device tests (#6063)

Improvements

  • Lazily CharacterSet only once in SentryBaggageSerialization (#5871)
  • Structured Logging: Log SentrySDK.logger calls to SentrySDKLog (#5991)
  • The build type in the app context now differentiates between enterprise and adhoc (#6044)
  • visionOS no longer needs swift's interoperability mode (#6077)
  • Ensure IP address is only inferred by Relay if sendDefaultPii is true (#5877)
  • Sentry without UIKit / AppKit is available to install with SPM (#6160)

Fixes

  • Don't capture replays for events dropped in beforeSend (#5916)
  • Fix linking with SentrySwiftUI on Xcode 26 for visionOS (#5823)
  • Structured Logging: Logger called before SentrySDK.start becomes unusable (#5984)
  • Add masking for AVPlayerView (#5910)
  • Fix missing view hierachy when enabling attachScreenshot too (#5989)
  • Fix macOS's frameworks not following the versioned framework structure (#6049)
  • Add warning to addBreadcrumb when used before SDK init (#6083)
  • Add null-handling for parsed DSN in SentryHTTPTransport (#5800)
  • Fix crash in Session Replay when opening the camera UI on iOS 26+ by skipping redaction of internal views.
    This may result in more of the camera screen being redacted. (#6045)
  • Fix crash in SentryDependencyContainer init when using the SDK as a static framework (#6125)
  • Fixes a React Native legacy build failure by adding the missing self references for explicit capture semantics (#6156)

8.56.0-alpha.3

Fixes

  • Fixes a React Native legacy build failure by adding the missing self references for explicit capture semantics (#6156)

8.56.0-alpha.2

Features

  • Add significant time change breadcrumb (#6112)
  • Add support for iOS 26, macOS 26, visionOS 26, watchOS 26, and tvOS 26 in device tests (#6063)

Fixes

  • Fix crash in Session Replay when opening the camera UI on iOS 26+ by skipping redaction of internal views.
    This may result in more of the camera screen being redacted. (#6045)
  • Fix crash in SentryDependencyContainer init when using the SDK as a static framework (#6125)

8.56.0-alpha.1

  • No documented changes.

8.56.0-alpha.0

Features

  • Structured Logs: Flush logs on SDK flush/close (#5834)
  • Add masking options for screenshots (#5401)

Fixes

  • Don't capture replays for events dropped in beforeSend (#5916)
  • Fix linking with SentrySwiftUI on Xcode 26 for visionOS (#5823)
  • Structured Logging: Logger called before SentrySDK.start becomes unusable (#5984)
  • Add masking for AVPlayerView (#5910)
  • Fix missing view hierachy when enabling attachScreenshot too (#5989)
  • Fix macOS's frameworks not following the versioned framework structure (#6049)
  • Add warning to addBreadcrumb when used before SDK init (#6083)
  • Add null-handling for parsed DSN in SentryHTTPTransport (#5800)

Improvements

  • Lazily CharacterSet only once in SentryBaggageSerialization (#5871)
  • Structured Logging: Log SentrySDK.logger calls to SentrySDKLog (#5991)
  • The build type in the app context now differentiates between enterprise and adhoc (#6044)
  • visionOS no longer needs swift's interoperability mode (#6077)
  • Ensure IP address is only inferred by Relay if sendDefaultPii is true (#5877)

@github-actions github-actions bot added the Dependencies Pull requests that update a dependency file label Sep 16, 2025
@bruno-garcia bruno-garcia force-pushed the deps/modules/sentry-cocoa.properties branch from c4a5288 to 690532d Compare September 16, 2025 03:09
Copy link

codecov bot commented Sep 16, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 73.42%. Comparing base (af70fb3) to head (e7b1919).
⚠️ Report is 5 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4528      +/-   ##
==========================================
+ Coverage   73.39%   73.42%   +0.02%     
==========================================
  Files         479      479              
  Lines       17506    17506              
  Branches     3480     3480              
==========================================
+ Hits        12849    12854       +5     
+ Misses       3776     3773       -3     
+ Partials      881      879       -2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@jamescrosswell jamescrosswell marked this pull request as draft September 16, 2025 05:17
@jpnurmi jpnurmi force-pushed the deps/modules/sentry-cocoa.properties branch from 42d9c05 to ac37eb7 Compare September 16, 2025 07:04
@jpnurmi
Copy link
Collaborator

jpnurmi commented Sep 16, 2025

Note: I did not write bindings for the new Swift types by hand but generated them with:

Crafting the initial Swift types in their current form is quite straight-forward, but maintaining future changes by hand is going to be error-prone. I'll try to get back to generating Swift types automatically to avoid that...

@jpnurmi jpnurmi marked this pull request as ready for review September 16, 2025 13:35

// -(NSDictionary<NSString *,id> * _Nonnull)serialize __attribute__((warn_unused_result("")));
[Export ("serialize")]
NSDictionary<NSString, NSObject> Serialize();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question new/CS0108

Why can't (or shouldn't) use new here (and in ApiDefinitions.cs),
and rather suppress the diagnostic?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And should we, consequently, also remove the other usages of new?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The problem was that the error came from SentrySpan.g.cs, not from ApiDefinitions.cs:

Error: /Users/runner/work/sentry-dotnet/sentry-dotnet/src/Sentry.Bindings.Cocoa/obj/Release/net8.0-ios17.0/iOS/Sentry.CocoaSdk/SentrySpan.g.cs(134,36): error CS0108: 'ISentrySpan.Serialize()' hides inherited member 'ISentrySerializable.Serialize()'. Use the new keyword if hiding was intended. [/Users/runner/work/sentry-dotnet/sentry-dotnet/src/Sentry.Bindings.Cocoa/Sentry.Bindings.Cocoa.csproj::TargetFramework=net8.0-ios17.0]

https://github.com/getsentry/sentry-dotnet/actions/runs/17763516547/job/50481482686?pr=4528

Is there any other way to get around this? If not, we could indeed remove the respective modifications in ApiDefinitions.cs.

Copy link
Collaborator

@jpnurmi jpnurmi Sep 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to elaborate a bit, I had tried changing the regexp to make ApiDefinitions.cs look like this:

// @protocol SentrySpan <SentrySerializable>
[Protocol]
[Model]
[Internal]
[BaseType (typeof(NSObject))]
interface SentrySpan : SentrySerializable
{
    ...

    // @required -(NSDictionary<NSString *,id> * _Nonnull)serialize;
    [Abstract]
    [Export ("serialize")]
    new NSDictionary<NSString, NSObject> Serialize();
}

Still, SentrySpan.g.cs generated on the fly looks like this:

namespace Sentry.CocoaSdk {
	...
	internal partial interface ISentrySpan : INativeObject, IDisposable, 
		Sentry.CocoaSdk.ISentrySerializable
	{
		...
		[BindingImpl (BindingImplOptions.GeneratedCode | BindingImplOptions.Optimizable)]
		[Export ("serialize")]
		[Preserve (Conditional = true)]
		NSDictionary<NSString, NSObject> Serialize ();
}

Which then results in CS0108 :(

  Sentry.Bindings.Cocoa net8.0-maccatalyst17.0 failed with 1 error(s) (6.2s)
    /Users/jpnurmi/Projects/sentry/sentry-dotnet/src/Sentry.Bindings.Cocoa/obj/Release/net8.0-maccatalyst17.0/MacCatalyst/Sentry.CocoaSdk/SentrySpan.g.cs(134,36): error CS0108: 'ISentrySpan.Serialize()' hides inherited member 'ISentrySerializable.Serialize()'. Use the new keyword if hiding was intended.
  Sentry.Bindings.Cocoa net8.0-ios17.0 failed with 1 error(s) (6.8s)
    /Users/jpnurmi/Projects/sentry/sentry-dotnet/src/Sentry.Bindings.Cocoa/obj/Release/net8.0-ios17.0/iOS/Sentry.CocoaSdk/SentrySpan.g.cs(134,36): error CS0108: 'ISentrySpan.Serialize()' hides inherited member 'ISentrySerializable.Serialize()'. Use the new keyword if hiding was intended.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I cleaned up the unnecessary modifications now that CS0108 is disabled: e7b1919

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you ignore the CS0108 warning and do not use the new keyword, the runtime behavior is identical to what it would be if you had used new. The new keyword only affects compile-time intent and clarity, not the actual method hiding at runtime.

  • Without new: The member still hides the base member, but the compiler warns you (CS0108) to make sure you’re aware.
  • With new: The member explicitly hides the base member, and the warning is suppressed.

In both cases, the derived member hides the base member, and calls to the member on the derived type will use the derived implementation. The difference is only at compile time: using new makes your intent explicit and silences the warning.

Summary:
Ignoring the warning does not change runtime behavior; it only leaves a warning in your build output. The code will work the same way either way.

Copy link
Member

@Flash0ver Flash0ver Sep 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see ... thanks for elaborating.
Now I'm wondering, does new actually have an effect in metadata ... so I'm wondering of removing existing news could be a breaking change 🤔 ... so I'm wondering if we should leave it as it was before my "complaint"

UPDATE 1: no ... new does not seem to be reflected in IL
UPDATE 2: oops ... didn't see your latest comment ... I have no more concerns 😉

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe safer to leave the existing ones intact, after all?

Copy link
Collaborator

@jamescrosswell jamescrosswell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's green (so all our tests passed) and I managed to build and run our sample app with it (and catch an exception)... so LGTM!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[MAUI] Breadcrumbs occasionally applying to event out of order
4 participants