React Native SDK releases
Track DEUNA React Native SDK migrations, native-module requirements, and a safe upgrade process for React Native CLI and Expo projects.
The maintained package is currently version 2.2.0. Pin the package in production and review the source changelog before every upgrade. This page summarizes integration-impacting changes verified against repository commit 0737d90237abe3bf28a41047b74cf14bc4ffcc8b; use the upstream changelog for the complete record and migration snippets.
Upgrade flow#
Notable releases#
v2.2.0 · Unified native fraud providers
- Adds
DeunaFraudModulesupport on Android and iOS. - Adds Mercado Pago early background initialization and support for the documented native fraud-provider set.
- Adds the Expo
withFraudProvidersconfig plugin. - Updates the underlying Android and iOS DEUNA SDK dependencies.
Initialize required providers early, verify config-plugin output, and test the missing/timeout path for every provider. Do not block all payments solely because optional device data is unavailable unless that is the explicitly approved risk policy.
v2.1.10–2.1.6 · Redirect, popup, and APM reliability
This line enabled required Android third-party cookies, added process-wide protection against duplicate external URL launches, fixed popup behavior, bundled versioned TypeScript types, centralized logs, and added the errorApmMissingReference error path.
Exercise repeated 3DS/APM attempts, return-to-app transitions, customer closure, and a new widget session after a failed redirect. Do not remove duplicate-launch protection in an application adapter.
v2.1.x · Native Apple Pay and Google Pay
The 2.1 line added native wallet availability and launch. React Native CLI projects must install native dependencies; Expo projects must rerun prebuild so config plugins apply required native configuration. Apple Pay also requires the application entitlement and merchant ID, and Google Pay availability depends on merchant enablement.
Follow the current wallet availability guide and the upstream changelog's toolchain notes for your exact React Native, Xcode, Android Gradle Plugin, and Kotlin versions.
v2.0.0 · Explicit in-app browser adapter
The SDK stopped bundling expo-web-browser. Payments that require a Custom Tab or Safari View Controller now use the InAppBrowserAdapter contract. Basic WebView-compatible flows can keep the default behavior; external-wallet and redirect flows must supply and test the correct adapter.
See External redirects for the maintained interface. The adapter promise and app lifecycle must represent the browser flow accurately so the SDK does not reopen or close the wrong view.
Workflow compatibility#
| Change | React Native CLI | Expo prebuild |
|---|---|---|
| JavaScript-only patch | Install package and rebuild the app | Install package and rebuild the app |
| Native SDK dependency | Install Pods and resolve Android dependencies | Rerun prebuild, inspect generated native projects, then rebuild |
| Wallet support | Configure entitlements and native dependencies manually | Configure app settings and rerun the wallet config plugin |
| Fraud provider | Add required native setup and Pods/subspecs | Configure the provider and rerun withFraudProviders |
| In-app browser adapter | Install and wire the selected native browser package | Install the compatible package and regenerate when native configuration changes |
Regression checklist#
- TypeScript compile plus clean Android and iOS native builds.
- Upgrade from the currently shipped application, not only a clean install.
- Payment Widget, Elements, Voucher, and Next Action in modal and embedded modes.
- 3DS and APM redirect open, duplicate prevention, cancellation, return, and retry.
- Apple Pay and Google Pay on physical devices with real entitlements/configuration.
- Every enabled fraud provider after cold start and during delayed initialization.
- Fast Refresh, background/foreground, process recreation, screen unmount, and controller disposal.
- Small screens, font scaling, screen readers, keyboard navigation, and reduced motion.
- Backend reconciliation after all success, error, and close callbacks.