diff --git a/packages/docs/src/pages/docs/updates/releases.tsx b/packages/docs/src/pages/docs/updates/releases.tsx index aafb9e307..bb7673adc 100644 --- a/packages/docs/src/pages/docs/updates/releases.tsx +++ b/packages/docs/src/pages/docs/updates/releases.tsx @@ -23,6 +23,10 @@ interface Note { element: React.ReactNode; } +const reactNativeListenerLifecycleReleases = [ + ['react-native-iap 16.0.1', 'react-native-iap-16.0.1'], +] as const; + const androidOfferCodeReleases = [ ['OpenIAP Spec 2.4.2', 'docs-2.4.2'], ['openiap-apple 2.4.2', '2.4.2'], @@ -134,6 +138,124 @@ function Releases() { useScrollToHash(); const allNotes: Note[] = [ + // August 1, 2026 - React Native iOS listener lifecycle patch + { + id: 'react-native-iap-ios-listener-lifecycle-2026-08-01', + date: new Date('2026-08-01'), + element: ( +
+ Publishes react-native-iap 16.0.1 with the iOS + listener cleanup fix from{' '} + + PR #262 + + . Dismissing a plans or paywall screen while StoreKit and Nitro + listener work is still in flight no longer tears down the final + native listener during the transition, avoiding the release-build + abort reported by consumer apps. +
+ +onPurchaseSuccess after its asynchronous refresh
+ completes, preserving the documented{' '}
+ finishTransaction path. Internal hook state updates
+ remain mount-guarded.
+ react-native-iap@16.0.1 and keep purchase completion
+ in onPurchaseSuccess, including{' '}
+ finishTransaction.
+