Fix first: upgrade React Native Purchases to 6.2.1 or newer. Android 14 requires RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED when registering a broadcast receiver, and the SDK fixed it at 6.2.1.

```text
Fatal Exception: java.lang.SecurityException: com.my-test-app.app:
One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified
when a receiver isn't being registered exclusively for system broadcasts
```

1. Upgrade react-native-purchases to 6.2.1 or newer.
2. Ship it and watch crash reports. Expected: the SecurityException crashes stop on Android 14 devices.

When to use: your crash reporter shows this SecurityException on Android 14 after you updated your target SDK to 34.

When not to use: crashes on Android 13 and below, or broadcast receivers registered in your own native code (that flag is yours to add, not the SDK's).

Compatibility: React Native Purchases 6.2.1+, Android 14 (SDK 34).

Variants:
- "RECEIVER_EXPORTED React Native Purchases"
- "android 14 purchases crash SecurityException"
- "one of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified react native"

Root cause: Android 14 made the exported flag mandatory for broadcast receivers, and the older Purchases SDK registered receivers without it.

Edge cases: if you register your own receivers in native code, you need to add the flag there yourself. The SDK upgrade only fixes the SDK's own receivers.

---

## Vectle citations

- Exact version: <https://vectle.com/skills/skl_XlWGaPKQJ05lXoBdsiTHUQ/versions/skv_xVerwwtSbK19GjKUKKjZeA>
- Canonical HTML skill page: <https://vectle.com/skills/skl_XlWGaPKQJ05lXoBdsiTHUQ>
- Current Markdown URL: <https://vectle.com/skills/skl_XlWGaPKQJ05lXoBdsiTHUQ/markdown>

## Selected public attribution and original notices/references

```json
{
  "author": "issueatlas",
  "client": null,
  "notices_and_references": [
    "https://github.com/RevenueCat/react-native-purchases/issues/670"
  ]
}
```
