Android Native - 10.x to 11.x Migration
This release updates the SDK to Google Play Billing Library 9.1.0, Kotlin 2.2.21 and Jetpack Compose BOM 2026.06.01. The RevenueCat API itself is unchanged, but the new dependencies raise the build requirements of your app and can change the versions of libraries it already uses.
Kotlin 2.1.0 or newer
The minimum Kotlin version is now 2.1.0, up from 1.8.0 in v10. Older compilers fail with:
Module was compiled with an incompatible version of Kotlin.
The binary version of its metadata is 2.2.0, expected version is 2.0.0.
Update the Kotlin Gradle Plugin in your app to 2.1.0 or newer.
compileSdk 35 or higher
Play Billing Library 9 depends on androidx.core 1.15.0, which requires apps to compile against API 35 or later. Your app, and any library module that depends on the SDK, must set compileSdk = 35 or higher. Lower values fail with:
Execution failed for task ':app:checkDebugAarMetadata'.
> Dependency 'androidx.core:core:1.15.0' requires libraries and applications that
depend on it to compile against version 35 or later of the
Android APIs.
minSdk and targetSdk are not affected.
Play Billing Library 9
The SDK now depends on Play Billing Library 9.1.0 (release notes).
Blocked Play Store reports PurchaseNotAllowedError. When the Play Store app is blocked by the system (for example in OEM kids modes), the SDK now reports PurchasesErrorCode.PurchaseNotAllowedError instead of PurchasesErrorCode.StoreProblemError. If you branch on the error code to decide what to show the user, update that logic. Purchases.canMakePayments keeps returning false on these devices.
Your own IAP code. The SDK exposes Play Billing Library as an api dependency, so version 9.1.0 is on your compile classpath even if you never declared it. If you do declare it, it must be 9.0.0 or later. Play Billing Library 9 removed SkuDetails, SkuDetailsParams, SkuDetailsResponseListener, BillingClient.SkuType, QueryPurchaseHistoryParams and BillingFlowParams.Builder.setSkuDetails. Migrate any remaining uses to ProductDetails, QueryProductDetailsParams and BillingClient.ProductType.
Jetpack Compose (RevenueCatUI)
RevenueCatUI now depends on Compose BOM 2026.06.01 and exports it as a platform constraint, so your own Compose dependencies resolve to at least that BOM's versions.
Hybrid SDKs
The hybrid SDKs inherit these requirements:
- React Native (v11 migration guide): React Native 0.80.0 or newer (Expo SDK 54 or newer). A Kotlin version override must be 2.1.0 or newer.
- Flutter (v11 migration guide): set the
org.jetbrains.kotlin.androidversion inandroid/settings.gradleto 2.1.0 or newer. On Flutter versions before 3.27, setcompileSdk = 35explicitly. - Capacitor (v14 migration guide): Capacitor 8 projects already meet both requirements.
- Cordova (v9 migration guide): cordova-android 13 or newer. On 13, set the
android-compileSdkVersionpreference to 35. Apps that enableGradlePluginKotlinEnabledneedGradlePluginKotlinVersion2.1.0 or newer. - Unity (v10 migration guide): set the Target API Level to 35 or higher.
- Kotlin Multiplatform (4.0.0 migration guide): set
compileSdkto 35 or higher (36 withpurchases-kmp-either).
Reporting undocumented issues
Feel free to file an issue.