Skip to content

Latest commit

 

History

History
1682 lines (1340 loc) · 85.4 KB

CHANGELOG.md

File metadata and controls

1682 lines (1340 loc) · 85.4 KB

8.3.0

RevenueCat SDK

📦 Dependency Updates

Win-back Offers

✨ New Features

  • Support Fetching and Redeeming Win-Back Offers on Custom Paywall #1134 (#1218) via Will Taylor (@fire-at-will)

8.2.2

RevenueCat SDK

📦 Dependency Updates

8.2.1

RevenueCat SDK

📦 Dependency Updates

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

8.2.0

RevenueCat SDK

📦 Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 13.7.0 (#1196) via RevenueCat Git Bot (@RCGitBot)
  • Bump cocoapods from 1.15.2 to 1.16.0 (#1195) via dependabot[bot] (@dependabot[bot])
  • Bump danger from 9.5.0 to 9.5.1 (#1190) via dependabot[bot] (@dependabot[bot])
  • Bump fastlane from 2.224.0 to 2.225.0 (#1189) via dependabot[bot] (@dependabot[bot])

Win-back Offers

✨ New Features

  • Support displaying deferred win-back StoreKit messages (#1194) via Will Taylor (@fire-at-will)

8.1.6

RevenueCat SDK

📦 Dependency Updates

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

8.1.5

RevenueCat SDK

📦 Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 13.5.0 (#1180) via RevenueCat Git Bot (@RCGitBot)
  • Bump fastlane from 2.223.1 to 2.224.0 (#1178) via dependabot[bot] (@dependabot[bot])

RevenueCatUI SDK

🐞 Bugfixes

  • Fix double callbacks issue in PaywallView (RevenueCat/purchases-ios#4333)
  • Fix area insets in PaywallView (#1179) via Cesar de la Vega (@vegaro)

8.1.4

RevenueCat SDK

📦 Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 13.4.0 (#1174) via RevenueCat Git Bot (@RCGitBot)
  • Bump fastlane from 2.222.0 to 2.223.1 (#1173) via dependabot[bot] (@dependabot[bot])

🔄 Other Changes

  • Update fastlane plugin (#1176) via Toni Rico (@tonidero)

8.1.3

RevenueCat SDK

📦 Dependency Updates

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

8.1.2

RevenueCat SDK

📦 Dependency Updates

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

🔄 Other Changes

  • Bump fastlane-plugin-revenuecat_internal from 5140dbc to 55a0455 (#1165) via Cesar de la Vega (@vegaro)
  • Update allowSharingAppStoreAccount Deprecation Message (#1163) via Will Taylor (@fire-at-will)

8.1.1

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 13.2.0 (#1157) via RevenueCat Git Bot (@RCGitBot)
  • Bump rexml from 3.3.4 to 3.3.6 (#1151) via dependabot[bot] (@dependabot[bot])

Other Changes

  • Update fastlane-plugin-revenuecat_internal (#1158) via Cesar de la Vega (@vegaro)

8.1.0

Dependency Updates

Other Changes

  • Fix purchases-ui-flutter main SDK version substitution (#1147) via Toni Rico (@tonidero)

8.0.0

Breaking Changes

  • 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.

Bugfixes

  • Refine StoreKitVersion logging in configure function (#1143) via Will Taylor (@fire-at-will)

Other Changes

  • v7-MIGRATION.md typo fix (#1144) via Will Taylor (@fire-at-will)

7.0.2

Bugfixes

  • Parse recordPurchase response (#1138) via Will Taylor (@fire-at-will)

Dependency Updates

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

Other Changes

  • Update iOS deployment target in readme (#1137) via Will Taylor (@fire-at-will)

7.0.1

Other Changes

  • Update fastlane-plugin-revenuecat_internal (#1133) via Mark Villacampa (@MarkVillacampa)
  • update purchases_flutter dependency to 7.0.0 on purchases_ui_flutter (#1132) via Mark Villacampa (@MarkVillacampa)

7.0.0

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.

Migration Guides

New Minimum OS Versions

This release raises the minumum required OS versions to the following:

  • iOS 13.0
  • tvOS 13.0
  • watchOS 6.2
  • macOS 10.15
  • Android: SDK 21 (Android 5.0)

In-App Purchase Key Required for StoreKit 2

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 storeKitVersion

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

Observer Mode is now PurchasesAreCompletedBy

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

⚠️ Observing Purchases Completed by Your App on macOS

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

Observing Purchases Completed by Your App with StoreKit 1

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

Dependency Updates

  • Bump danger from 9.4.3 to 9.5.0 (#1128) via dependabot[bot] (@dependabot[bot])
  • Bump fastlane from 2.221.1 to 2.222.0 (#1126) via dependabot[bot] (@dependabot[bot])

Other Changes

  • [PurchaseTester] Refactor upsell screen to display all offerings (#1123) via Toni Rico (@tonidero)

6.30.2

Bugfixes

  • Fix syncObserverModeAmazonPurchase deprecation warning (#1115) via Toni Rico (@tonidero)

6.30.1

Bugfixes

  • Add OptIn annotation on paywalls code (#1112) via Cesar de la Vega (@vegaro)

6.30.0

New Features

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 11.0.0 (#1106) via RevenueCat Git Bot (@RCGitBot)
  • Bump fastlane from 2.220.0 to 2.221.1 (#1102) via dependabot[bot] (@dependabot[bot])

Other Changes

  • Adds .aiexclude (#1104) via JayShortway (@JayShortway)
  • get_phc_version now also checks PHC UI versions (#1100) via JayShortway (@JayShortway)
  • Removes api key from integration test (#1098) via JayShortway (@JayShortway)

6.29.4

Dependency Updates

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

6.29.3

Dependency Updates

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

6.29.2

Bugfixes

  • Fix purchaseDiscountedPackage (#1080) via Toni Rico (@tonidero)

Dependency Updates

  • Bump rexml from 3.2.6 to 3.2.8 (#1076) via dependabot[bot] (@dependabot[bot])

6.29.1

Bugfixes

  • [EXTERNAL] fix: call presentPaywallIfNeeded when needed (#1066) by @danjocha (#1069) via Cesar de la Vega (@vegaro)

Dependency Updates

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

Other Changes

  • Remove SafeArea in sample in paywall.dart (#1063) via Cesar de la Vega (@vegaro)
  • Migration to applying Gradle plugins with the declarative plugins block in sample (#1062) via Cesar de la Vega (@vegaro)

6.29.0

Bugfixes

  • Crash on Amazon paywalls after purchasing (#1053) via Cesar de la Vega (@vegaro)

Dependency Updates

Other Changes

  • Add trigger_bump lane (#1058) via Cesar de la Vega (@vegaro)

6.28.0

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 10.5.0 (#1051) via RevenueCat Git Bot (@RCGitBot)
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 10.4.2 (#1048) via RevenueCat Git Bot (@RCGitBot)

6.27.0

Bugfixes

  • Fix touches passing through paywall when using presentPaywall methods (#1044) via Toni Rico (@tonidero)
  • Remove macos platform support in purchases_ui_flutter (#1041) via Cesar de la Vega (@vegaro)

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 10.4.1 and adds externalStore to Store enum (#1043) via RevenueCat Git Bot (@RCGitBot)

6.26.0

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 10.4.0 (#1037) via RevenueCat Git Bot (@RCGitBot)
  • Bump fastlane from 2.219.0 to 2.220.0 (#1035) via dependabot[bot] (@dependabot[bot])

6.25.0

Dependency Updates

6.24.0

New Features

  • Add onDismiss handler and displayCloseButton to PaywallView and PaywallFooterView (#1009) via Toni Rico (@tonidero)
  • Add PaywallFooterView listeners (#1012) via Toni Rico (@tonidero)
  • Add PaywallView listeners (#995) via Cesar de la Vega (@vegaro)

Bugfixes

  • Fix footer sizing issues in iOS (#1018) via Toni Rico (@tonidero)

Dependency Updates

Other Changes

  • Add 5.8.2 to changelog (#1011) via Cesar de la Vega (@vegaro)
  • Add dependency_overrides to purchases_flutter_ui (#1007) via Cesar de la Vega (@vegaro)

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.2

Dependency Updates

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

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

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

  • New method for automatic collecting of attribution tokens on iOS and macOS using AdServices - Purchases.enableAdServicesAttributionTokenCollection() (RevenueCat/purchases-ios#1727)

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 (#344) New type: ReadyForPromotedProductPurchaseListener New methods: addReadyForPromotedProductPurchaseListener(ReadyForPromotedProductPurchaseListener listener) removeReadyForPromotedProductPurchaseListener(ReadyForPromotedProductPurchaseListener listenerToRemove)

3.9.5

  • Add instructions for how to install Amazon Store version in README (#330)

3.9.4

  • Add back IntroductoryPrice fields that were accidentally removed without a major release (#319)
  • Fields added back: IntroductoryPrice.introPricePeriodUnit IntroductoryPrice.introPrice IntroductoryPrice.introPriceString IntroductoryPrice.introPriceCycles IntroductoryPrice.introPricePeriodNumberOfUnits

3.9.3

  • Fix missing IntroductoryPrice export (#310)

3.9.2

  • Fix purchasePackage, purchaseProduct, purchaseDiscountedPackage and purchaseDiscountedProduct crashes due to a wrong type.
  • Added missing freezed files. #301
  • CI fail if missing freezed files #302

3.9.1

  • Fixed a crash in getOfferings on Android for products that don't have intro pricing #294
  • Update Freezed dependency to 1.1.0, updated freezed-annotation and other dependencies #297

3.9.0

  • Updated Android to compile with SDK 30 #285
  • Removed all references to JCenter (More on the JCenter Shutdown) #285
  • Updated JSON serialization using Freezed #270
  • Breaking changes (these were unintended and fixed in 3.9.4): IntroductoryPrice.introPricePeriodUnit -> IntroductoryPrice.periodUnit (+ changed from string to PeriodUnit enum type) IntroductoryPrice.introPrice -> IntroductoryPrice.price IntroductoryPrice.introPriceString -> IntroductoryPrice.priceString IntroductoryPrice.introPriceCycles -> IntroductoryPrice.cycles IntroductoryPrice.introPricePeriodNumberOfUnits -> IntroductoryPrice.periodNumberOfUnits

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

  • Removed call to Purchases.getSharedInstance().close(); in onDetachedFromEngine. This should fix an incompatibility with workmanager Flutter plugin that was causing the BillingClient to get disconnected after a task would finish.
  • Added a new close() function to be called in Android whenever the resources used by Purchases should be released. #268 #257
  • Bumppurchases-hybrid-common to 1.9.3 Changelog here
  • Bump purchases-ios to 3.12.8 3.12.8 Changelog here 3.12.7 Changelog here

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

  • Fixed more deprecation warnings for types used for compatibility with Flutter apps using Flutter < 1.12. #235

3.4.2

  • Fixed deprecation warnings for types used for compatibility with Flutter apps using Flutter < 1.12. #232
  • Bumped purchases-hybrid-common to 1.8.2. Changelog here #233

3.4.1

  • Fixed a bug where the wrong error code would be returned when mapping to JSON in Android.
  • Bumped purchases-hybrid-common to 1.8.1. Changelog here #225

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

  • deprecates createAlias in favor of logIn.
  • deprecates identify in favor of logIn.
  • deprecates reset in favor of logOut.
  • deprecates setAllowSharingStoreAccount in favor of dashboard-side configuration. #180

Other

3.3.1

  • Update MacOS dependency on PurchasesHybridCommon to 1.7.1 (#209)

3.3.0

  • Bump gradle to 4.0.1 (#195)
  • Add canMakePayments method (#193)
  • Bump purchases-hybrid-common to 1.7.1 Changelog here
  • Update PR template (#199)

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

  • Added link to examples in GitHub #185

3.2.0

  • Added new Magic Weather sample app, available in revenuecat_examples/MagicWeather #170

3.1.1

  • Fixed an issue that would cause an error saying type 'Null' is not a subtype of type 'String' in type cast in allExpirationDates when null-safety is enabled. #177
  • Bumped purchases-hybrid-common to 1.6.2 Changelog here
  • Bumped purchases-ios to 3.10.7 Changelog here
  • Bumped purchases-android to 4.0.5 Changelog here #171

3.1.0

  • iOS:
    • Added a new method setSimulatesAskToBuyInSandbox, that allows developers to test deferred purchases easily.
  • Bumped purchases-hybrid-common to 1.6.1 Changelog here
  • Bumped purchases-ios to 3.10.6 Changelog here
  • Bumped purchases-android to 4.0.4 Changelog here #171

3.0.2

  • Fixes versions number in plugin files #166

3.0.1

  • Fixes exception when calling getProducts and checkTrialOrIntroductoryPriceEligibility #163 #164

3.0.0

  • Adds null safety support and increases minimum Dart SDK version to 2.12.0 #155 #161
  • Removes all analyzer warnings. #154

2.0.3

  • Fixed build issue on macOS targets #151

2.0.2

  • Updated pubspec.yaml #147

2.0.1

  • Updated pubspec.yaml #143

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

  • Explicitly added Purchases framework to podspec's linker flags so it gets correctly linked in the plugin pod. Fixed mapping of xcconfig files in Runner example. #128

1.4.2

  • Moved from valid architectures to excluded architectures in the Podfile, following Flutter's example. #127

1.4.1

1.4.0

1.3.1

  • Build config updates to fix build issues on iOS:
    • Added DEFINES_MODULE build setting for cocoapods projects
    • added swift version
    • made framework compile statically
    • replaced #import with @import #100
    • bumped iOS version to 3.7.2
    • bumped purchases-hybrid-common version to 1.4.3

1.3.0

  • Attribution V2:
    • Deprecated addAttribution in favor of setAdjustId, setAppsflyerId, setFBAnonymousId, setMparticleId.
    • Added support for OneSignal via setOnesignalId
    • Added setMediaSource, setCampaign, setAdGroup, setAd, setKeyword, setCreative, and collectDeviceIdentifiers RevenueCat/purchases-android#184
  • Bumped purchases-hybrid-common to 1.4.2 Changelog here
  • Bumped purchases-ios to 3.7.1 Changelog here
  • Bumped purchases-android to 3.5.0 Changelog here

1.2.1

  • Fix a NullPointerException in the Android plugin (#83)
  • Made some clarifications on the docs for the type parameter in getProducts and purchaseProduct (#81)

1.2.0

  • Bumped iOS to 3.4.0 Changelog here
  • Bumped Android to 3.2.0 Changelog here
  • Upgrade Flutter Android APIs (#74)
  • Adds userDefaultsSuiteName as an option when setting up the SDK (#70)
  • Added managementURL to PurchaserInfo (#67)
  • Added originalPurchaseDate to PurchaserInfo (#66)
  • Added setProxyURL (#63)
  • Exposes setFinishTransactions (#45)
  • Adds missing error codes (#64)
  • Adds new headers for platformFlavor and platformFlavorVersion (#57, #46)

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

  • Dynamically access context and activity from registrar (#11)

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