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()andkitApi.entitlements()compatibility reads; new account reads must authenticate the user on a developer backend and use the secret-only IAPKit/v2endpoints.
Package Releases
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=noneAndroid 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=noneinandroid/gradle.propertiesand runflutter cleanbefore rebuilding. Omit the property to keep Google Play as the default. - On such a build
initConnection()returnsfalseand Android store operations reportErrorCode.IapNotAvailable. - The opt-out cannot be combined with
horizonEnabledorfireOsEnabled; disable both legacy store flags first, or the Android build fails.
Package Releases
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
fetchProductsfailures toonErrorand rethrows them.hasActiveSubscriptionsrejects query failures instead of returningfalse.
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
nullwithout launching a flow. Apple platforms without a redemption sheet report aFeatureNotSupportederror.
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
presentCodeRedemptionSheetIOSandopenRedeemOfferCodeAndroidwithopenRedeemOfferCode. 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.