Skip to content

Migrate iOS enableUnhandledCPPExceptionsV2 off the deprecated experimental alias #6783

Description

@antonis

Description

sentry-cocoa #9134 promotes enableUnhandledCPPExceptionsV2 from SentryOptions.experimental up to a top-level SentryOptions property. The old experimental.enableUnhandledCPPExceptionsV2 is kept as a shared-value deprecated alias and, per the deprecation annotation, will be removed in the next cocoa minor release.

The RN SDK reads and writes this option in packages/core/ios/RNSentryExperimentalOptions.m:

sentryOptions.experimental.enableUnhandledCPPExceptionsV2 = enabled;   // setter
return sentryOptions.experimental.enableUnhandledCPPExceptionsV2;       // getter

Impact

  • At the cocoa release that ships #9134 (a v9 minor): RN still compiles and behaves identically — the alias shares the same backing value — but these two lines will emit deprecation warnings (the ObjC property gains DEPRECATED_MSG_ATTRIBUTE).
  • At the following cocoa minor, where the alias is removed: sentryOptions.experimental.enableUnhandledCPPExceptionsV2 will fail to compile.

We currently bundle cocoa 9.29.0, so there is no runtime breakage today. This is a tracking issue to migrate ahead of the removal.

Action

Switch to the top-level property (exposed on the ObjC wrapper SentryObjCOptions.h) at the next cocoa bump that contains #9134:

sentryOptions.enableUnhandledCPPExceptionsV2 = enabled;
return sentryOptions.enableUnhandledCPPExceptionsV2;
  • Behavior is identical; the top-level property exists in the same release, so this also clears the deprecation warning immediately.
  • The JS _experiments.enableUnhandledCPPExceptionsV2 key and RN's public API stay unchanged — this is purely the native mapping in RNSentryExperimentalOptions.m.

References

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions