diff --git a/.github/pr-previews/pr-consolidated-framework-patches.mp4 b/.github/pr-previews/pr-consolidated-framework-patches.mp4 new file mode 100644 index 000000000..e9a9dda62 Binary files /dev/null and b/.github/pr-previews/pr-consolidated-framework-patches.mp4 differ diff --git a/packages/docs/src/pages/docs/updates/releases.tsx b/packages/docs/src/pages/docs/updates/releases.tsx index 78c5fd7ef..eef68db81 100644 --- a/packages/docs/src/pages/docs/updates/releases.tsx +++ b/packages/docs/src/pages/docs/updates/releases.tsx @@ -23,13 +23,15 @@ interface Note { element: React.ReactNode; } -const appStoreToolchainPatchReleases = [ +const frameworkIosPatchReleases = [ + ['react-native-iap 16.0.1', 'react-native-iap-16.0.1'], ['godot-iap 3.0.1', 'godot-iap-3.0.1'], ['OpenIap.Maui 2.0.1', 'maui-iap-2.0.1'], ] as const; -const reactNativeListenerLifecycleReleases = [ - ['react-native-iap 16.0.1', 'react-native-iap-16.0.1'], +const frameworkIosPatchAliases = [ + 'react-native-iap-ios-listener-lifecycle-2026-08-01', + 'app-store-toolchain-compatibility-2026-08-02', ] as const; const androidOfferCodeReleases = [ @@ -143,20 +145,24 @@ function Releases() { useScrollToHash(); const allNotes: Note[] = [ - // August 2, 2026 - App Store toolchain compatibility patch + // August 2, 2026 - Apple framework compatibility patches { - id: 'app-store-toolchain-compatibility-2026-08-02', + id: 'apple-framework-compatibility-patches-2026-08-02', + aliases: frameworkIosPatchAliases, date: new Date('2026-08-02'), element: (
+ {frameworkIosPatchAliases.map((alias) => ( +
- ), - }, - - // 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: ( -
- - August 1, 2026 - React Native iOS listener lifecycle patch - - -

- 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. -

- -
React Native
+
Godot
@@ -360,8 +292,15 @@ function Releases() { finishTransaction.
  • - The OpenIAP Spec, native Apple and Google packages, and other - framework libraries are unchanged by this React Native-only patch. + MAUI applications rejected with the SDK 27.0 validation message + should upgrade to OpenIap.Maui 2.0.1, rebuild the + archive, and resubmit it. +
  • +
  • + Xcode 27 remains a source-compatibility CI lane until Apple + accepts it for App Store submissions. Compiler-gated StoreKit 27 + behavior is not included in these stable precompiled artifacts + yet.
  • @@ -379,7 +318,7 @@ function Releases() { fontSize: '0.9rem', }} > - {reactNativeListenerLifecycleReleases.map(([label, tag]) => ( + {frameworkIosPatchReleases.map(([label, tag]) => (