purchases_flutter 7.0.0-beta.1 copy "purchases_flutter: ^7.0.0-beta.1" to clipboard
purchases_flutter: ^7.0.0-beta.1 copied to clipboard

Flutter in-app purchases and subscriptions made easy. The plugin supports iOS, macOS and Android.

7.0.0-beta.1 #

We have opened a channel in our Discord server for participants in the Beta to ask questions and give feedback: https://discord.gg/wXEfBGem5n.

iOS Updates #

StoreKit 2 #

Version 7.0 of the RevenueCat SDK enables full StoreKit 2 flow on the SDK and the RevenueCat backend by default.

We have been testing StoreKit 2 support in parallel to StoreKit 1 in our backend for a while and we believe it is ready for widespread use.

Here's some of the benefits you get with StoreKit 2:

  • Better handling of a few specific edge cases which were unfixable with StoreKit 1:
  • No more "Missing receipt" errors in Sandbox that could result in failure restoring purchases or getting trial eligibility status "unknown".
  • No more "The purchased product was missing in the receipt" error that could cause an invalid receipt error when making a purchase.
  • Future proofing: StoreKit 1 APIs are being progressively deprecated by Apple, and new features are being added to StoreKit 2.

In order to use StoreKit 2, you will need to configure your In-App Purchase Key in the RevenueCat dashboard.

The previously deprecated configuration option usesStoreKit2IfAvailable has been removed. Remove it from your configuration option to continue using StoreKit 2.

The SDK will automatically use StoreKit 1 where StoreKit 2 is not supported, in iOS 14 and earlier.

If for any reason you need to always use StoreKit 1, it is possible to switch back using the following configuration API:

await Purchases.configure(
    PurchasesConfiguration('api_key')
    ..storeKitVersion = StoreKitVersion.storeKit1,
);

3rd Party Analytics SDKs #

If you are using any 3rd party analytics SDKs to automatically track in-app purchases, you need to be aware most of them do not completely support logging purchases made with StoreKit 2. This is the case for some popular SDKs like Facebook, Mixpanel, OneSignal, Segment or Firebase. For these services, we recommend you use our data integrations.

If you're using the Firebase SDK, you'll need to follow these instructions to log purchases made with StoreKit 2.

Observer Mode #

Version 7.0 of the SDK introduces support for observer mode when making purchases with StoreKit 2. You can enable it when configuring the SDK:

await Purchases.configure(
    PurchasesConfiguration('api_key')
    ..storeKitVersion = StoreKitVersion.storeKit2,
    ..observerMode = true,
);

Additionally, because of the way in which StoreKit 2 operates, you must manually handle newly purchased transactions by calling Purchases.handleObserverModeTransaction(). Subscription updates will be automatically tracked.

# Your existing code to purchase a product with ID "product_id"
await purchaseProduct("product_id")

# Inform the SDK about the new purchase
await Purchases.handleObserverModeTransaction("product_id");

If you're using observer mode with StoreKit 1, you will need to explicitly configure the SDK to use StoreKit 1:

await Purchases.configure(
    PurchasesConfiguration('api_key')
    ..storeKitVersion = StoreKitVersion.storeKit1,
    ..observerMode = true,
);

Original Application Version #

If you're converting a paid app to in-app subscriptions, and want to provide existing customers with certain features, we recommend using the "original app version" field in customer info.

Because of a limitation of StoreKit 2, this field is not available. If this is a requirement for you, we recommend switching back to StoreKit 1.

Deployment Target #

The minimum target has been raised to iOS 13.0 and macOS 10.15.

Other Changes #

  • Update to PHC 10.0 via Mark Villacampa (@MarkVillacampa)

6.23.0 #

