Skip to content

Commit 567c713

Browse files
Add BC8 migration guide (#1045)
* add bc8 migration guide * feedback Co-authored-by: Will Taylor <[email protected]> --------- Co-authored-by: Will Taylor <[email protected]>
1 parent ae280d5 commit 567c713

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
title: Android Native - 8.x to 9.x Migration
3+
slug: android-native-8x-to-9x-migration
4+
hidden: false
5+
---
6+
7+
## RevenueCat SDK
8+
9+
:::warning
10+
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 customers won't be able to restore them from version 9.0.0 onward.
11+
12+
Non-consumables are products that are meant to be bought only once, for example, lifetime subscriptions.
13+
:::
14+
15+
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).
16+
17+
Additionally, we've also updated Kotlin to 2.0.21 and our new minimum version is Kotlin 1.8.0+. If you were using an older version of Kotlin, you will need to update it.
18+
19+
Regarding API changes, we've also removed data classes from our public APIs. This means that for classes that were previously data classes, the `copy` function and `componentN` functions (destructuring declarations) have been removed. `equals` and `hashCode` functions still work as before.
20+
21+
### Play Billing Library 8: No expired subscriptions or consumed one-time products
22+
23+
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:
24+
25+
- 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.
26+
- (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](https://www.revenuecat.com/docs/migrating-to-revenuecat/migrating-existing-subscriptions). This case doesn't affect developers that have all transactions in RevenueCat, which is true for the vast majority.
27+
28+
### Bumped minimum Kotlin version
29+
30+
RevenueCat SDK v9 bumps Kotlin to 2.0.21, with a minimum Kotlin version of 1.8.0.
31+
32+
### Using the SDK with your own IAP code (previously Observer Mode)
33+
34+
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+.

sidebars.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -636,6 +636,7 @@ const sdkMigrationCategory = Category({
636636
Page({ slug: "android-native-5x-to-6x-migration" }),
637637
Page({ slug: "android-native-6x-to-7x-migration" }),
638638
Page({ slug: "android-native-7x-to-8x-migration" }),
639+
Page({ slug: "android-native-8x-to-9x-migration" }),
639640
],
640641
index: {
641642
title: "Android Migration Guides",

0 commit comments

Comments
 (0)