Releases

Release notes for OpenIAP packages and framework libraries.

September 7, 2026 - react-native-iap 16.5.1 / expo-iap 5.5.1: AGP 9 compatibility#

Android library builds now support AGP 9's built-in Kotlin while retaining the Kotlin Android plugin on AGP 8 and AGP 9 opt-out projects (PR #438).

Framework libraries
  • react-native-iap 16.5.1 - fixes missing Nitro-generated Kotlin classes and native build and packaging errors with the AGP 9 DSL.
  • expo-iap 5.5.1 - fixes compilation of the logging helper when Android BuildConfig generation is disabled by default.
Integration notes
  • Upgrading a whole app to AGP 9 also requires compatible React Native, Expo, Nitro, and other Gradle plugins.
  • Both packages now deprecate kitApi.status() and kitApi.entitlements() compatibility reads; new account reads must authenticate the user on a developer backend and use the secret-only IAPKit /v2 endpoints.

September 3, 2026 - Android IAP opt-out#

Flutter apps that ship in-app purchases only on Apple platforms can now drop every Android store SDK from the build.

Framework libraries
  • flutter_inapp_purchase 10.6.0 - adds the openiapPlatform=none Android opt-out, which keeps the plugin registered with a no-op implementation while excluding OpenIAP Google, Play Billing, Horizon, and Amazon IAP dependencies and the billing manifest entries they supply (PR #422).
Integration notes
  • Set openiapPlatform=none in android/gradle.properties and run flutter clean before rebuilding. Omit the property to keep Google Play as the default.
  • On such a build initConnection() returns false and Android store operations report ErrorCode.IapNotAvailable.
  • The opt-out cannot be combined with horizonEnabled or fireOsEnabled; disable both legacy store flags first, or the Android build fails.

August 31, 2026 - Purchase lifecycle and Horizon verification#

Purchase delivery now stays stable across initialization and reconnect cycles, and Meta Horizon purchases can be verified through IAPKit without being treated as Google Play receipts. Failed or invalid verification leaves the transaction unfinished for a safe retry.

Shared spec and native packages
  • OpenIAP Spec 3.4.0, openiap-apple 3.4.0, and openiap-google 3.5.0 - add an explicit Horizon IAPKit payload across the shared contract; the Horizon Android module resolves the Meta user before verification (PR #412).
  • openiap-google 3.5.0 - restores purchase and error listeners after both successful and failed reconnect attempts (PR #410).
Framework libraries
  • react-native-iap 16.5.0 - stabilizes iOS on-demand and Android explicit connection, replays bounded startup events, refreshes current catalog data, and preserves store errors (PR #409), while forwarding the Horizon verification payload described above.
  • expo-iap 5.5.0, flutter_inapp_purchase 10.5.0, godot-iap 3.5.0, kmp-iap 3.5.0, and OpenIap.Maui 2.5.0 - expose Horizon IAPKit payloads; Flutter and KMP finish only verified transactions, leaving failed or invalid results available for retry.
Integration notes
  • Android root API callers must call initConnection() before store operations. The React Native hook manages this lifecycle, while iOS connects on demand.
  • The React Native hook reports fetchProducts failures to onError and rethrows them. hasActiveSubscriptions rejects query failures instead of returning false.

August 29, 2026 - StoreKit toolchain compatibility#

Xcode 26.4 builds no longer reference StoreKit symbols introduced in the Xcode 26.5 SDK. Purchase APIs and runtime behavior are unchanged (issue #386; PR #387).

Apple package
  • openiap-apple 3.3.1 - gates billing-plan, commitment, pricing-term, and revocation symbols on Swift 6.3.2, the compiler bundled with Xcode 26.5. The Xcode 26.4-compatible JWS promotional-offer path remains available.
Framework libraries
  • react-native-iap 16.4.1, expo-iap 5.4.1, flutter_inapp_purchase 10.4.1, godot-iap 3.4.1, kmp-iap 3.4.1, and OpenIap.Maui 2.4.1 - select or bundle openiap-apple 3.3.1 so each Apple integration receives the corrected compiler guards.
Upgrade notes
  • Upgrade the affected framework package when building with Xcode 26.4. No application code changes are required.

August 27, 2026 - Unified offer code redemption#

Apps can now open the current store's offer or promo code flow through one cross-platform openRedeemOfferCode API (PR #384).

Shared spec and native packages
  • OpenIAP Spec 3.3.0, openiap-apple 3.3.0, and openiap-google 3.4.0 - define and implement the unified mutation. Apple opens the StoreKit redemption sheet and can return a verified purchase when the store reports one synchronously; Google Play opens its redeem page, while Amazon Appstore and Meta Horizon resolve null without launching a flow. Apple platforms without a redemption sheet report a FeatureNotSupported error.
Framework libraries
  • react-native-iap 16.4.0, expo-iap 5.4.0, flutter_inapp_purchase 10.4.0, godot-iap 3.4.0, kmp-iap 3.4.0, and OpenIap.Maui 2.4.0 - expose the same cross-platform operation and update their offer code examples to use it.
Migration notes
  • Replace presentCodeRedemptionSheetIOS and openRedeemOfferCodeAndroid with openRedeemOfferCode. The platform-specific methods are deprecated and scheduled for removal in OpenIAP 4.0.
  • A successful presentation can still resolve null. Keep purchase listeners active and reconcile available purchases when the app resumes.
...
Showing 1-5 of 77 items