NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #498 most downloaded on pub.dev
Flutter in-app purchases and subscriptions made easy. The plugin supports iOS, macOS and Android.
Last release today
01 Oct 2026
Ships on a steady schedule
a new release about every 2 weeks
Some releases are documented
notes for 28 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
7 years old
292 releases · first in 2019
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 13.2.0 (#1157) via RevenueCat Git Bot (@RCGitBot)
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 13.1.0 (#1148) via RevenueCat Git Bot (@RCGitBot)
Remove embedding v1 support (#1141) via Toni Rico (@tonidero)
If you're using embedding v1, please check how to migrate in the official flutter docs.
Parse recordPurchase response (#1138) via Will Taylor (@fire-at-will)
Update fastlane-plugin-revenuecat_internal (#1133) via Mark Villacampa (@MarkVillacampa)
Version 7.0 of the SDK deprecates the term "Observer Mode" (and the APIs where this term was used), and replaces it with PurchasesAreCompletedBy (eith…
This latest release updates the Android SDK dependency from v7 to v8 to use BillingClient 7 and updates the iOS SDK dependency from v4 to v5 to use StoreKit 2 by default in the SDK.
This release raises the minumum required OS versions to the following:
In order to use StoreKit 2, you must configure your In-App Purchase Key in the RevenueCat dashboard. You can find instructions describing how to do this here.
usesStoreKit2IfAvailable is now storeKitVersionWhen configuring the SDK, the usesStoreKit2IfAvailable parameter has been replaced by an optional storeKitVersion: STOREKIT_VERSION parameter. It defaults to letting the iOS SDK determine the most appropriate version of StoreKit at runtime. If you'd like to use a specific version of StoreKit, you may provide a value for storeKitVersion like so:
PurchasesConfiguration configuration = PurchasesConfiguration("myAPIKey");
configuration.storeKitVersion = StoreKitVersion.storeKit1;
Purchases.configure(configuration);
Version 7.0 of the SDK deprecates the term "Observer Mode" (and the APIs where this term was used), and replaces it with PurchasesAreCompletedBy (either RevenueCat or your app). When specifying that your app will complete purchases, you must provide the StoreKit version that your app is using to make purchases on iOS. If your app is only available on Android, you may provide any value since the native Android SDK ignores this value.
You can enable it when configuring the SDK:
PurchasesConfiguration configuration = PurchasesConfiguration("myAPIKey");
configuration.purchasesAreCompletedBy = PurchasesAreCompletedByMyApp(
storeKitVersion: StoreKitVersion.storeKit2,
);
Purchases.configure(configuration);
By default, when purchases are completed by your app using StoreKit 2 on macOS, the SDK does not detect a user's purchase until after the user foregrounds the app after the purchase has been made. If you'd like RevenueCat to immediately detect the user's purchase, call Purchases.recordPurchase(productID) for any new purchases, like so:
await Purchases.recordPurchase(productID);
If purchases are completed by your app using StoreKit 1, you will need to explicitly configure the SDK to use StoreKit 1:
PurchasesConfiguration configuration = PurchasesConfiguration("myAPIKey");
configuration.purchasesAreCompletedBy = PurchasesAreCompletedByMyApp(
storeKitVersion: StoreKitVersion.storeKit1,
);
Purchases.configure(configuration);
Full migration guide to V7: Flutter - V7 API Migration Guide
Nothing published for this version
Fix syncObserverModeAmazonPurchase deprecation warning (#1115) via Toni Rico (@tonidero)
syncObserverModeAmazonPurchase deprecation warning (#1115) via Toni Rico (@tonidero)Add OptIn annotation on paywalls code (#1112) via Cesar de la Vega (@vegaro)
OptIn annotation on paywalls code (#1112) via Cesar de la Vega (@vegaro)Add support for DEFERRED upgrades and updates purchases-hybrid-common to 11.1.0 (#1108) via RevenueCat Git Bot (@RCGitBot)
DEFERRED upgrades and updates purchases-hybrid-common to 11.1.0 (#1108) via RevenueCat Git Bot (@RCGitBot)
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 10.9.0 (#1096) via RevenueCat Git Bot (@RCGitBot)
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 10.8.0 (#1091) via RevenueCat Git Bot (@RCGitBot)
Fix purchaseDiscountedPackage (#1080) via Toni Rico (@tonidero)
purchaseDiscountedPackage (#1080) via Toni Rico (@tonidero)[EXTERNAL] fix: call presentPaywallIfNeeded when needed (#1066) by @danjocha (#1069) via Cesar de la Vega (@vegaro)
Crash on Amazon paywalls after purchasing (#1053) via Cesar de la Vega (@vegaro)
trigger_bump lane (#1058) via Cesar de la Vega (@vegaro)[AUTOMATIC BUMP] Updates purchases-hybrid-common to 10.5.0 (#1051) via RevenueCat Git Bot (@RCGitBot)
Fix touches passing through paywall when using presentPaywall methods (#1044) via Toni Rico (@tonidero)
externalStore to Store enum (#1043) via RevenueCat Git Bot (@RCGitBot)
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 10.4.0 (#1037) via RevenueCat Git Bot (@RCGitBot)
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 10.3.2 (#1031) via RevenueCat Git Bot (@RCGitBot)
Add onDismiss handler and displayCloseButton to PaywallView and PaywallFooterView (#1009) via Toni Rico (@tonidero)
onDismiss handler and displayCloseButton to PaywallView and PaywallFooterView (#1009) via Toni Rico (@tonidero)PaywallFooterView listeners (#1012) via Toni Rico (@tonidero)PaywallView listeners (#995) via Cesar de la Vega (@vegaro)PaywallFooterView support (#996) via Toni Rico (@tonidero)
PaywallFooterView support (#996) via Toni Rico (@tonidero)Make CustomerInfo allPurchaseDates values nullable (#989) via Toni Rico (@tonidero)
CustomerInfo allPurchaseDates values nullable (#989) via Toni Rico (@tonidero)[AUTOMATIC BUMP] Updates purchases-hybrid-common to 9.7.2 (#984) via RevenueCat Git Bot (@RCGitBot)
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 9.7.1 (#978) via RevenueCat Git Bot (@RCGitBot)
[EXTERNAL] Adds productPlanIdentifier parameter to EntitlementInfo (#910) via @splangi (#960) via Cesar de la Vega (@vegaro)
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 9.3.0 (#958) via RevenueCat Git Bot (@RCGitBot)
Paywalls: displayCloseButton parameter (#948) via NachoSoto (@NachoSoto)
Paywalls: displayCloseButton parameter (#948) via NachoSoto (@NachoSoto)Paywalls: added Offering parameter to presentPaywall methods (#947) via NachoSoto (@NachoSoto)Paywalls: separate PurchasesHybridCommonUI (#943) via NachoSoto (@NachoSoto)
Paywalls: separate PurchasesHybridCommonUI (#943) via NachoSoto (@NachoSoto)Updates purchases-hybrid-common to 8.11.1 (#940) via RevenueCat Git Bot (@RCGitBot)
Updates purchases-hybrid-common to 8.11.0 (#937) via RevenueCat Git Bot (@RCGitBot)
📱 Initial support for cross-platform RevenueCat Paywalls 🐾 🧱
MainActivity to subclass FlutterFragmentActivity instead of FlutterActivity. Also, the min sdk version of the new package is 24. Please make sure your app's android/build.gradle minSdkVersion has that or a higher version.purchases-ui-flutter in your pubspec.yaml:dependencies:
purchases_ui_flutter: 6.15.0
import 'package:purchases_ui_flutter/purchases_ui_flutter.dart';
await RevenueCatUI.presentPaywallIfNeeded("pro");
addCustomerInfoUpdateListenerNothing published for this version
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 8.2.1 (#912) via RevenueCat Git Bot (@RCGitBot)
Nothing published for this version
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 8.1.1 (#892) via RevenueCat Git Bot (@RCGitBot)
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 8.1.0 (#890) via RevenueCat Git Bot (@RCGitBot)
Fix flutter analyze deprecation warnings (#872) via Toni Rico (@tonidero)
Trusted Entitlements: add support for setting EntitlementVerificationMode and getting verification result in EntitlementInfos and EntitlementInfo (#753) via NachoSoto (@NachoSoto)CI: disable prepare-next-version (#869) via NachoSoto (@NachoSoto)[AUTOMATIC BUMP] Updates purchases-hybrid-common to 7.3.3 (#864) via RevenueCat Git Bot (@RCGitBot)
Purchase Tester: remove unused Activity (#860) via NachoSoto (@NachoSoto).common_version (#861) via NachoSoto (@NachoSoto)3.10.1 to VERSIONS (#858) via NachoSoto (@NachoSoto)Nothing published for this version
Nothing published for this version
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 7.2.0 (#844) via RevenueCat Git Bot (@RCGitBot)
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 7.1.0 (#835) via RevenueCat Git Bot (@RCGitBot)
RevenueCat Flutter SDK v6 is here!! 😻
RevenueCat Flutter SDK v6 is here!! 😻
This latest release updates the SDK to use BillingClient 6 in Android. This version of BillingClient brings little change compared with BillingClient 5 which brought an entire new subscription model which resulted in large changes across the entire SDK.
The only modification at the API level involves replacing "ProrationMode" with "ReplacementMode". The specific replacement modes remain unchanged.
If your app doesn't currently use DEFERRED replacement modes, then you should be safe to upgrade to this version without changes in behavior.
If your app supports product changes using DEFERRED replacement mode, then you can either stick with the previous major version until support for DEFERRED is re-introduced in this major version, or you can remove DEFERRED replacement options from your app.
If you are using the SDK in observer mode, you should only use v6 in Android if you're using BillingClient 6.
See the Android Native - 6.x to 7.x Migration for more details.
If you come from an older version of the RevenueCat SDK, see Android Native - 5.x to 6.x Migration for a more thorough explanation of the new Google subscription model announced with BillingClient 5 and how to take advantage of it.
RevenueCat SDK v7 bumps minimum Android SDK version from Android 4.0 (API level 16) to Android 4.4 (API level 19).
We've added new APIs to support InApp messages both in Android and iOS. You can read more about:
InApp Messages are shown by default in both platforms. If you want to disable this behaviour during configuration of the RevenueCat SDK, setup the shouldShowInAppMessagesAutomatically property during configuration to false:
PurchasesConfiguration configuration = PurchasesConfiguration("api_key");
configuration.shouldShowInAppMessagesAutomatically = false;
Purchases.configure(configuration);
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 6.3.2 (#1008) via RevenueCat Git Bot (@RCGitBot)
Updates purchases-hybrid-common to 6.3.1
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 6.3.0 (#823) via RevenueCat Git Bot (@RCGitBot)
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 6.2.0 (#814) via RevenueCat Git Bot (@RCGitBot)
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 6.1.2 (#802) via RevenueCat Git Bot (@RCGitBot)
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 6.1.0 (#797) via RevenueCat Git Bot (@RCGitBot)
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 5.6.4 (#793) via RevenueCat Git Bot (@RCGitBot)
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 5.6.3 (#786) via RevenueCat Git Bot (@RCGitBot)
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 5.6.1 (#782) via RevenueCat Git Bot (@RCGitBot)
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 5.6.0 (#778) via RevenueCat Git Bot (@RCGitBot)
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 5.5.0 (#774) via RevenueCat Git Bot (@RCGitBot)
[AUTOMATIC BUMP] Updates purchases-hybrid-common to 5.4.1 (#769) via RevenueCat Git Bot (@RCGitBot)
Your coding agent can read these notes before it upgrades. Set up the MCP server →