Discussion and help from anything related to RevenueCat.
Recently active
I initially setup the Firebase integration with my revenuecat project, but have decided not to use it (going to use webhooks for my use case, which is adding/reloading a credit system on each billing date). However, I can’t find any option to remove/delete the firebase integration from my project?
I made Android and ios app with RevenueCat In app purchase working fine. So i need to upload app store and play store so i have few question Question 1: How can change sendbox key to real key? becuase when i download app from testflight they are showing purchase is on testing mode. Question 2: How can test app store user the app because i added in app purchases on login screenReact Native Framwork
Hi, does anyone have experience implementing revenuecat without google cloud? Is there any tutorial?I am coming from android.billing 4.0 and don’t need any features based on google cloud.Thank you in advanceKlaus
I am using android kotlin sdk for fetching the offerings (google play, IAP products). But the fetching of offering is very slow (~15s). In my application users can see the list of products as soon as they open the app. So showing a loading screen for 10-15 seconds until i can show products is giving a bad user experience. I tested the public revenuecat apis separately and they are pretty fast (<0.3s).I am using `Purchases.sharedInstance.getOfferingsWith` as instructed in the docs.I am initializing the SDK at application start.From logs i can see a 10s delay “Updating pending purchase queue” and “starting http requests”Logs:21:55:08.744 D/[Purchases]: ℹ️ Debug logging enabled21:55:08.745 D/[Purchases]: ℹ️ SDK Version - 5.0.0-rc221:55:08.745 D/[Purchases]: 👤 Initial App User ID - null21:55:08.745 D/[Purchases]: 👤 Identifying App User ID: $RCAnonymousID:QQQQQQ21:55:08.745 D/[Purchases]: ℹ️ Deleting old synced subscriber attributes that don't belong to $RCAnonymousID:QQQQQQ21:55:
I am getting the following error with the code below: ‘java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.revenuecat.purchases.EntitlementInfo.isActive()' on a null object reference’ Purchases.getSharedInstance().getCustomerInfo(new ReceiveCustomerInfoCallback() { @Override public void onReceived(@NonNull CustomerInfo customerInfo) { Log.i("RevenueCat", String.valueOf(customerInfo.getEntitlements())); Log.i("RevenueCat", String.valueOf(customerInfo.getEntitlements().getAll())); if (customerInfo.getEntitlements().get(premiumEntitlementID).isActive()) { sharedPreferences.edit().putBoolean("premium", true).apply(); } else { sharedPreferences.edit().putBoolean("premium", false).apply(); } } @Override public void onError(@NonNull PurchasesError purchasesError) { Log.i("
Hi, I have been developing an app for iOS, and I can get the free trial as intro price in getOfferings response of the SDK. Now, I have upgraded to SDK 6 and trying to do the same on Android. The free trials are there in intro price, but they are returning wrong numbers. There are free trials as subscription options which have right number of days. Is this a bug or expected? Thank you in advance!
currently i,m developing the expo react native application ,when i try to purchase the subscription in ios(react-native-purchase),take sometime to show ios purchase prompt and i need to show the spinner/loader before purchase prompt open and i have no idea,when ios subscription prompt open and close and anyone please sortout this issue?
In my case, if a user asks for a refund in google play, not asking me from the app, (As user can ask for refund within 2 days of purchase), will that data update accordingly in revenuecat backend. Or will the lifetime access to pro content still be there?
Hi there,We’ve recently experienced a small number of users who have made a purchase but nothing has comw through to RC.We typically ask our user to press a button which calls the restore purchases button - however this is not working either.I can see the user in RC and they’ve had their custom user ID set from the auth provider or social login, but no event for the purchase.Any idea on what could be going wrong?
Hello. I check this property using (customerInfo.entitlements.active.value.periodType == .intro) which works fine in sandbox, however in production it doesn’t detect the free trial period correctly. Any thoughts? Thanks. Kareem.
I have added in app products in play console and also imported them to revenue cat dashboard, i am also fetching and displaying these products in my app, now i know that there is a method called "Purchases.purchaseProduct" but i dont know how to use it. For Purchases.purchasePackage method we get customerInfo object back on successfull purchase but what do we get or how do we know user successfully bought the product, i can only see Purchases.purchaseProduct in documentation Here is the documentation that i am referring to Making Purchases
Hello, Any ideas as to why the app will be receiving active entitlements even months after the subscription has expired? Currently I have an app in production, and while going through some of the “Expired” accounts, I noticed that a few of them are still active with the application. I have checked, and double checked, tested the logic of the app and it seems as if it should block the person from using the app and being directed to a subscription page. However, the only reasonable explanation as to why the users are still having access to the app would be if RevenueCat’s SDK is sending back an active entitlement. I have a method, that each time the app becomes active is called, this method is in charge of verifying that the user has an active subscription each time the app becomes active. Within “checkForActiveSubscription()” I call the “purchaserInfo” to get the latest information from the purchaser as per the instructions on how to check for active subscription on the documents. Side
Hello RevenueCat Community,We've been using RevenueCat for our iOS, Android, and web apps, and we primarily use Firebase as our backend for all 3 apps. We've set up the RevenueCat’s Firebase integration (not the Firebase extension) by following the documentation provided here. The document seems to indicate that events for all 3 sources (App Store/Play Store/Stripe) can be sent to Google Analytics.We see the revenue data for our iOS and Android apps in the Firebase dashboard. However, we've noticed that the revenue for our web app, which is processed through Stripe, is missing. We do see the web app revenue on the RevenueCat dashboard, but it's not showing up in Firebase.We've double-checked the setup and believe that we've followed the integration steps correctly, but we're still not able to see the web app revenue in Firebase. Is there an additional step or configuration required for Stripe payments that's not covered in the documentation?Any guidance or suggestions would be greatly
Hi there, We would like to grant some email addresses free access to our product. However, we would like to do this before they create an account. Is there a way to set up a customer with an email and an entitlement and then grant them the entitlement on sign up?Best, Jake
We are using visitorId from Fingerprint to identify the user. and it is used as the only user account on our system.Purchase setupPurchases.configure({ apiKey: REVENUECAT_API_KEY, appUserID: visitorId, //We are using Fingerprint to identify the user. observerMode: false, useAmazon: false, usesStoreKit2IfAvailable: true, });User A using device1 with identifier visitorID1 and AppleID1 makes the paymentIn case of used User A using device 2 with identifier visitorID2 and AppleID1 can restore the purchase. On the backend we can swap subscriptions between visitorID1 and visitorID2
Hi, Should I use the same single App Store Connect API Key and In-App Purchase Key for all of my apps (so there will be one App Store Connect API Key and one In-App Purchase Key in Apple Dashboard)?Project A:iOS App AProject B:iOS App BProject C:iOS App Cand so on…If yes, I generated and downloaded the keys from Apple once, but shortly after uploading them into my first RevenueCat project, I deleted them. This app is currently live on App Store Connect, and everything is working as it should. If I revoke the keys I used in this app, generate new ones on Apple, and then replace them in the RevenueCat project, will everything be fine and keep working? Or am I not able to change them now? Of course, I will save these keys this time and use them in every future app that will include in-app purchases.I am new to IAP in apps. It's probably a trivial question, but even after reading the official documentation, I am still unsure about it.
I’m adding iOS Introductory Offers, and I would like to test before going live. However, when following the guide in the docs, the `discounts` field on the product is an empty array. How do I test this introductory offer before going live? Example of the code I’m using for reference:const purchaseDiscountedIOSPackage = async (purchasePackage) => { const product = purchasePackage.product; const discount = product.discounts?.[0]; // product.discounts is empty if (!discount) { throw new Error('No discount found on producct'); } const paymentDiscount = await Purchases.getPromotionalOffer(product, discount); if (!paymentDiscount) { throw new Error('No payment discount'); } try { const purchaseMade = await Purchases.purchaseDiscountedPackage(pkg, paymentDiscount); return purchaseMade.customerInfo; } catch (e) { if (!e.userCancelled) { throw e; } else { throw new Error('ignore'); } }};const purchase = async () => { const offering = (await Purch
Hi,I ran into an issue while implementing subscription for Android. I am trying to allow user to upgrade one a Basic plan ($10) to Pro plan ($40). Here, both Basic and pro plan is a monthly plan.I bought Basic plan, then I wanna upgrade it to Pro plan, but it returns me “Couldn't find existing purchase for SKU”.In my understanding, the product id (entitlement) is the SKU. Please correct me if am wrong. Any help would be greatly appreciated.
Thank you for creating a crazy useful package.I use this android library com.revenuecat.purchases:purchases:6.4.0.Unexpected crash in some users.The error log is here.Fatal Exception: org.json.JSONException: Value of type java.lang.String cannot be converted to JSONObject at org.json.JSON.typeMismatch(JSON.java:112) at org.json.JSONObject.<init>(JSONObject.java:172) at org.json.JSONObject.<init>(JSONObject.java:185) at com.revenuecat.purchases.common.diagnostics.DiagnosticsFileHelper.readDiagnosticsFile(DiagnosticsFileHelper.kt:39) at com.revenuecat.purchases.common.diagnostics.DiagnosticsSynchronizer.getEventsToSync(DiagnosticsSynchronizer.kt:86) at com.revenuecat.purchases.common.diagnostics.DiagnosticsSynchronizer.access$getEventsToSync(DiagnosticsSynchronizer.kt:19) at com.revenuecat.purchases.common.diagnostics.DiagnosticsSynchronizer$syncDiagnosticsFileIfNeeded$1.invoke(DiagnosticsSynchronizer.kt:44) at com.revenuecat.p
There is a delay of about 5 seconds from function call and popup displayed on ios. Is there solution for this?
I have older app where users purchase my software using PayPal. Now that I have my app ready for the Apple App Store I am offering in-app-purchases. My question is that I have the email address and transaction numbers of my PayPal users. Is there a way that I can import this into RevenueCat so that my users can continue to use the new software without needing to purchase it again
Hi guys, We’re having issues with the purchase callback never being called for some users. This post came closest to the same issue, but didn’t have a clear answer to how to resolve or what the cause could be.The annoying this is that I can’t reproduce the issue. What happens for certain users, is that they hit our “Subscribe” button, and the loading icon that’s shown gets stuck because the callback never returns. This issue has to have to do with the call to func purchase(package: Package, completion: @escaping PurchaseCompletedBlock) , since in all other cases the loading icon would disappear. Relevant CodePurchasesManagerPurchasesManager is a wrapper Singleton class for called RevenueCat’s Purchases./// Purchase the given package and call completion upon resultfunc purchase(package: Package, completion: @escaping (StoreTransaction?, CustomerInfo?, PublicError?, Bool, Bool) -> Void) { if (configured) { Purchases.shared.purchase(package: package) { (transaction, customerI
I am attempting to get a number of units of each product we have sold on a daily/weekly/monthly basis but it doesn’t seem to be clear.
Hey, I’m using RevenueCat with my Flutter Application, the user can change the language between English and French, the product localizatino in already setup in the stores and well configured with RevenueCat, but when the user change the language of the device the product description did not change, any help please ?
I’m trying to test the Restore Purchase functionality locally with a sandbox user for my macOS desktop app but nothing seems to happen. Here is my code: Purchases.shared.restorePurchases { purchaserInfo, error in if purchaserInfo?.entitlements.all["Premium"]?.isActive == true { NotificationCenter.default.post(name: NSNotification.Name("SubscriptionActive"), object: nil) closeAction() } isLoading = false}
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.