Skip to content

Releases: RevenueCat/purchases-flutter

9.2.0

07 Aug 07:53
Compare
Choose a tag to compare

RevenueCat SDK

✨ New Features

  • Support setAttributes/setEmail/setDisplayName/setPhoneNumber in Flutter Web (#1413) via Toni Rico (@tonidero)

📦 Dependency Updates

🔄 Other Changes

9.1.0

24 Jul 15:37
Compare
Choose a tag to compare

RevenueCat SDK

✨ New Features

📦 Dependency Updates

9.0.1

24 Jul 08:27
Compare
Choose a tag to compare

RevenueCat SDK

📦 Dependency Updates

🔄 Other Changes

  • Bump nokogiri from 1.18.8 to 1.18.9 (#1414) via dependabot[bot] (@dependabot[bot])
  • Fix wrong SDK version on web for analytics (#1411) via Toni Rico (@tonidero)

9.0.0

18 Jul 15:09
93bf84f
Compare
Choose a tag to compare

RevenueCat SDK

💥 Breaking Changes

  • Play Billing Library 8 update

Warning

If you don't have any login system in your app, please make sure your one-time purchase products have been correctly configured in the RevenueCat dashboard as either consumable or non-consumable. If they're incorrectly configured as consumables, RevenueCat will consume these purchases. This means that users won't be able to restore them from version 9.0.0 onward.
Non-consumables are products that are meant to be bought only once, for example, lifetime subscriptions.

This release updates the SDK to use Google Play Billing Library 8. This version of the Billing Library removed APIs to query for expired subscriptions and consumed one-time products, aside from other improvements. You can check the full list of changes here: https://developer.android.com/google/play/billing/release-notes#8-0-0

No expired subscriptions or consumed one-time products

Play Billing Library 8 removed the ability to query for expired subscriptions and consumed one-time products. This means that the RevenueCat SDK will no longer be able to send purchase information from these purchases. There are 2 cases where this can have an impact:

  • If you have consumed one time purchases in Google Play that need to be restored (for example, in order to grant a lifetime entitlement). In these cases, the SDK will not be able to find these purchases and will not be able to restore them and grant the entitlements. This can especially be a problem if you're using anonymous ids and don't have your own account system. Please make sure your products are correctly configured as non-consumables in the RevenueCat dashboard to avoid consuming them in the first place if you intend to make them behave as lifetime purchases.
  • (Only relevant if you recently integrated RevenueCat before upgrading to v9, and do not (yet) have all your transactions imported). The SDK will not be able to send purchase information from these expired subscriptions and consumed one time purchases to our backend, so we might miss this data in our customer profile/targeting. We can still ingest historical data from these purchases through a backend historical import. See docs. This case doesn't affect developers that have all transactions in RevenueCat, which is true for the vast majority.

Using the SDK with your own IAP code (previously Observer Mode)

Using the SDK with your own IAP code is still supported in v9. Other than updating the SDK version, there are no changes required. Just make sure the version of the Play Billing Library is also version 8.0.0+.

  • Increased min Flutter SDK to 3.22.0 and Dart min SDK to 3.4.0

  • Remove freezed in favor of manually parsed models (#1368) via Toni Rico (@tonidero)

    • This removed some APIs like toJson, StoreTransaction.revenueCatIdentifier
    • This also modified our APIs to use WebPurchaseRedemptionResult. Now you will need to do:
WebPurchaseRedemptionResult result;
switch (result) {
  case WebPurchaseRedemptionSuccess(:final customerInfo):
    // Handle successful redemption
    break;
  case WebPurchaseRedemptionError(:final error):
    // Handle error in redemption
    break;
  case WebPurchaseRedemptionPurchaseBelongsToOtherUser():
    // Handle case where the purchase belongs to another user
    break;
  case WebPurchaseRedemptionInvalidToken():
    // Handle case where the token is invalid
    break;
  case WebPurchaseRedemptionExpired(:final obfuscatedEmail):
    // Handle case where the redemption link has expired
    break;
};
  • Change result of purchase methods to PurchaseResult (#1408) via Toni Rico (@tonidero)
    • The result of the purchase methods is now a PurchaseResult object instead of a CustomerInfo object. The PurchaseResult object contains a CustomerInfo object updated with the latest customer information after the purchase is made, and the StoreTransaction object created by the purchase.

New features

  • Flutter Web (#1407) via Toni Rico (@tonidero)
    • Now, the SDK supports Flutter Web! This means you can create an app that works on iOS, Android, and Web with the same codebase. The web support makes use of RevenueCat's Web Billing engine, so please report any issues you find.

List of changes

📦 Dependency Updates

  • [RENOVATE] Update build-dependencies to v8.11.1 (#1402) via RevenueCat Git Bot (@RCGitBot)

🔄 Other Changes

  • Bump fastlane from 2.227.2 to 2.228.0 (#1360) via dependabot[bot] (@dependabot[bot])
  • Bump fastlane-plugin-revenuecat_internal from 05ef095 to 7d97553 (#1381) via dependabot[bot] (@dependabot[bot])

8.10.6

10 Jul 10:25
Compare
Choose a tag to compare

RevenueCat SDK

📦 Dependency Updates

🔄 Other Changes

  • Bump danger from 9.5.1 to 9.5.3 (#1393) via dependabot[bot] (@dependabot[bot])

8.10.5

03 Jul 08:17
Compare
Choose a tag to compare

RevenueCat SDK

📦 Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 14.0.2 (#1389) via RevenueCat Git Bot (@RCGitBot)
  • [RENOVATE] Update build-dependencies (#1383) via RevenueCat Git Bot (@RCGitBot)

🔄 Other Changes

8.10.4

26 Jun 09:19
Compare
Choose a tag to compare

RevenueCat SDK

📦 Dependency Updates

🔄 Other Changes

9.0.0-beta.3

19 Jun 14:44
Compare
Choose a tag to compare
9.0.0-beta.3 Pre-release
Pre-release

RevenueCat SDK

💥 Breaking Changes

  • Increased min Flutter SDK to 3.22.0 and Dart min SDK to 3.4.0
  • Remove freezed in favor of manually parsed models (#1368) via Toni Rico (@tonidero)
    • This removed some APIs like toJson, StoreTransaction.revenueCatIdentifier
    • This also modified our APIs to use WebPurchaseRedemptionResult. Now you will need to do:
WebPurchaseRedemptionResult result;
switch (result) {
  case WebPurchaseRedemptionSuccess(:final customerInfo):
    // Handle successful redemption
    break;
  case WebPurchaseRedemptionError(:final error):
    // Handle error in redemption
    break;
  case WebPurchaseRedemptionPurchaseBelongsToOtherUser():
    // Handle case where the purchase belongs to another user
    break;
  case WebPurchaseRedemptionInvalidToken():
    // Handle case where the token is invalid
    break;
  case WebPurchaseRedemptionExpired(:final obfuscatedEmail):
    // Handle case where the redemption link has expired
    break;
};

New Features

In order to use Flutter Web, you need to create a new Web Billing project (See docs), then configure the SDK with the provided API key, in the form of rcb_xxx or rcb_sb_xxx.

Web functionality is currently limited. Supported functionality includes:

  • Configuration
  • Login/logout
  • Fetching Offerings
  • Fetching CustomerInfo
  • Purchasing Packages

Currently unsupported functionality includes:

  • Setting attributes
  • Product operations (get products/purchase products).
  • Restoring purchases (Purchases can be restored using Web Billing's built-in mechanisms)

Please check this out and contact us with any feedback!

8.10.3

18 Jun 18:11
Compare
Choose a tag to compare

RevenueCat SDK

📦 Dependency Updates

🔄 Other Changes

8.10.2

11 Jun 21:01
Compare
Choose a tag to compare

RevenueCat SDK

📦 Dependency Updates