Discussion and help from anything related to RevenueCat.
Recently active
When payment fails because I am already subscribed, I want to know the originalAppUserId of the subscriber.
I have RevenueCat fully set up in my React Native application, and the purchasePackage() function seems to be fully functional when testing on an iPhone. In Sandbox, the popup that prompts the user to sign in with their Apple ID to pay works and has no issues aside from slight delay in between the prompt popup and the “success” alert. However, when I test the exact same build on my iPad, purchasePackage() doesn’t do anything. No errors are thrown, and the only indication that I see the purchasePackage() doing anything at all is the addCustomerInfoUpdateListener() being fired. Other than that, no popups show up, no errors show up, nothing. I would like to note I am testing these on real devices. Any help would be greatly appreciated!
Hi guys,We are building an app that user can have several groups that each group have a subscription plan (free, bronze, silver, gold). IOSSubscription GroupsFamily 1 fw1-google-plan1890 fw1-google-plan2890 fw1-google-plan3890 Family 2 fw2-google-plan1890 fw2-google-plan2890 fw2-google-plan3890 AndroidSubscription: Plan BronzePlans:fw1-google-plan1890 fw2-google-plan1890 fw3-google-plan1890 fw1-google-plan1890 Subscription: Plan GoldPlans:fw1-google-plan2890 fw2-google-plan2890 fw3-google-plan2890 fw4-google-plan2890Related to IOS, this is working well, but in Play Store, we are getting this error when subscribing to the play store: PG-GEMF-01
I am thinking about configuring two separate entitlements in my app. One for “Premium” (access to GPT-3.5 among other features) users and another tier for “Plus” users who will have access to GPT-4 on top of premium features. Premium users should be the only users that can upgrade to Plus. GPT-4 API costs are expensive which is the reason to separate things out.I’m struggling a bit to implement the syntax in SwiftUI. I have two separate entitlements so naturally I would like to implement two separate paywall footers on two paywall screens, but the only way to configure them separately is to give them an “Offering”. I’m not sure how to initialize this offering without introducing an optional into the equation..paywallFooter(offering: *initializedOffering*, condensed: true)Writing things this way seems like hardcoding which would not allow me to change things remotely after each paywall has an offering fed to it. I would appreciate some insight into how I should proceed here.My code in p
Why do I need to log in/out to do a subscription? In real life you just choose a subscription, double click and pay with Apple Pay, it never asks for your email. I followed this video which requires the user to log in to make a purchase, which I tested and asks for an email & password. Am I going to be able to just double tap and pay for the subscription in production with the same code?
We’re using RevenueCat for subscriptions, but am now having issues with receiving the `onSuccess` callback when a user subscribes.If the user cancels the flow, we end up in the `onError` callback as expected, but when signing up we just don’t receive the callback, so the flow stops and doesn’t continue.Our implementation is working fine in production, but we’ve redone some of our signup flow, but we haven’t really (to my knowledge at least) changed anything in regards to subscription.The subscription code is called from a `ViewModel` and the function is called from a button click, so the call should be running on the mainthread (not sure if it matters really since it’s a callback).The code is fairly straightforward: Purchases.purchasePackageWith( activity = activity, packageToPurchase = packageToBuy, onError = { error, userCancelled → // Tell the View something went wrong. }, onSuccess = { transaction, customerInfo → // Call the View to update itse
I am using the newly available rc_subscription_status in Amplitude to create charts on subscriptions, but I don’t seem to get to the same numbers as in the Overview or Charts sections of RevenueCat.For example, I am using the rc_subscription_status = active and comparing to the “Active Subscriptions” in RevenueCat charts, and there is a significant difference.Also checked for rc_subscription_status = trial, which is also very far from the count in “Active Trials” (a lot higher).Is there a formula that should be applied? Like: to get the Active Subscriptions, we should substract subscriptions with the cancelled (or other?) status?Some documentation on how charts are calculated in revenuecat would be very useful in order to replicate the indicators in other tools like Amplitude or Mixpanel.
Swift Package Manager,version4.39.0。 some users Why don't have callbacks?
I have an app that user can use to create new videos. I want to offer two plans, Lite and Pro. Lite subscription allows to create 5 videos / week. Pro version allows unlimited videos per week. How to implement this kind of subscription model? The main challenge seems to be checking how many videos are created during a billing cycle. Is there a way to get the current billing cycle information from the API?
Sorry for the long title! Basically, I am trying to just do the basic storekit-configuration json in my react native and expo project. I have the storekit-configuration.json that I copied and pasted from an Xcode project, but I am getting the following error: [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). To be fair, I have been getting this error even before I tried to use the configuration file, but I thought this would help. I’ve seen some similar issues and followed what they said, but it still will not work. Has anyone had luck with this?
The functionality I am looking for is the user does not have to log in, they can just choose a subscription plan, double click and pay with Apple Pay. Why are we logging in manually with our email and password in this tutorial?Here’s how the user logs in:logIn(BuildContext context, String newAppUserID) async { try { await Purchases.logIn(newAppUserID); // user types in newAppUserId manually String appUserID = await Purchases.appUserID; // And we get an id of the user ... } on PlatformException catch (e) { ... }}
My Environment:iOS 17 SwiftUI RevenueCat 4.33.0 Xcode 15.2My Problem:I have set up two subscriptions in Apple App Store Connect and RevenueCat according to the documentation with one entitlement (“pro”), 2 products, packages and one offering. I have configured a paywall in the RevenueCat dashboard. In App Store Connect, I have configured Sandbox test users. In my App I use Sign-in with Apple to sign in with the test user and I use the Apple user ID to sign-in with the RC appUserID. In the RC debug overlay, I see the correct user ID and the former anonymous user ID. When I open the RevenueCatUI PaywallView in my App running in the simulator, I see the 2 offered subscriptions. Then I click the buy button and the Apple purchasing dialog opens with the chosen subscription for the Sandbox User. When I click to buy the subscription, I hear a “bing” sound (normally indicating a purchase). Then the Apple purchase dialog disappears and a progress indicator is visible in the purchase button of
Hi. Thanks in advance.I have simple question regarding apple sandbox behavior via revenuecat.I have monthly subscription and when I makePurchase monthly subscription, I can see it will auto-renew for 11 month then opted-outs (probably cancelled from apple)then expires.After expiration, when I re-purchase monthly again, then it opted-outs by 1 month.Is this as expected? Is there any this opted-out rules? thank you
Hello, I have configured my app (flutter) with revenue cat. I have two groups of subscriptions, those from v2 and the new ones from v3, on IOS. My problem is that the some of the previous subscriptions are not detected (either naturally or by restoring purchases), even though they are in the same entitlement. The purchase restoration function doesn't return any errors, just the customerInfo, with allPurchasesdProductIdentifiers, expired date … but one one them, the valid one, is missing. My revenue cat version is up to date (purchases_flutter 6.25.0). The rest of the functions work fine: purchasing, cross-platform restoration, link to the .... account. Can you help me? Thanks in advance
Added Facebook ads integration: https://www.revenuecat.com/docs/facebook-ads When I test events in sandbox only the ones with IDFA enabled are sent, even though $fbAnonId is set.This is reproducible every time IDFA is toggled on/off. Is this a bug? Cause from doing a research on this forum I found that IDFA should fallback to fbAnonId and send events regardless. I also have my Facebook ads up and running, and not receiving events from RevenueCat.
function_name: "ext-firestore-revenuecat-purchases-handler"severity: "DEBUG""Function execution took 6730 ms, finished with status code: 200" Logs are taken from Google Cloud Console, Revenue Cat extension 0.1.12.I have only 1 “Sandbox” customer, why RC function execution takes such an extremely long time?!! AppStore TestFlight / Sandbox auto-extends subscription each 5 minutes, and I have similar logs in Firestore (with RC Extension); in average, time varies from 800ms to 1200ms, and sometimes almost 7 seconds?Could you help please, is there any bugs / bottlenecks with this implementation? And how to disable “Debug”? Right now I am just testing, but I expect about 10,000 concurrent users and it can become really bad… thanks
We have bunch of applications live on App Store would like to create single subscription to unlock premium features on those all apps. We have gone through all documentation and understand about how we can implement same thing. We came out with this solution using RevenueCat.RevenueCat allows to create different apps under one project.We would like to know to evaluate our solution and want to confirm we are on right track or if you see any wrong implementation or if you have any better solution, then let us know.Solution:1. Create project "Single" and add all applications under that project2. Create one new subscription for each appFor exampleApplicationOne -> com.applicationone.singlesubscriptionApplicationTwo -> com.applicationtwo.singlesubscriptionApplicationThree -> com.applicationthree.singlesubscription4. Create new entitlement named "single-subscription" and add those products from all appsSo if that single-subscription product purchased from any app, it will unlock p
Hello,I saw that google play requires you to have the option in the app and also through a separate webpage for users to delete their account. I was wondering what is the go to approach in terms of managing the subscription? Do we have to cancel the user subscription before deleting the account and then also delete the customer from the revenuecat side, or de we just delete the customer and that’s it? What would be the order in which we execute this operations?Thank you,Radu.
Hi, sorry if the title is confusing, hard to explain in one line. I am using the React Native SDK and testing on an iOS device in sandbox.The problem I’m having is that Purchases.getCustomerInfo() seems to be returning an expired entitlement in the active list on the first app run after it’s expired. On all subsequent runs, it disappears as expected because it’s expired. But it means the app thinks the user still has an active entitlement for that first run when they should not.To try and explain the steps to reproduce:User purchases a subscription, which activates the entitlement. User uses the app during the subscription and all works as expected. User closes the app. Subscription expires (dashboard reports it is expired and entitlement is expired). User opens the app, which fetches customerInfo. The entitlement still comes back in customerInfo.entitlements.active at this time. User reloads the app or closes and reopens, which refetches customerInfo. The entitlement is no longer in c
Hi all,I hope I am not asking a question that has already been answered, if so I couldn’t find the answer. My app has multiple one off in-app purchases. I would like to display these for purchase. If I add them all to an offering is there some way to exclude products (packages) that have already been purchased from the paywall when displaying the offering? Thanks L
How to enable double tap to pay feature for users? We have integrated RevenueCat into our flutter app and configured the products successfully. We are still pre-launch so our testing is currently in Sandbox mode. Currently when testing the pay flow the user sees the paywall successfully, but there is no option to allow the user to double tap to pay. Instead there is a password field that the user must enter to authenticate their purchase. Is the double tap feature just not visible due to the Sandbox mode or is there something we’re missing? I’d rather use RevenueCat for managing user subscriptions than have another provider in front of RevenueCat that handles taking payments for users. Thanks in advance!
I have default paywall selected but I can see wrong paywall design on ios and android app. Alot of text is missing and not according to selected paywall as default.What can be the reason? please help, thanks
Hi, I was looking at sending customer information to firebase as described here. https://docs.revenuecat.com/docs/firebase-integration There are example security rules here rules_version = '2';service cloud.firestore { match /databases/{database}/documents { match /${param:REVENUECAT_CUSTOMERS_COLLECTION}/{uid} { allow read: if request.auth.uid == uid; } match /${param:REVENUECAT_EVENTS_COLLECTION}/{id} { allow read: if request.auth.uid == resource.app_user_id } }} Are these security rules meant to be copy/pasted directly into firebase? They flag up some syntax errors when I try to and I’m not sure how they are supposed to be changed. I think the “${param:REVENUECAT_EVENTS_COLLECTION}” is the problematic part.
Hi guys has anyone worked with revenue cat for subscriptions before ? I have a weird error saying 'Error configuring purchases:[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]'I am using this custom hook for it. Is there any obvious mistake? I am using the Identifiers in Apple App Store Connect ‘’This is my setup in the revenue cat dashboard
Hiwe experience crashes on Android that affect our crash rate on Google Play which is bad.We are using "react-native-purchases": "7.1.0"Sentry:NullPointerExceptionParameter specified as non-null is null: method kotlin.jvm.internal.l.f, parameter packageIdentifiercom.revenuecat.purchases.hybridcommon.CommonKt in purchasePackage at line 6com.revenuecat.purchases.react.RNPurchasesModule in purchasePackage at line 87java.lang.reflect.Method in invokecom.facebook.react.bridge.JavaMethodWrapper in invoke at line 149com.facebook.react.bridge.JavaModuleWrapper in invoke at line 148com.facebook.jni.NativeRunnable in runandroid.os.Handler in handleCallback at line 938android.os.Handler in dispatchMessage at line 99com.facebook.react.bridge.queue.MessageQueueThreadHandler in dispatchMessage at line 1android.os.Looper in loop at line 250com.facebook.react.bridge.queue.MessageQueueThreadImpl$4 in run at line 38java.lang.Thread in run at line 923
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.