New Features #

  • PaywallFooterView support (#996) via Toni Rico (@tonidero)

RevenueCatUI #

  • PaywallView support (#954) via Cesar de la Vega (@vegaro)

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 9.9.0 (#1003) via RevenueCat Git Bot (@RCGitBot)

Other Changes #

  • Change iOS platform version of purchase_tester (#1001) via Cesar de la Vega (@vegaro)

6.22.0 #

Bugfixes #

  • Make CustomerInfo allPurchaseDates values nullable (#989) via Toni Rico (@tonidero)

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 9.8.0 (#990) via RevenueCat Git Bot (@RCGitBot)

6.21.1 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 9.7.2 (#984) via RevenueCat Git Bot (@RCGitBot)

Other Changes #

  • Fix ios integration tests (#985) via Toni Rico (@tonidero)

6.21.0 #

Dependency Updates #

Other Changes #

  • Update CHANGELOG to include 5.8.1 release notes (#973) via Toni Rico (@tonidero)

6.20.0 #

New Features #

  • [EXTERNAL] Adds productPlanIdentifier parameter to EntitlementInfo (#910) via @splangi (#960) via Cesar de la Vega (@vegaro)

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 9.6.0 (#971) via RevenueCat Git Bot (@RCGitBot)
  • Bump danger from 9.4.2 to 9.4.3 (#967) via dependabot[bot] (@dependabot[bot])
  • Bump cocoapods from 1.15.0 to 1.15.1 (#970) via dependabot[bot] (@dependabot[bot])
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 9.4.0 (#961) via RevenueCat Git Bot (@RCGitBot)

Other Changes #

  • Fix freezed tests after latest freezed update (#969) via Toni Rico (@tonidero)

6.19.0 #

Dependency Updates #

6.18.0 #

RevenueCatUI #

  • Paywalls: displayCloseButton parameter (#948) via NachoSoto (@NachoSoto)
  • Paywalls: added Offering parameter to presentPaywall methods (#947) via NachoSoto (@NachoSoto)

Dependency Updates #

Other Changes #

  • Refactor and cleanup of purchase_tester (#950) via Cesar de la Vega (@vegaro)

6.17.0 #

RevenueCatUI #

  • Paywalls: separate PurchasesHybridCommonUI (#943) via NachoSoto (@NachoSoto)

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 8.12.0 (#944) via RevenueCat Git Bot (@RCGitBot)

6.16.1 #

Dependency Updates #

  • Updates purchases-hybrid-common to 8.11.1 (#940) via RevenueCat Git Bot (@RCGitBot)

6.16.0 #

Dependency Updates #

6.15.0 #

New features #

  • 📱 Initial support for cross-platform RevenueCat Paywalls 🐾 🧱 (#931)

Instructions:

  • For Android, you need to change your 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.
  • Add purchases-ui-flutter in your pubspec.yaml:
dependencies:
  purchases_ui_flutter: 6.15.0

Usage:

import 'package:purchases_ui_flutter/purchases_ui_flutter.dart';

await RevenueCatUI.presentPaywallIfNeeded("pro");

Limitations:

  • Currently only full screen paywalls are supported
  • There is no way to detect paywall events other than using addCustomerInfoUpdateListener

6.6.0 #

Dependency Updates #

Other Changes #

  • Fix freezed tests after latest update (#899) via Toni Rico (@tonidero)

6.5.1 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 8.1.1 (#892) via RevenueCat Git Bot (@RCGitBot)
  • Bump danger from 9.4.0 to 9.4.1 (#889) via dependabot[bot] (@dependabot[bot])

6.5.0 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 8.1.0 (#890) via RevenueCat Git Bot (@RCGitBot)
  • Bump cocoapods from 1.14.2 to 1.14.3 (#876) via dependabot[bot] (@dependabot[bot])

6.4.0 #

New Features #

  • Trusted Entitlements: add support for setting EntitlementVerificationMode and getting verification result in EntitlementInfos and EntitlementInfo (#753) via NachoSoto (@NachoSoto)

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 8.0.0 (#878) via RevenueCat Git Bot (@RCGitBot)
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 7.4.0 (#871) via RevenueCat Git Bot (@RCGitBot)
  • Bump fastlane from 2.216.0 to 2.217.0 (#865) via dependabot[bot] (@dependabot[bot])
  • Bump danger from 9.3.2 to 9.4.0 (#866) via dependabot[bot] (@dependabot[bot])

Other Changes #

  • Fix flutter analyze deprecation warnings (#872) via Toni Rico (@tonidero)
  • CI: disable prepare-next-version (#869) via NachoSoto (@NachoSoto)

6.3.0 #

Dependency Updates #

Other Changes #

  • Purchase Tester: remove unused Activity (#860) via NachoSoto (@NachoSoto)
  • Remove .common_version (#861) via NachoSoto (@NachoSoto)
  • Add 3.10.1 to VERSIONS (#858) via NachoSoto (@NachoSoto)
  • Remove unused GoogleProrationMode import (#848) via Toni Rico (@tonidero)

6.2.0 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 7.2.0 (#844) via RevenueCat Git Bot (@RCGitBot)
  • Bump cocoapods from 1.13.0 to 1.14.2 (#843) via dependabot[bot] (@dependabot[bot])
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 7.1.1 (#840) via RevenueCat Git Bot (@RCGitBot)

6.1.0 #

Dependency Updates #

6.0.0 #

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.

Bumped minimum Android SDK version #

RevenueCat SDK v7 bumps minimum Android SDK version from Android 4.0 (API level 16) to Android 4.4 (API level 19).

Support for InApp Messages #

We've added new APIs to support InApp messages both in Android and iOS. You can read more about:

  • Google Play InApp Messages which will show users a snackbar message during grace period and account hold once per day and provide them an opportunity to fix their payment without leaving the app.
  • App Store InApp messages which will show a modal during grace period once per subscription.

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);

Dependency Updates #

5.8.1 #

Dependency Updates #

5.8.0 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 6.3.0 (#823) via RevenueCat Git Bot (@RCGitBot)

Other Changes #

  • Fix freezed tests (#824) via Toni Rico (@tonidero)

5.7.0 #

Dependency Updates #

5.6.5 #

Dependency Updates #

5.6.4 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 6.1.0 (#797) via RevenueCat Git Bot (@RCGitBot)
  • Bump activesupport from 7.0.4.3 to 7.0.7.2 (#791) via dependabot[bot] (@dependabot[bot])

5.6.3 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 5.6.4 (#793) via RevenueCat Git Bot (@RCGitBot)

5.6.2 #

Dependency Updates #

5.6.1 #

Dependency Updates #

5.6.0 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 5.6.0 (#778) via RevenueCat Git Bot (@RCGitBot)

5.5.0 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 5.5.0 (#774) via RevenueCat Git Bot (@RCGitBot)

Other Changes #

  • [CI] Optionally run firebase tests only on non-main, non-release branches (#772) via Mark Villacampa (@MarkVillacampa)

5.4.0 #

Dependency Updates #

5.3.0 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 5.3.0 (#759) via RevenueCat Git Bot (@RCGitBot)

Other Changes #

  • Update freezed generated classes after freezed update (#760) via Toni Rico (@tonidero)

5.2.3 #

Bugfixes #

  • Adds package back to AndroidManifest.xml (#749) via Cesar de la Vega (@vegaro)

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 5.2.4 (#750) via RevenueCat Git Bot (@RCGitBot)

5.2.2 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 5.2.3 (#744) via RevenueCat Git Bot (@RCGitBot)

5.2.1 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 5.2.2 (#740) via RevenueCat Git Bot (@RCGitBot)

5.2.0 #

Dependency Updates #

Other Changes #

  • Fix flutter static analysis in pub.dev (#726) via Toni Rico (@tonidero)

5.1.0 #

Dependency Updates #

Other Changes #

  • [EXTERNAL] v5-MIGRATION.md: replace defaultOffer w/ defaultOption (#728) (#729) via Toni Rico (@tonidero)
  • Fix purchase tester reconfiguring the SDK (#722) via Toni Rico (@tonidero)

5.0.0 #

RevenueCat Purchases Flutter v5 is here!! 😻

This latest release updates the Android SDK dependency from v5 to v6 to use BillingClient 5. This version of BillingClient brings an entire new subscription model which has resulted in large changes across the entire SDK.

Migration Guides #

  • 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 in V6. This guide includes tips on product setup with the new model.

New SubscriptionOption concept #

Purchasing

In v4, a Google Play Android Package or StoreProduct represented a single purchaseable entity, and free trials or intro offers would automatically be applied to the purchase if the user was eligible.

Now, in Flutter v5, an Google Play Android Package or StoreProduct represents a duration of a subscription and contains all the ways to purchase that duration -- any offers and its base plan. Each of these purchase options are SubscriptionOptions. When passing a Package to purchasePackage() or StoreProduct to purchaseStoreProduct(), the SDK will use the following logic to choose which SubscriptionOption to purchase:

  • Filters out offers with "rc-ignore-offer" tag
  • Uses SubscriptionOption with the longest free trial or cheapest first phase
    • Only offers the user is eligible will be applied
  • Falls back to base plan

For more control, purchase subscription options with the new purchaseSubscriptionOption() method.

Models

StoreProduct now has a few new properties use for Google Play Android:

  • defaultOption
    • A subscription option that will automatically be applie when purchasing a Package or StoreProduct
  • subscriptionOptions
    • A list of subscription options (could be null)

Observer Mode #

Observer mode is still supported in v5. Other than updating the SDK version, there are no changes required.

Offline Entitlements #

✨ With this new feature, even if our main and backup servers are down, the SDK can continue to process purchases. This is enabled transparently to the user, and when the servers come back online, the SDK automatically syncs the information so it can be visible in the dashboard.

Offering Metadata #

✨ Metadata allows attaching arbitrary information as key/value pairs to your Offering to control how to display your products inside your app. The metadata you configure in an Offering is available from the RevenueCat SDK. For example, you could use it to remotely configure strings on your paywall, or even URLs of images shown on the paywall.

See the metadata documentation for more info!

4.13.0 #

Bugfixes #

  • Fix deprecation warning (#694) via Andy Boedo (@aboedo)

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.18.0 (#709) via RevenueCat Git Bot (@RCGitBot)
  • Increases upper limit and removes minimum flutter version (#702) via Cesar de la Vega (@vegaro)
  • Bump fastlane from 2.212.2 to 2.213.0 (#696) via dependabot[bot] (@dependabot[bot])

Other Changes #

  • Fix analyzer issues (#706) via Mark Villacampa (@MarkVillacampa)
  • Fix integration tests (#703) via Mark Villacampa (@MarkVillacampa)
  • Support Gradle 8+ (#698) via Cesar de la Vega (@vegaro)
  • Fix issues when running Flutter 3.10.2 (#699) via Cesar de la Vega (@vegaro)

4.12.0 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.15.0 (#680) via RevenueCat Git Bot (@RCGitBot)
  • Bump cocoapods from 1.12.0 to 1.12.1 (#672) via dependabot[bot] (@dependabot[bot])
  • Bump danger from 9.2.0 to 9.3.0 (#678) via dependabot[bot] (@dependabot[bot])

4.11.3 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.14.3 (#674) via RevenueCat Git Bot (@RCGitBot)
  • Bump fastlane from 2.212.1 to 2.212.2 (#670) via dependabot[bot] (@dependabot[bot])
  • Bump activesupport from 7.0.4.2 to 7.0.4.3 (#644) via dependabot[bot] (@dependabot[bot])

Other Changes #

  • Update fastlane-plugin-revenuecat version (#669) via Cesar de la Vega (@vegaro)

4.11.2 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.14.2 (#661) via RevenueCat Git Bot (@RCGitBot)

4.11.1 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.14.1 (#645) via RevenueCat Git Bot (@RCGitBot)

4.11.0 #

New Features #

  • add immediateAndChargeFullPrice proration mode (#639) via Andy Boedo (@aboedo)

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.14.0 (#640) via RevenueCat Git Bot (@RCGitBot)

Other Changes #

  • Deprecate revenueCatId in favor of transactionIdentifier (#612) via Toni Rico (@tonidero)

4.10.4 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.13.5 (#631) via RevenueCat Git Bot (@RCGitBot)
  • Bump cocoapods from 1.11.3 to 1.12.0 (#628) via dependabot[bot] (@dependabot[bot])

Other Changes #

  • Deprecate usesStoreKit2IfAvailable (#632) via Andy Boedo (@aboedo)

4.10.3 #

Dependency Updates #

  • Bump fastlane from 2.212.0 to 2.212.1 (#627) via dependabot[bot] (@dependabot[bot])
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.13.4 (#626) via RevenueCat Git Bot (@RCGitBot)

4.10.2 #

Bugfixes #

  • Fixes NullPointerException at setUpdatedCustomerInfoListener (#621) via Cesar de la Vega (@vegaro)

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.13.3 (#619) via RevenueCat Git Bot (@RCGitBot)

4.10.1 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.13.2 (#617) via RevenueCat Git Bot (@RCGitBot)
  • Bump fastlane from 2.211.0 to 2.212.0 (#615) via dependabot[bot] (@dependabot[bot])

4.10.0 #

New Features #

  • Add syncObserverModeAmazonPurchase (#609) via Cesar de la Vega (@vegaro)

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.13.1 (#611) via RevenueCat Git Bot (@RCGitBot)

Other Changes #

  • fix(example): fix LogLevel debug enum (#610) via Majid Hajian (@mhadaily)

4.9.1 #

Bugfixes #

  • Sends PurchasesCustomerInfoUpdatedEvent and PurchasesReadyForPromotedProductPurchaseEvent on UiThread (#600) via Cesar de la Vega (@vegaro)

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.12.1 (#603) via RevenueCat Git Bot (@RCGitBot)

4.9.0 #

New Features #

  • Added Purchases.setLogHandler (#591) via Cesar de la Vega (@vegaro)
  • Added Purchases.setLogLevel (#589) via NachoSoto (@NachoSoto)

Bugfixes #

  • Fix error code parsing from native layer (#585) via Toni Rico (@tonidero)

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.12.0 (#597) via RevenueCat Git Bot (@RCGitBot)
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.11.0 (#595) via RevenueCat Git Bot (@RCGitBot)

Other Changes #

  • Adds dependabot (#599) via Cesar de la Vega (@vegaro)
  • Update danger, fastlane and fastlane plugin (#598) via Cesar de la Vega (@vegaro)
  • Add tests for sending customer info upon adding listener (#580) via Toni Rico (@tonidero)
  • DEVELOPMENT.md: added section on how to run tests (#590) via NachoSoto (@NachoSoto)

4.8.0 #

New Features #

  • Change default usesStoreKit2IfAvailable to false (#587) via Cesar de la Vega (@vegaro)
  • Adds StoreProduct.susbcriptionPeriod (#579) via Cesar de la Vega (@vegaro)
  • Send customer info to first listener added (#576) via Toni Rico (@tonidero)
  • Add beginRefundRequest APIs for iOS 15+ (#577) via Toni Rico (@tonidero)

Bugfixes #

  • Fix integration tests (#584) via Cesar de la Vega (@vegaro)
  • Fix macOS compilation (#582) via Cesar de la Vega (@vegaro)

Dependency Updates #

4.7.0 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.8.0 (#572) via RevenueCat Git Bot (@RCGitBot)

Other Changes #

  • Update Gemfile.lock (#573) via Cesar de la Vega (@vegaro)
  • Remove web support from description in pub.dev (#574) via Andy Boedo (@aboedo)

4.6.0 #

Dependency Updates #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.7.0 (#566) via RevenueCat Git Bot (@RCGitBot)
    • (iOS 4.16.0)[https://github.com/RevenueCat/purchases-ios/releases/tag/4.16.0]

Other Changes #

  • Adds missing params for better changelogs when bumping (#569) via Cesar de la Vega (@vegaro)
  • Update Gemfile.lock (#568) via Cesar de la Vega (@vegaro)
  • remove stalebot in favor of SLAs in Zendesk (#563) via Andy Boedo (@aboedo)
  • Update fastlane-plugin-revenuecat_internal to latest version (#561) via Cesar de la Vega (@vegaro)

4.5.5 #

Other Changes #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.5.4 (#558) via RevenueCat Git Bot (@RCGitBot)

4.5.4 #

Other Changes #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.5.3 (#553) via RevenueCat Git Bot (@RCGitBot)

4.5.3 #

Other Changes #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.5.2 (#550) via RevenueCat Git Bot (@RCGitBot)

4.5.2 #

Bugfixes #

  • Fix for java.lang.IllegalAccessError: Interface androidx.lifecycle.c (#547) via Cesar de la Vega (@vegaro)

4.5.1 #

Other Changes #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.5.1 (#544) via RevenueCat Git Bot (@RCGitBot)
  • Update ReadMe.md (#524) via kmurphy-rc (@kmurphy-rc)

4.5.0 #

Other Changes #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.5.0 (#539) via RevenueCat Git Bot (@RCGitBot)

4.4.3 #

Other Changes #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.4.4 (#534) via RevenueCat Git Bot (@RCGitBot)

4.4.2 #

Other Changes #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.4.3 (#532) via RevenueCat Git Bot (@RCGitBot)

4.4.1 #

Other Changes #

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.4.1 (#528) via RevenueCat Git Bot (@RCGitBot)
  • Update Fastlane plugin (#525) via Cesar de la Vega (@vegaro)

4.4.0 #

New Features #

  • Add setCleverTapId, setMixpanelDistinctID, setFirebaseAppInstanceId (#522) via Sergio Durban Belmonte (@sdurban)

Other Changes #

  • [AUTOMATIC] Updates purchases-hybrid-common to 4.4.0 (#523) via RevenueCat Git Bot (@RCGitBot)
  • Makes hold job depend on integration tests (#521) via Cesar de la Vega (@vegaro)

4.3.2 #

Other Changes #

  • Update fastlane-plugin-revenuecat_internal (#518) via Cesar de la Vega (@vegaro)
  • [AUTOMATIC] Updates purchases-hybrid-common to 4.3.6 (#517) via RevenueCat Git Bot (@RCGitBot)

4.3.1 #

Other Changes #

  • [AUTOMATIC] Updates purchases-hybrid-common to 4.3.2 (#502) via RevenueCat Git Bot (@RCGitBot)
  • Ignore Podfile.lock files (#503) via Cesar de la Vega (@vegaro)
  • Update update-hybrid-common-versions parameters (#495) via Cesar de la Vega (@vegaro)

4.3.0 #

Other Changes #

  • Another fix on update_hybrid_common (#491) via Cesar de la Vega (@vegaro)
  • Fix dirty repository when upgrading phc version (#483) via Cesar de la Vega (@vegaro)
  • [AUTOMATIC] Updates purchases-hybrid-common from 4.2.2 to 4.3.1 (#490) via Cesar de la Vega (@vegaro)
  • Run flutter pub get before pod install when upgrading phc (#481) via Cesar de la Vega (@vegaro)
  • Calls correct lane when automatically upgrading phc (#478) via Cesar de la Vega (@vegaro)

4.2.2 #

Other Changes #

  • [AUTOMATIC] Updates purchases-hybrid-common to 4.2.2 (#476) via RevenueCat Git Bot (@RCGitBot)
  • Creates update-hybrid-common-versions and updated manual bump (#473) via Cesar de la Vega (@vegaro)
  • Adds lane to update purchases-hybrid-common (#468) via Cesar de la Vega (@vegaro)
  • Remove wrong link from Changelog (#464) via Cesar de la Vega (@vegaro)
  • Move to SNAPSHOT version on every commit to main if needed (#466) via Toni Rico (@tonidero)
  • add SDK reference docs link (#461) via Andy Boedo (@aboedo)

4.2.1 #

Fixes #

Other Changes #

  • Updated purchases-hybrid-common to 4.2.1
  • Skip release if needed and change type of message (#460) via Cesar de la Vega (@vegaro)
  • Update fastlane-plugin-revenuecat_internal (#456) via Cesar de la Vega (@vegaro)
  • Update RELEASING docs (#458) via Cesar de la Vega (@vegaro)
  • Add next_version and automatic_release to automatic_bump (#457) via Cesar de la Vega (@vegaro)
  • Release train (#454) via Cesar de la Vega (@vegaro)
  • Configures Danger (#452) via Cesar de la Vega (@vegaro)

4.2.0 #

Fixes #

  • Fixed crash when cancelling purchases (#403) via NachoSoto (@NachoSoto)

Other Changes #

  • Updated purchases-ios to 4.10.2
  • Re-enabled SK2 as the default on iOS
  • PurchasesFlutterPlugin: silenced unused warning (#444) via NachoSoto (@NachoSoto)
  • README: removed Amazon note since it's now supported. (#442) via NachoSoto (@NachoSoto)
  • Update fastlane plugin (#440) via Toni Rico (@tonidero)

4.1.2 #

Fixes #

  • Bump compileSdkVersion to version 31 (#436) via Toni Rico (@tonidero)

4.1.1 #

Fixes #

  • Fix for no-op calls on Android (enableAdServicesAttributionTokenCollection) (#434) via Josh Holtz (@joshdholtz)

Other Changes #

  • Setup credentials in prepare_next_version job (#430) via Toni Rico (@tonidero)

4.1.0 #

New features #

Other Changes #

  • Updating Hybrid Common to 4.1.0 (#424)

4.0.1 #

Bumped dependencies #

  • Kotlin to 1.6.21
  • purchases-hybrid-common to 4.0.2
  • purchases-ios to 4.9.1
  • purchases-android to 5.4.1

In addition to all the changes included in the latest major release 4.0.0!

4.0.0 #

RevenueCat Flutter SDK v4 is here!!

Dancing cats

Full Changelog

⚠️ ⚠️ Important ⚠️ ⚠️ Observer mode for Amazon is not supported yet.

Features #

Amazon Appstore Support

We have introduced support for using the Amazon Appstore. We have extensively tested this, and there are some apps using our pre-release Amazon versions in production.

However, we have found some inconsistencies in the way Amazon Appstore prices are reported. We are actively working on patching these inconsistencies.

Please help us help you by reporting any issues you find. New RevenueCat Issue.

You can enable Amazon Appstore support by configuring the SDK using the new RevenueCatAPIKeyAmazon field.

For more information around configuration please take a look at the Amazon Appstore section in our docs. The official Amazon In-App Purchasing docs also contain very valuable information, especially around testing and best practices.

StoreKit 2 support

This version of the SDK automatically uses StoreKit 2 APIs under the hood only for APIs that the RevenueCat team has determined work better than StoreKit 1.

New types and cleaned up naming

New types that wrap native types from Apple, Google and Amazon, and we cleaned up the naming of other types and methods for a more consistent experience.

Deprecated APIs #

3.x 4.0.0
Purchases.setup Purchases.configure

Removed APIs #

3.x 4.0.0
IntroductoryPrice.periodUnit (String) IntroductoryPrice.periodUnit (PeriodUnit)
IntroductoryPrice.introPrice IntroductoryPrice.price
IntroductoryPrice.introPriceString IntroductoryPrice.priceString
IntroductoryPrice.introPricePeriod IntroductoryPrice.period
IntroductoryPrice.introPricePeriodNumberOfUnits IntroductoryPrice.periodNumberOfUnits
IntroductoryPrice.introPriceCycles IntroductoryPrice.cycles
Purchases.addAttributionData Set<NetworkID>
Purchases.identify Purchases.logIn
Purchases.createAlias Purchases.logIn
Purchases.reset Purchases.logOut
PurchasesAttributionNetwork Set<NetworkID>

Renamed APIs #

3.x 4.0.0
PurchaserInfo CustomerInfo
Transaction StoreTransaction
Product StoreProduct
Discount StoreProductDiscount
PaymentDiscount PromotionalOffer
Package.product Package.storeProduct
Purchases.PurchaserInfoUpdateListener Purchases.CustomerInfoUpdateListener
Purchases.removePurchaserInfoUpdateListener Purchases.removeCustomerInfoUpdateListener
Purchases.restoreTransactions Purchases.restorePurchases
Purchases.getPurchaseInfo Purchases.getCustomerInfo
Purchases.invalidatePurchaserInfoCache Purchases.invalidateCustomerInfoCache
Purchases.getPaymentDiscount Purchases.getPromotionalOffer

Moved classes #

  • Store enum has been moved from entitlement_info_wrapper.dart to store.dart

4.0.0-rc.2 #

4.0.0-rc.1 #

⚠️ ⚠️ Important ⚠️ ⚠️ Observer mode for Amazon is not supported yet.

Features #

Amazon Appstore Support

We have introduced support for using the Amazon Appstore. We have extensively tested this, and there are some apps using our pre-release Amazon versions in production.

However, we have found some inconsistencies in the way Amazon Appstore prices are reported. We are actively working on patching these inconsistencies.

Please help us help you by reporting any issues you find. New RevenueCat Issue.

You can enable Amazon Appstore support by configuring the SDK using the new RevenueCatAPIKeyAmazon field.

For more information around configuration please take a look at the Amazon Appstore section in our docs. The official Amazon In-App Purchasing docs also contain very valuable information, especially around testing and best practices.

StoreKit 2 support

This version of the SDK automatically uses StoreKit 2 APIs under the hood only for APIs that the RevenueCat team has determined work better than StoreKit 1.

New types and cleaned up naming

New types that wrap native types from Apple, Google and Amazon, and we cleaned up the naming of other types and methods for a more consistent experience.

Deprecated APIs #

3.x 4.0.0
Purchases.setup Purchases.configure

Removed APIs #

3.x 4.0.0
IntroductoryPrice.periodUnit (String) IntroductoryPrice.periodUnit (PeriodUnit)
IntroductoryPrice.introPrice IntroductoryPrice.price
IntroductoryPrice.introPriceString IntroductoryPrice.priceString
IntroductoryPrice.introPricePeriod IntroductoryPrice.period
IntroductoryPrice.introPricePeriodNumberOfUnits IntroductoryPrice.periodNumberOfUnits
IntroductoryPrice.introPriceCycles IntroductoryPrice.cycles
Purchases.addAttributionData Set<NetworkID>
Purchases.identify Purchases.logIn
Purchases.createAlias Purchases.logIn
Purchases.reset Purchases.logOut
PurchasesAttributionNetwork Set<NetworkID>

Renamed APIs #

3.x 4.0.0
PurchaserInfo CustomerInfo
Transaction StoreTransaction
Product StoreProduct
Discount StoreProductDiscount
PaymentDiscount PromotionalOffer
Package.product Package.storeProduct
Purchases.PurchaserInfoUpdateListener Purchases.CustomerInfoUpdateListener
Purchases.removePurchaserInfoUpdateListener Purchases.removeCustomerInfoUpdateListener
Purchases.restoreTransactions Purchases.restorePurchases
Purchases.getPurchaseInfo Purchases.getCustomerInfo
Purchases.invalidatePurchaserInfoCache Purchases.invalidateCustomerInfoCache
Purchases.getPaymentDiscount Purchases.getPromotionalOffer

Moved classes #

  • Store enum has been moved from entitlement_info_wrapper.dart to store.dart

4.0.0-rc.1 #

⚠️ ⚠️ Important ⚠️ ⚠️ Observer mode for Amazon is not supported yet.

Features #

Amazon Appstore Support

We have introduced support for using the Amazon Appstore. We have extensively tested this, and there are some apps using our pre-release Amazon versions in production.

However, we have found some inconsistencies in the way Amazon Appstore prices are reported. We are actively working on patching these inconsistencies.

Please help us help you by reporting any issues you find. New RevenueCat Issue.

You can enable Amazon Appstore support by configuring the SDK using the new RevenueCatAPIKeyAmazon field.

For more information around configuration please take a look at the Amazon Appstore section in our docs. The official Amazon In-App Purchasing docs also contain very valuable information, especially around testing and best practices.

StoreKit 2 support

This version of the SDK automatically uses StoreKit 2 APIs under the hood only for APIs that the RevenueCat team has determined work better than StoreKit 1.

New types and cleaned up naming

New types that wrap native types from Apple, Google and Amazon, and we cleaned up the naming of other types and methods for a more consistent experience.

Deprecated APIs #

3.x 4.0.0
Purchases.setup Purchases.configure

Removed APIs #

3.x 4.0.0
IntroductoryPrice.periodUnit (String) IntroductoryPrice.periodUnit (PeriodUnit)
IntroductoryPrice.introPrice IntroductoryPrice.price
IntroductoryPrice.introPriceString IntroductoryPrice.priceString
IntroductoryPrice.introPricePeriod IntroductoryPrice.period
IntroductoryPrice.introPricePeriodNumberOfUnits IntroductoryPrice.periodNumberOfUnits
IntroductoryPrice.introPriceCycles IntroductoryPrice.cycles
Purchases.addAttributionData Set<NetworkID>
Purchases.identify Purchases.logIn
Purchases.createAlias Purchases.logIn
Purchases.reset Purchases.logOut
PurchasesAttributionNetwork Set<NetworkID>

Renamed APIs #

3.x 4.0.0
PurchaserInfo CustomerInfo
Transaction StoreTransaction
Product StoreProduct
Discount StoreProductDiscount
PaymentDiscount PromotionalOffer
Package.product Package.storeProduct
Purchases.PurchaserInfoUpdateListener Purchases.CustomerInfoUpdateListener
Purchases.removePurchaserInfoUpdateListener Purchases.removeCustomerInfoUpdateListener
Purchases.restoreTransactions Purchases.restorePurchases
Purchases.getPurchaseInfo Purchases.getCustomerInfo
Purchases.invalidatePurchaserInfoCache Purchases.invalidateCustomerInfoCache
Purchases.getPaymentDiscount Purchases.getPromotionalOffer

Moved classes #

  • Store enum has been moved from entitlement_info_wrapper.dart to store.dart

4.0.0-beta.1 #

⚠️⚠️ This is a pre-release version. ⚠️⚠️

  • purchaserInfo renamed to customerInfo
  • Renamed StoreProduct, StoreTransaction and StoreProductDiscount. package.product to package.storeProduct
  • Store enum has been moved into store.dart
  • setup changed with configure

Known issues: Amazon support currently doesn't work correctly in the Live App Testing and production environments. The purchase modal will not show correctly for Amazon in these environments.

3.10.0 #

  • Add support for iOS promoted purchases (https://github.com/RevenueCat/purchases-flutter/pull/344) New type: ReadyForPromotedProductPurchaseListener New methods: addReadyForPromotedProductPurchaseListener(ReadyForPromotedProductPurchaseListener listener) removeReadyForPromotedProductPurchaseListener(ReadyForPromotedProductPurchaseListener listenerToRemove)

3.9.5 #

3.9.4 #

  • Add back IntroductoryPrice fields that were accidentally removed without a major release (https://github.com/RevenueCat/purchases-flutter/pull/319)
  • Fields added back: IntroductoryPrice.introPricePeriodUnit IntroductoryPrice.introPrice IntroductoryPrice.introPriceString IntroductoryPrice.introPriceCycles IntroductoryPrice.introPricePeriodNumberOfUnits

3.9.3 #

3.9.2 #

3.9.1 #

3.9.0 #

3.8.0 #

3.7.0 #

  • Bumppurchases-hybrid-common to 1.11.0 Changelog here Add ownershipType to EntitlementInfo

3.6.0 #

3.5.0 #

3.4.6 #

3.4.5 #

3.4.4 #

  • Buggy release - meant to update purchases-hybrid-common to 1.9.1 (and therefore purchases-android to 4.3.1), but didn't end up actually pulling it in...fixed in 3.4.5

3.4.3 #

3.4.2 #

3.4.1 #

3.4.0 #

Identity V3: #

In this version, we’ve redesigned the way that user identification works. Detailed docs about the new system are available here.

New methods

  • Introduces logIn, a new way of identifying users, which also returns whether a new user has been registered in the system. logIn uses a new backend endpoint.
  • Introduces logOut, a replacement for reset.

Deprecations

Other

3.3.1 #

3.3.0 #

3.2.2 #

  • Bumped purchases-hybrid-common to 1.6.3 to fix issues with overlapping Foundation extensions names in iOS Changelog here

3.2.1 #

3.2.0 #

3.1.1 #

3.1.0 #

3.0.2 #

3.0.1 #

3.0.0 #

2.0.3 #

2.0.2 #

2.0.1 #

2.0.0 #

  • removes deprecated getEntitlements, replaced by getOfferings

  • removes deprecated makePurchase, replaced by purchaseProduct

  • iOS:

    • added new method, syncPurchases, that enables syncing the purchases in the local receipt with the backend without risking a password prompt. The method was already available on Android.
    • added a new method, presentCodeRedemptionSheet, for offer codes redemption.
  • Bumped purchases-hybrid-common to 1.5.0 Changelog here

  • Bumped purchases-ios to 3.9.2 Changelog here

  • Bumped purchases-android to 4.0.1 Changelog here

1.4.3 #

1.4.2 #

1.4.1 #

1.4.0 #

1.3.1 #

  • Build config updates to fix build issues on iOS:

1.3.0 #

1.2.1 #

1.2.0 #

1.1.1 #

  • Update README.md to remove macOS support (#52)
  • Await setDebugLogsEnabled before next steps in the sample app (#38)

1.1.0 #

1.0.5 #

  • Updates README.md
  • Specifies compatible platforms

1.0.4 #

  • Fixes getOffering always returns null #19

1.0.3 #

  • Fixes crash when there's no offerings #17

1.0.2 #

  • Fixes issue with older versions of Kotlin (#15)
  • Updates README.md
  • Adds checkTrialOrIntroductoryPriceEligibility

1.0.1 #

  • Android updated to 3.0.3

1.0.0 #

  • Added PurchasesErrorHelper.getErrorCode(PlatformException) and enum of PurchasesErrorCode to make handling errors easier. (#3)
  • Support for new Offerings system.
  • Deprecates makePurchase methods. Replaces with purchasePackage
  • Deprecates getEntitlements method. Replaces with getOfferings
  • See our migration guide for more info: https://docs.revenuecat.com/v3.0/docs/offerings-migration
  • Updates to BillingClient 2.0.3. If finishTransactions is set to false (or observerMode is true when configuring the SDK), this SDK won't acknowledge any purchase.
  • Adds proration mode support on upgrades/downgrades (#14)
  • Adds requestDate and PurchaserInfo missing properties #12
  • New identity changes:
  • The .createAlias() method is no longer required, use .identify() instead
  • .identify() will create an alias if being called from an anonymous ID generated by RevenueCat
  • Added an isAnonymous property to Purchases.sharedInstance
  • Improved offline use

0.3.3 #

0.3.2 #

  • Fixes expirationDate in EntitlementInfo for iOS.

0.3.1 #

  • Fixes crash when there's a trial period and not an introductory price on Android.

0.3.0 #

  • Deprecates activeEntitlements in PurchaserInfo and adds entitlements object to PurchaserInfo. For more info check out https://docs.revenuecat.com/docs/purchaserinfo
  • Fixes exception when calling makePurchase with a bad product identifier in iOS
  • Fixes makePurchase missing the userCancelled boolean in Android
  • Fixes makePurchase not working in Android when calling with oldSkus parameter
  • Fixes trial info being lost in Android. Access introductoryPrice in the product information to get information around the trial period.

0.2.2 #

0.2.1 #

  • Makes some changes to the introductory pricing due to some inconsistencies introduced in 0.2.0. Introductory pricing is now an object part of the product.

0.2.0 #

0.1.4 #

  • Fixes UninitializedPropertyAccessException when trying to close the instance onDestroy of the Android Activity.

0.1.3 #

  • Formats files

0.1.2 #

  • Adds more docs to custom types
  • Fixes report issue link

0.1.1 #

  • Fixes userCancelled in Android
  • Adds docs

0.1.0 #

  • Initial release
642
likes
120
pub points
99%
popularity

Publisher

verified publisherrevenuecat.com

Flutter in-app purchases and subscriptions made easy. The plugin supports iOS, macOS and Android.

Homepage
Repository (GitHub)
View/report issues
Contributing

Documentation

Documentation
API reference

License

MIT (LICENSE)

Dependencies

flutter, freezed_annotation, json_annotation

More

Packages that depend on purchases_flutter