Releases: RevenueCat/purchases-flutter
9.2.0
RevenueCat SDK
✨ New Features
- Support
setAttributes/setEmail/setDisplayName/setPhoneNumber
in Flutter Web (#1413) via Toni Rico (@tonidero)
📦 Dependency Updates
- [AUTOMATIC BUMP] Updates purchases-hybrid-common to 16.2.0 (#1426) via RevenueCat Git Bot (@RCGitBot)
- [RENOVATE] Update build-dependencies to v8.12.0 (#1424) via RevenueCat Git Bot (@RCGitBot)
- [AUTOMATIC BUMP] Updates purchases-hybrid-common to 16.1.0 (#1421) via RevenueCat Git Bot (@RCGitBot)
🔄 Other Changes
9.1.0
RevenueCat SDK
✨ New Features
- [iOS + Android] Virtual Currency Support (#1416) via Will Taylor (@fire-at-will)
📦 Dependency Updates
9.0.1
RevenueCat SDK
📦 Dependency Updates
- [AUTOMATIC BUMP] Updates purchases-hybrid-common to 16.0.1 (#1415) via RevenueCat Git Bot (@RCGitBot)
- [AUTOMATIC BUMP] Updates purchases-hybrid-common to 16.0.0 (#1410) via RevenueCat Git Bot (@RCGitBot)
🔄 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
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:
- This removed some APIs like
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 aCustomerInfo
object. ThePurchaseResult
object contains aCustomerInfo
object updated with the latest customer information after the purchase is made, and theStoreTransaction
object created by the purchase.
- The result of the purchase methods is now a
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
- [AUTOMATIC BUMP] Updates purchases-hybrid-common to 15.0.0 (#1406) via RevenueCat Git Bot (@RCGitBot)
- Flutter Web + Remove freezed dependency (#1407) via Toni Rico (@tonidero)
📦 Dependency Updates
🔄 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
to7d97553
(#1381) via dependabot[bot] (@dependabot[bot])
8.10.6
RevenueCat SDK
📦 Dependency Updates
- [AUTOMATIC BUMP] Updates purchases-hybrid-common to 14.2.0 (#1400) via RevenueCat Git Bot (@RCGitBot)
- [AUTOMATIC BUMP] Updates purchases-hybrid-common to 14.1.0 (#1396) via RevenueCat Git Bot (@RCGitBot)
- [RENOVATE] Update dependency gradle to v8.14.3 (#1394) via RevenueCat Git Bot (@RCGitBot)
🔄 Other Changes
- Bump danger from 9.5.1 to 9.5.3 (#1393) via dependabot[bot] (@dependabot[bot])
8.10.5
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
- Update workflows/issue-notifications.yml@v2 (#1387) via Josh Holtz (@joshdholtz)
- Add GitHub Issue Action Ack (#1385) via Josh Holtz (@joshdholtz)
8.10.4
9.0.0-beta.3
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:
- This removed some APIs like
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!