diff --git a/CHANGELOG.md b/CHANGELOG.md index 7fa0d9e3c3..84bb5cef16 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,8 @@ - Add `expoUpdatesListenerIntegration` that records breadcrumbs for Expo Updates lifecycle events ([#5795](https://github.com/getsentry/sentry-react-native/pull/5795)) - Tracks update checks, downloads, errors, rollbacks, and restarts as `expo.updates` breadcrumbs - Enabled by default in Expo apps (requires `expo-updates` to be installed) - - +- feat(android): Expose `enableAnrFingerprinting` option ([#5838](https://github.com/getsentry/sentry-react-native/issues/5838)) + ### Fixes - Fix native frames measurements being dropped due to race condition ([#5813](https://github.com/getsentry/sentry-react-native/pull/5813)) diff --git a/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java b/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java index b2709fb9f4..77851bf83b 100644 --- a/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java +++ b/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java @@ -151,6 +151,9 @@ static void getSentryAndroidOptions( if (rnOptions.hasKey("enableTombstone")) { options.setTombstoneEnabled(rnOptions.getBoolean("enableTombstone")); } + if (rnOptions.hasKey("enableAnrFingerprinting")) { + options.setEnableAnrFingerprinting(rnOptions.getBoolean("enableAnrFingerprinting")); + } if (rnOptions.hasKey("spotlight")) { if (rnOptions.getType("spotlight") == ReadableType.Boolean) { options.setEnableSpotlight(rnOptions.getBoolean("spotlight")); diff --git a/packages/core/src/js/options.ts b/packages/core/src/js/options.ts index 91f843291b..e353c33559 100644 --- a/packages/core/src/js/options.ts +++ b/packages/core/src/js/options.ts @@ -73,6 +73,19 @@ export interface BaseReactNativeOptions { */ enableNdkScopeSync?: boolean; + /** + * When enabled, ANR events whose stacktraces contain only system frames + * (e.g. `java.lang`, `android.os`) are assigned a static fingerprint and + * grouped into a single issue instead of creating many separate issues. + * + * Enabled by default in the Android SDK since v8.35.0. + * Set to `false` to restore per-stacktrace ANR grouping. + * + * @default true + * @platform android + */ + enableAnrFingerprinting?: boolean; + /** * When enabled, all the threads are automatically attached to all logged events on Android *