Conversation
Bumps the billing client from 8.0.0 to 9.1.0 and RevenueCat (test app) to 10.14.1. Billing 9 removes the SkuDetails APIs, so this drops the deprecated SuperwallBillingFlowParams.Builder.setSkuDetails and the unused internal SWProduct wrapper, and switches buildQueryPurchaseHistoryParams over to QueryPurchasesParams. See https://developer.android.com/google/play/billing/migrate-gpblv9
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Add custom store products, new purchase controller method
Update Google Play Billing Library to 9.1.0
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
2.8.0
Enhancements
PurchaseController, bypassing Google Play Billing entirely — checkproduct.isCustomProductto fulfill them via your own payment flow, and grant their entitlements withSuperwall.instance.setSubscriptionStatus(...)on success. Requires configuring the SDK with aPurchaseController.PurchaseController.purchase(activity, product: StoreProduct, basePlanId, offerId)method that handles both Google Play and custom store products. For Play products, the underlyingProductDetailsare available viaproduct.rawStoreProduct.transaction_start/transaction_complete,subscriptionStart/freeTrialStart) with an SDK-generated transaction identifier exposed asStoreProduct.customTransactionId, and free-trial eligibility for custom products is derived from the customer's entitlement history.TestStoreProducttoApiStoreProduct, now shared between test mode and custom store products.Breaking Changes
SuperwallBillingFlowParams.Builder.setSkuDetails(SkuDetails). Billing Library 9 removesSkuDetailsentirely, so this method can no longer exist. UsesetProductDetailsParamsList(...)withProductDetailsinstead.com.superwall.sdk.billing.SWProduct, which wrapped the now-removedSkuDetails.QueryPurchasesParams— Billing Library 9 removes the purchase-history APIs (queryPurchaseHistoryAsync,QueryPurchaseHistoryParams).SkuDetails,SkuDetailsParams,querySkuDetailsAsync,queryPurchaseHistoryAsync,BillingClient.SkuType, or the no-argenablePendingPurchases()), it will no longer compile once it picks up Billing 9 through this SDK. Migrate those call sites to theProductDetailsAPIs before upgrading; the migration guide has a mapping of every removed API to its replacement.Google Play Billing Library 9 requires Android 6.0 (API 23), so the SDK's
minSdkis now 23 (previously 21). If your app'sminSdkis below 23, you'll need to raise it to pick up this release — devices on Android 5.x will no longer receive app updates that include this SDK version.Deprecations
PurchaseController.purchase(activity, productDetails, basePlanId, offerId)in favor of theStoreProduct-based method above. Existing implementations keep working unchanged — the new method's default implementation routes Google Play purchases to the deprecated one — but purchasing custom store products requires implementing the new method.