Get help with your SDK implementation.
Recently active
with expo sdk52, "react-native-purchases": "^8.5.0", pod install --repo-updateI had this error message[!] CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/9/a/d/PurchasesHybridCommon/13.15.0/PurchasesHybridCommon.podspec.json Response: Error in the HTTP2 framing layerfixed it by updating cocoapods :CocoaPods 1.16.1 is available.`sudo gem install cocoapods`Et voilà ;)
I have a question about initializing the Purchases SDK, based on the following points from the docs:If no App User ID is provided, RevenueCat will generate a random App User ID and cache it on the device. The SDK should generally be configured early in the app lifecycle.Many apps allow users to purchase subscriptions before creating an account. This reduces friction between opening the app and making a payment.But, this means that I'll need to instantiate the Purchases SDK before receiving a User ID from my authentication system. This results in the creation of an anonymous RevenueCat ID for everyone who opens the app, even if they don’t create an account or make a purchase. Assuming a typical conversion rate (e.g., 5%), this would mean that 95% of the users in my RevenueCat dashboard are likely people who opened the app once and then deleted it, which seems highly inefficient. Is there a more efficient way to handle this situation without generating so many unused anonymous users?Than
I have a paywall with weekly/monthly/annual and lifetime. Lifetime has been translated to “Durée de vie” which is obviously Google Translate / ChatGPT at work because it means “duration of life / life expectancy”, aka “life time” in a literal way. How to change the wording to “À vie” or “Achat permanent”?
I have a question regarding a RENEWAL event. Specifically, for Android, when the webhook receives a type=RENEWAL, when should we process it and consider it a real resume of subscription to where entitlements should be granted? Currently according to the documentation this RENEWAL event should only happen after a SUBSCRIPTION_PAUSED event for Android. Is this correct or can the previous event be of another type? if so, what other types should be supported.Specific example app user ID: JNhjegTrnBTZIbsYLzZkHPmroOl1Firstly, Customer History does not even show an event that happened today for RENEWAL:But as you can see from my database of logs for each webhook event I got this: Second, is this order expected? After Expiration we would get a renewal or an initial?Should we proceed with granting entitlements?
I'm using RevenueCat's fetchOfferings to retrieve subscription details for my app. While it successfully fetches the description of the subscription products I created in the Google Play Console, it does not retrieve the benefits that I added when setting them up.Here is an example of the output returned by fetchOfferings:{ "monthly_plans": [ { "offeringIdentifier": "test", "product": { "presentedOfferingIdentifier": "test", "subscriptionOptions": [ { "presentedOfferingContext": { "placementIdentifier": null, "targetingContext": null, "offeringIdentifier": "test" }, "introPhase": null, "freePhase": null, "isPrepaid": false, "presentedOfferingIdentifier": "test", "fullPricePhase": { "offerPaymentMode": null, "billingCycleCount": 0, "price": { "currencyCode": "INR", "amountMicros": 300000000, "formatted": "₹300.00" }, "recurrenceMode": 1, "billingPeriod": {
Its Possible usage an Sandbox in Flutter? Having to send it to closed testing every time takes a long time to develop
I have set up various products on play store and am able to fetch them successful via the Purchases.sharedInstance.getOfferingsWith function. Some of my products have introductory pricing and/or free trials. I have tried testing this functionality and it seems to work. The problem I am running into now is if I have a user that has made use of the free trial or intro pricing for the subscription, cancels the subscription, and then wants to resubscribe I don’t appear to have a way to tell that the user is not longer eligible for intro pricing or free trials. The only way to tell is only after the user has started to go through the play store billing flow, but I need to display the correct information about the product in my app’s UI.
I see that RC’s StoreKit 2 beta is hopefully (!) coming soon. Will this support the appAccountToken on the StoreKit transaction?
Hey everbody i got some issue. The problem is “Purchases.configure is not a function (it is undefined)] [Component Stack]”. I am using like this but this func returned how can i fix that ? I’am using expo@52
Hi team,We would like to ask for clarification on finishing transactions for consumables on iOS.RevenueCat currently finishes transactions automatically. It is left to integrators to ensure the purchase is honoured, for example through CustomerInfo.This is in direct contradiction to Apple’s guidelines, which state that the transaction should only be finished if all content has been delivered to the user first.As of this writing, and iOS SDK 5.14.4, it is our understanding that any app using RC for non-subscriptions is likely in violation of Apple guidelines.I wonder if something like a flag passed by integrators that influences the shouldFinish logic might solve this by ensuring we have provided users with the corresponding content?As a follow-up topic, with more and more apps offering a mix of renewing subscriptions, consumables, non-consumable, and non-renewing subscriptions, I second some of RC’s staff comments on the PR thread that more granular access may be provided in the futur
This issue happens when i do the following:Create an anonymous account with firebase Login with revenuecat with the newly created firebase account id Purchase a subscription Then upgrade the account from anonymous to email & afterwards logout ( I am logging out revenue cat with Pruchaseses.logOut() as well as fibrease sign out Now when trying to purchase a new anonymous account gets created and the new id is also firstly being set with Puchases.logIn(). When trying to purchase a package google play shows me an error dialog with error “PG-GEMF-01”. From the logs I can see the following: 🤖‼️ BillingWrapper purchases failed to update: DebugMessage: Account identifiers don't match the previous subscription.. ErrorCode: DEVELOPER_ERROR.null🤖‼️ PurchasesError(code=PurchaseInvalidError, underlyingErrorMessage=Error updating purchases. DebugMessage: Account identifiers don't match the previous subscription.. ErrorCode: DEVELOPER_ERROR., message='One or more of the arguments provided are
Hi All, I’m encountering this error, while attempting to test an in-app purchase in sandbox environment: 😿‼️ The receipt is not valid.API request failed: POST /v1/receipts: The receipt is not valid.I’m aware others have encountered this issue before and that the problem was on Apple’s side. Anybody else encountering the same issue now? It seems not working since last evening. Could it be a problem from my side?I’m wondering what should I do? Should I just wait? Salvo
I can’t seem to find my flaw that just happened documented (looked here). What I think I have happened in production is this flow, but data tells a slight different story.The revenue cat dashboard for the customer has this order of events:But the events that came via the webhook are in this order:These 2 don’t seem to match exactly. How do I tell what happened and if the customer should or not have entitlements at the moment?Also this means that after an EXPIRATION event, it is possible to receive a RENEWAL event for Play Store as well? The documentation seems to say that this is only for iOS and that Google will always send INITIAL_PURCHASE after an EXPIRATION happened (documented here).Should I always grant back entitlements to a user when I received a RENEWAL regardless of anything else?
How can ı. get order id in flutter for android
Recently I uploaded a new android app under different package name, from com.name.app to com.name. I have uploaded the new bundle to Play Store and changing it on RevenueCat dashboard, however when fetching the offerings using RevenueCat SDK, the old package can still get the offerings whereas the new package doesn’t. Am I missing a step here?
Hey guys,I have only one offering and one paywall, when launching the paywall on ios, it is working well and the ui matched the paywall, but on Anroid the packages and prices are fetched well but, the paywall ui is really than on only paywall I’m using this for android:implementation 'com.revenuecat.purchases:purchases:7.1.0'implementation 'com.revenuecat.purchases:purchases-ui:7.1.0' private lateinit var paywallLauncher: PaywallActivityLauncherpaywallLauncher = PaywallActivityLauncher(this, object : PaywallResultHandler {override fun onActivityResult(result: PaywallResult) { fun showPaywall() {paywallLauncher.launch()} Any help?Thanks!
Presenting paywall manually so can hide the close button. PaywallView(displayCloseButton: false)i just can’t find any documentation regarding this in the SDK. specifically its modifiers such as .onRestoreCompletedcurrently in the code block after restore I dismiss the paywall. Unfortunately the restore is successful if user made a legacy purchase. App has moved to subscription so legacy purchases need to be ignored and prevent from dismissing paywall. Only the subscription purchases should dismiss. please help me locate the documentation for .onRestoreCompleted View modifier
`[Error: There is an issue with your configuration. Check the underlying error for more details. There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used).More information: https://rev.cat/why-are-offerings-empty]`Hello Fam,I am building my first app with Expo and RevenueCat I am hitting a wall here. I have read the docs related to this issue and other posts. I have doubled check that productIds match. I am lost here. I have called Apple to see if there is something I am missing but that didn’t help. The RevenueCat team is out on an extended holiday so no help there. Thus, I am looking to you :)Is there a solution to this problem?
I list all the products I have added. After listing, I select the package I want to subscribe to. Then I need to sign in to my iCloud account. I enter my information, but I receive the following error User canceled the purchaseIt doesn't open any pop-ups. I am using Expo SDK52react-native-purchase 8.0.0I tried to on simulator. Also I didn’t see any sandbox account in my settings app store section. { "name": "routine-craft", "version": "1.0.0", "main": "expo/AppEntry.js", "scripts": { "start": "expo start", "android": "expo start --android", "ios": "expo start --ios", "web": "expo start --web" }, "dependencies": { "@amplitude/analytics-react-native": "^1.4.11", "@eva-design/eva": "^2.2.0", "@gorhom/bottom-sheet": "4.4.7", "@react-native-async-storage/async-storage": "1.23.1", "@react-native-community/datetimepicker": "8.2.0", "@react-navigation/bottom-tabs": "^6.5.11", "@react-navigation/elements": "^1.3.21", "@react-navigation/native": "^6.1.9
As far as I can see, there is no property or method to directly get the monthly price of an annual subscription in Unity.I found this thread from a month ago with the same issue, but everything discussed in there only applies for the native Android and iOS SDKs: How do we calculate this in Unity and show the currency symbol in the correct position (some countries have it before and same after the price)?
RevenueCat project setting, I keep entering my In-app purchase key configuration but it does not allow me to select “save changes” and when I come back to the same setting page, I don’t see my entry in this section persisting. Has anyone countered this?
Apple Review is getting rejected repeatedly due the following error: 🍎‼️ Error fetching offerings - The operation couldn’t be completed. (RevenueCat.OfferingsManager.Error error 0.) Underlying error: The request timed out.. This is only happening on Apple Review devices. I’ve tested in Simulator and various physical devices with different iOS versions and cannot reproduce. Here’s how I initialize RevenueCat: ...Future<void> initRevenueCat(ProviderContainer container) async { if (!Platform.isIOS) { throw UnsupportedError('Unsupported platform for revenuecat'); } if (kDebugMode) { await Purchases.setLogLevel(LogLevel.debug); } final configuration = PurchasesConfiguration(revenueCatApiKey); await Purchases.configure(configuration); Purchases.addCustomerInfoUpdateListener((_) { container.invalidate(customerInfoProvider); }); Purchases.setLogHandler(revenueCatHandler);}...Future<void> main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.
[using Flutter SDK] on iOS when I call Purchases.purchaseProduct and it throws the exception(s) PurchasesErrorCode.paymentPendingErrororPurchasesErrorCode.storeProblemErrorThe docs suggest that this is not an error and to inform the user that the purchase is pending.For some customers, they do not succeed in setting up a valid payment method at this point. I have instances where the actual purchase comes through 30+ days later (when a payment method is finally established, probably for another reason). At this point the payment is taken but the user may have uninstalled my app by then! Ideally, I would like to cancel the pending purchase in the App Store at this point and then require my users to go through the purchase flow a second time.How can I programatically cancel a pending purchase on iOS or at the very least, see this state outside of the purchaseProduct exception and report it to the user?
I put out a build using xcode16.2.. and started getting ipad users on older ios versions telling me the app crashes on startup.. I was finally able to reproduce and I get a crash when initializing rev cat crashes on this lineprivate let purchaseCompleteCallbacksByProductID: Atomic<[String: PurchaseCompletedBlock]> = .init([:]) Xcode reports:Thread 1: signal SIGABRTAn abort signal terminated the process. Such crashes often happen because of an uncaught exception or unrecoverable error or calling the abort() function. I’ve not gotten reports for iphone users.. but I’m not certain it’s just ipad related. Has anyone seen this? I haven’t touched the store code in a while.. the particular file that invokes rev cat hasn’t been touched in a year. I support older ios version.. 12.4 is the lowest so it’s using an older version of the sdk as well : ver 4.43.3 Any thoughts ? feels like it may be somehting cropped up with the new xcode and sequoia .. I’m not sure what else it may be
I have downloaded my p.8 file to upload to revenuecat but I am getting message it’s the wrong one - it’s asking for a subscription file but I don’t see that as an option in the apple developer account - please help!
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.