Discussion and help from anything related to RevenueCat.
Recently active
HiI’m using latest Revenucat iOS SDK v5.7.1 & presenting full PaywallViewController screen using below codelet controller = PaywallViewController(displayCloseButton: true)controller.delegate = selfcontroller.modalPresentationStyle = .fullScreenself.present(controller, animated: true, completion: nil)On implementing above code, Paywall screen shows NavigationBar with white background color, also it shows close (X) button in black color on top right corner on white background navigation bar.Question is1. How can I change white navigation bar color to clearColor &2. How can I change close(x) button color to white color ?
We transfer our mobile application datas from Revenuecat to Adjust. When we checked our datas: There were no inconsistency on events such as trial_started and trial_cancelled etc. On the other hand, we detected that Adjust shows more user than Revenuecat on renewal events in install_date. But, Adjust loses many customers on event_date. We suspected that there may be loss on old customers while investigating event_date. Yet, it is quite awkward that install_date duplication. Anyone who faced that problem and any suggestions to solve that issue? Many thanks
I have one subscription group with four subscriptions Premium YearlyPremium MonthlyBasic YearlyBasic Monthly First when i buy a subscription ( For example: Basic Monthly) then i upgrade to another subscription (Premium Monthly), the webhook sends the event for the product change and renewal. In the webhook, i hit the developer api v2 to check the active entitlements for the user and i get Basic Monthly and Premium Monthly both as active subscriptions. The api only returns one correct entitlement after some delay .The way we have the webhook setup is that we fetch the active entitlements from the revenue cat itself and we sync the data with our own database according to how the docs recommended it but this two entitlements keeps causing issues when we are trying to sync the data. This issue only happens on iOS. Is this a known bug with revenue cat or how can we solve this?
So, this is the workflow for me - on app start I initialise Purchase sdk with anonymous user:Purchases.configure(configuration);Upon successful login, I login - Purchases.logIn(credentials.user.sub);The question is (and I couldn't find it in the docs) - on app restart, will subsequentPurchases.configure(configuration);overwrite legit user back to anonymous ?User session is long lived, so there will be no login flow on app restart, and I'm wondering will .configure(configuration) respect existing user id (considering logout wasn't called)?
I am a little lost here and could use some pointers/help. I have a Flutter application which has Ads in it. I have no concept of a “user” in my app. I would like to add the ability to remove Ads. I created all the required store setup for both Google and Android. I’ve added a button in my app to purchase the product I setup (I have only the one product) to remove Ads. This all works as expected on both Android and iOS. I need to implement the “restore” capability in my app per the Apple App Store requirements. I have questions as I can’t seem to figure out exactly how to do this.Since I use anonymous accounts wouldn’t the user, upon removal of the app and reinstallation get a new anonymous ID? If so, how does the system know they already purchased my product? How is this done typically, should I show both a Purchase and a Restore option in the app? Seems like there should be a way to ‘detect’ that the user already made a purchase and if so provide the ‘restore’ option...and if
Hi All,I tried everything. I signed all Business Agreements with Apple. I deleted and added subscriptions and products umpteen number of time but always I get null value back in revenue cat from Apple and thus a grey screen in my mobile app. I double and treble checked the keys and secrets, and checked the In-App purchase connection status, everything is correct.Can someone guide me, or help me what I can do? My app is not going ahead because of that?Regards,Aman
I have a question to understand the subscription flow better. If user takes a 7 day free trial for an annual subscription, does the system prompts the user if they are willing to continue subscription or not once the trial ends ?I see my users not getting converted from trial to revenue. I believed the user was cancelling the subscription manually from settings. But if they don’t do it, does the system prompts once the trial ends or does it deduct money immediately from the user ?
I would like to set a custom attribute with a string I get from UserDefaults().This will NOT set the custom attribute:let cam = UserDefaults.standard.string(forKey: "cam")!Purchases.shared.attribution.setAttributes(["cam": cam])This will set the custom attribute:Purchases.shared.attribution.setAttributes(["cam": "abc"])let cam = "abc"Purchases.shared.attribution.setAttributes(["cam": cam])let cam = UserDefaults.standard.string(forKey: "cam")!Purchases.shared.attribution.setAttributes(["cam": "abc"])Purchases.shared.attribution.setAttributes(["cam": cam])UserDefaults combined with setting the attribute through a variable will not work, except if the attribute is previously set using a literal string (last example).What do I miss here?Is it a bug?Is it Swift or RC related?
I would like to know how many users will likely churn in January 2025 based on their subscription status.How can I identify the number of users likely to churn in January by finding users who:Have auto-renewal disabled AND Have subscriptions expiring in January?
Hello,I’m setting up a subscription with 7 days free trial & 1 year period on Android & iOS, using Flutter SDK. I want to show on the UI wether the subscription is:not subscribed in trial (& active) active cancelled (& active) expiredAll states work except cancelled (when the subscription is still active but won’t renew). Upon my app startup, I call this code: Purchases.invalidateCustomerInfoCache(); _customerInfo = await Purchases.getCustomerInfo(); Even though RC’s debug logs print “😻 CustomerInfo updated from network.”, I still get cached entitlements whose “willRenew” field is always true.I added an overflow menu action to execute this code whenever I want to see if calling it multiple times works (as I read here & there on the forum), it doesn’t.The only way to get an up to date information is to call Purchases.restorePurchases(), but this shall only be called upon user request.Is there a way to get up to date CustomerInfo upon app startup?
I created a Multiplatform app in Xcode. This app has two platforms, iOS and macOS, and users can use it at the same time no matter which platform they purchase on. Currently, the paywall can be displayed correctly when debugging on iOS, but I don't know how to display the paywall on macOS. How can I make the paywall display on the macOS platform app so that users can make purchases?When switching to My Mac, a code error is displayed:Value of type 'some View' has no member 'presentPaywallIfNeeded'
Hi, Not sure if I am missing something, but I have a problem with Grants.I was of the idea that when we assign a grant to a user on a subscription it automatically gives them that period for free. I wanted to use grants in scenarios where my customer had an issue or are unhappy with something I can give them a week, month or quarter free to show good faith.What we have noticed is that when I do so it creates two parallel plans, One for the users subscription and one for the grant but the user is actually charged by appstore. Thank god this was a test scenario and wasnt a paid user, it would have been embarrasing promising them a grant and then getting charged. Is this a code issue or can this not be done the way I though it would be? My Devs are saying that you can only ‘Grant’ users whose plan has expired or who dont have a plan … not sure if that actually serves the purpose. ThanksSunny
So I am able to use RC to complete purchases of a product.Here’s what happens once a user has purchased a product. → I grab their Revenue Cat ID, and extract their latest transactionIdentifier→ An API request is made with this info to our backend server to process their order. Here is a code snippet of how I am using the React-Native SDK to get their transaction Id. On the backend I want to verify their Revenue Cat ID has indeed made the purchase based on the provided transactionIdentifier. What’s the best way to do this?
my app is almost done, the big problem that i am facing is Revenuecat is not working and showing gray screen when i have adding the pricing string and when i am not adding the pricing string the page is loading but is still not executes the purchase, i am unable to find the problem , please HELPi have tried the flutterflow document on revenuecat, i have tried youtube videos on it and revenuecat documents on checklist for errors and i have checked playstore for any missing or wrong entries.
I downloaded the subscription key for an in-app purchase from Apple into a file named 'SubscriptionKey_5S5U32JN84.p8' However, when I try to upload this file I get this error: “Invalid file name, it should be SubscriptionKey_XXXXXXXXXX.p8. A file name with any other prefix could be a private key for a different Apple service. Please validate you are uploading a Subscription Key.“ I also tried renaming the file to ‘SubscriptionKey_XXXXXXXXXX.p8’ but got the same error. What am I missing?
When you stop an experiment, do developing values like those for “Realized LTV” and “MRR” continue to update for those who entered the experiment or are they frozen at when the experiment stops running? I have an experiment running currently that I’d like to stop (to run others) but would prefer to continue to see how developing numbers like those for LTV and MRR evolve over time. Is there any way to restart an experiment that has been stopped or pause an experiment or turn the enrollment % down to 0%?Thanks, -O^O-
I want to know if it’s possible to set a dynamic price, custom price, price with additionals, etc.I’ll try to explain what I’m doing.I have a shop that sells burgers for $9,99. Users can choose a burger and add soda, mayo, ketchup, remove anything else that they don’t like in the burger, like onions.So the burger is $9.99, soda is $2.00, mayo is $0.30, ketchup is $0.20 and to remove onions we charge an extra $1.00.The subtotal is now $13.49. The user has to be prompted to pay with Apple Pay this amount.How can I prompt this price without registering all the possibilities for products and prices in Apple Connect? Or even adding all possible features and crafting a multiple offerings in RevCat for every combination? I don’t want to have to do that.It’s not possible I’m the only one with this use case, I can’t find anything of this sort online.This is for a single app purchase, but can I do this also for a subscription?Say I have a service with different tiers, but users in lower tiers wa
We use a Firebase extension to automatically add revenuecat events to a Firestore collection and it’s been working great for a long time already.Now we’re adding a Firebase “dev” environment to run some tests, in the form of a second google cloud project that mirrors the production one.Is there any potential issue or things to watch for, in linking the same revenuecat project to both the prod and dev Firebase environments?
At this stage in the google set up doc it says to download the public json key to your computer. In the gif there is no guide to doing this. The json key that is downloaded to your computer automatically seems to be the private key. I can’t see anything specific about downloading the public key or how to do that. What am I missing here? Thanks!
Hello, my user flow is like this:- user purchases subscription (not logging in with Purchases.logIn() )→ Revenuecat generates an anonymous id → INITIAL_PURCHASE event is triggered- after purchase: the user logs in with Firebase auth (logging in with Purchases.logIn() after account creation) → No event triggerI’m grating users credits on INITIAL_PURCHASE. My issue is now that there is no event triggered when logging in with custom app user id. I don’t have any reference to between the anonymous id and custom user id. Is there any way to get aliases with the custom user id as a query from the backend, or am I missing something?
I want to reset my subscription test and delete a Sandbox Customer. However, even after clicking "Delete" from the Customer details page, the customer does not disappear from the list. When I click on it, an alert says, "No customer found with that App User ID, please note that it's an exact search."How can I completely delete a Customer or reset the entire Sandbox?
As part of this guide, when I try to upload the p8 file I see this error: "Invalid file name, it should be SubscriptionKey_XXXXXXXXXX.p8. A file name with any other prefix could be a private key for a different Apple service. Please validate you are uploading a Subscription Key." The file I downloaded from App Store Connect is called “AuthKey_XXXXXXX.p8”. Am I supposed to manually rename it or have I downloaded the wrong file?
So. My app is almost ready to be submitted. Everything is working as expected and I'm busy doing screenshots and stuff. But there is one question I can't find an answer to - how subscriptions are being tested when reviewed? From what I see testing from TestFlight is unreliable and is a weird mix of sandbox and prod - I never made it work (and documentation says it's completely fine as long as things work in sandbox, which they do perfectly).Now, I use auth0's passwordless authentication with one-time passwords, so I can't "prepare" a specifc user with valid subscriptions upfront for the reviewers, they will be using their temporary emails.Will they be able to test subscriptions? How that works? I also can just disable subscription checking via my backend, so it will work on reviewers side anyway, but wouldn't it be considered as a some sort of tampering with the reviewing process?
When editing a paywall, it seems the footer links of a paywall (Terms of service URL and Privacy policy URL) aren’t dependent of the current localization. For example, if we edit the Terms of service URL in English (Canada), we can see the modification in French (France). We should be able to specify different URLs depending of locale.
We have a Flutter web app (not mobile). Our payment provider is Stripe. Does the RevenueCat SDK support Flutter web?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.