Discussion and help from anything related to RevenueCat.
Recently active
Hello,In an attempt to test the revenueCat implementation in our iOS application, we’ve been facing an understanding issues.Currently, our app is in test flight, and despite seeing our subscription on revenueCat monitoring console, we are not always able to see this subscription/purchase on the client side of the App store. For somes of our test users, the subscription is visible on their app store, and for some others it’s not visible.Besides, on our android device it seems to be working as intended. Also, we do not understand well how revenueCat categorize the transaction to be “sandbox”. Is it related to the state the app is in the store (test flight, in testing...)?Can we be sure that when our app will be released, the subscription wiil stop be labelled as “sandbox’?Thanks
Hi everyone,I'm in the process of setting up a Paywall and noticed that the Slovenian language (Slovene) is not available as a localization option. I do see other regional languages like Slovak, Croatian, and Italian, but unfortunately, Slovene seems to be missing from the list.Is there any way to request the addition of Slovenian as a supported language for Paywall localization? Or is there a workaround I can use in the meantime?Thanks in advance for any guidance!Best regards,Nejc
My app is crashing with these error after purchase an item in Paywall and open the paywall again “java.lang.IllegalStateException: Unsupported concurrent change during composition. A state object was modified by composition as well as being modified outside composition.”I load the Offers in my ViewModel, setting it into Paywall composablesetOffering(viewModel.offering.value)and when Paywall get Recomposed the app crash with that error.
Hello, I’m experiencing an issue where all subscription renewals fail due to a billing error, including for sandbox users. This started two weeks ago after I made some changes to my offerings. Specifically, I:• Added multiple offerings.• Added another entitlement to the existing entitlements. However, my product IDs have remained the same throughout these changes.At first, I didn’t think much of it, but now multiple real users’ renewals are failing due to a billing error. I tested this with new sandbox accounts, and the issue persists there as well. Issue Details:I'm using flutter and building for ios and I'm not using StoreKit Configuration, this wasn't an issue before.• Previously, users could subscribe successfully with a free trial, and after the trial period (3 days), the renewal would always go through.• However, since making these changes, all renewals now fail with:• “Entered a grace period due to a billing error”• “Subscription canceled due to a billing error”• “Subscription e
How do I link stripe payments through their payment links to a revenuecat user? I tried using the client_reference_id url param and link that in the revenuecat ui using the metadata field option but I do not think it is working.
Context:I have a custom payments backend that is hooked up directly with Apple. I now want to migrate to Revenue cat so I have setup Apple server to server notifications and have linked Apple to RevenueCat. I have also setup the Apple Server Notification Forwarding towards my own backend so my backend continues to function properly. My question is this: When RevenueCat receives a renewal event or a cancellation event for a customer that does not exist yet on RevenueCat it will ignore that request (As specified at the end of this section). Will it also not forward the request to my custom backend?
I currently have two RevenueCat projects, one containing an older version of my iOS app, and one containing Android. I’m currently working on an iOS update, and I’d like to amalgamate both of these apps into one project, but I can’t see how to do this. I can set up a new iOS app in the same project as the Android one, which means that all new subscribers will end up there, but is there some way of moving existing subscribers?
I always have a known user ID before I get to my paywall, so do I ever need to use Purchases.logIn() ?If I sign out, I don’t call Purchases.logOut() because I don’t want to generate an anonymous ID, but when I get another user coming through and hitting the paywall, is it sufficient just to call Purchases.configure() again integrating the new appUserId?I’m just concerned that I’m using a ‘configure’ function for setting the apiKey which should only really be done once per session but I’m doing that every time I sign in a new user when it seems more sensible to use a logIn function.Are there any downsides (apart from a wasted resetting of the apiKey) with the way I’m doing this?I mean, it seems to be working…..Many thanks.
Reading this section of the docs: https://www.revenuecat.com/docs/customers/identifying-customers#supporting-your-customersIs says > You can retrieve the currently identified App User ID via the Purchases.shared.appUserID property. Unfortunately that doesn’t work for me. `Purchases.shared` is `undefined` even after calling `Purchases.configure({ … })`. Are the docs outdated? Or am I doing something wrong?
Hello guys, I am fairly new to RevenueCat and attempting to integrate paywalls into my app using react-native-purchases-ui. I want to set up a Freemium model where the user can be to remove ads or watch a rewarded ad to move on. I am just trying to work out the flow to enable this. So far my plan for potential implementation, I have a button within the WYSIWYG editor that navigates to a deep link within the app that triggers the reward ad to show, I however need to also dismiss the paywall on this action. There doesn’t seem to be any way to programatically close or abort the paywall? Or alternatively perform both a deep link action and dismiss action through a button within the paywall?Is there any way to achieve this flow that I am missing or do I need to reach for manual implementation of the paywall and loose the benefits of your paywalls feature?
Hi,I have setup revenue cat for my flutter app. I have double checked product IDs aligned to play store and my revenue cat paywall works for debug mode on my Android emulator. It also works for my iOS device without any issues.However, when I try testing the subscription through (Android) play store closed beta testing link and download the app, I get the error indicating a configuration issue. This is strange because if I run the app in debug mode in my android emulator it still works, and I can make test transactions. Error 23: There is an issue with your underlying configuration. Check the underlying error for more details.Any issue why this could be happening?
I’m building an app using KMP (Kotlin Multiplatform) with a shared UI (Compose Multiplatform). When I test my iOS app via a TestFlight build, the paywall looks completely different from what I designed on the dashboard—it appears very primitive. However, when I test the Android version, it matches the dashboard design perfectly.How can I ensure the iOS version aligns with my intended paywall design?library version:purchases-kmp = "1.7.2+13.26.0"purchases-core = { module = "com.revenuecat.purchases:purchases-kmp-core", version.ref = "purchases-kmp" }purchases-ui = { module = "com.revenuecat.purchases:purchases-kmp-ui", version.ref = "purchases-kmp" }on my ios Podfile:pod 'PurchasesHybridCommon', '13.26.0'pod 'PurchasesHybridCommonUI', '13.26.0'iOS version: 18.3.1the ios paywallmy design on dashboard
I am trying to integrate with SDK to automate free trial ending reminders and more. And I read this post - But I also notice that RevenueCat allows various SDKs including customer.io and Firebase, which I am using currently. OneSignal seems great, but I am just wondering if customer.io might be better in the long-term. How are you guys doing it? I would like to learn from those who has implemented similar features.
I have updated the dependencies of purchases_ flutter from 3.4.5 to 3.9.2.But I have an error when I install the pod file.Error is:PurchasesHybridCommon required a higher minimum deployment targetThe error occurs when I try to install the pod files and then install to an iOS device.Can you help me?
I realize this is similar to the post here, but was hoping to dig into it a bit more on why we are seeing this failure.We are seeing “The device or user is not allowed to make the purchase.” when attempting to call Purchases.getProducts() or Purchases.getOfferings() from our React Native app. A few notes:We’re on React Native 0.63. (I realize that the docs recommend 0.64 or newer, but it was my understanding that it should still work on this version). We’ve ensured that the emulator we are running has the Google Play Services SDK installed. According to the AVD Manager, we’re using a fairly new Android version: Android 11.0 (Google Play Services) We are logged into an account on the emulator that is registered as a license tester on the Google Play Console. The emulator has been rebooted several times.This error happens in both our main app and a simple test app that we put together for the sake of testing. Is there something else that we are missing in our testing process that cou
The data for all of my charts says “Last Updated: 9 hours ago”. I’ve tried refreshing the page, different browser, logging out/back in, etc., but nothing helped. The RevenueCat status page isn’t reporting any issues with dashboards, so I’m not sure if this is happening to others as well?
We tried implementing a custom font for the paywall screen using Expo React Native, but couldn’t get it to work on iOS despite multiple attempts (trying on simulator just to see if the fonts show). I followed both the Expo documentation and the standard React Native approach for custom fonts, but nothing seemed to work. Is there a reliable way to do this using Expo? Followed the instructions here as well (https://www.revenuecat.com/docs/tools/paywalls/displaying-paywalls#how-to-use-custom-fonts-2), along with the naming conventions. Still seeing the error that my custom font couldn’t be loaded - falling back to system font.For reference, I’m loading in fonts into my app using the `useFont` hook in Expo - https://docs.expo.dev/develop/user-interface/fonts/. Would really appreciate some help here!
I'm experiencing unexpected behavior when using a custom App User ID with react-native-purchases.At app start, I call Purchases.configure exactly once (on every login) and immediately provide the Cognito sub as appUserID: const cognitoSub = await Storage.getUser(); Purchases.configure({ apiKey: ..., appUserID: cognitoSub, }); However, when calling await Purchases.logIn(cognitoSub) shortly after, the customerInfo.originalAppUserIdstill returns an anonymous ID ($RCAnonymousID...).Even when purchases are restored, the originalAppUserId is still the anonymous ID, not the custom one passed to configure(). This leads to purchases being restorable across multiple user accounts on the same device, which should not be possible.What’s strange is that in TestFlight restoring purchases with a different account on the same device failed, as intended.But in production, any user on the same device can restore the purchase, even with a different Cognito ID.I’m using the latest libraries:"react-native-
Hello, I am working with no anonymous Id’s on Flutter App. Once the user logs in for the first time I call Purchases.configure(PurchasesConfiguration(‘Key’)..appUserId = ‘id’);If a user logs out and another logs back in I call Purchases.login(‘newId’);I have a flag to know when I have called Purchases configuration for the first time in my business logic. However, I do not know if the persistance is going to be the same as with the Revenue Cat package when app is closed, reset, etc. Will it be safe to call Purchases.configure anytime a user logs in regardless if it has been already called? If not, is there a method to validate if Revenue Cat package has been loaded? Thanks
Hello there! During the initial implementation of RevenueCat into our react-native app, we attempted to set the app user ID as the user's first and last name stored in the app context, to facilitate easier contact later on. This led to a bug that caused a custom App User ID to be assigned to users who created accounts through external providers that do not supply this data. As a result, some users were assigned an "app user ID: undefined undefined".This bug was quickly fixed and the affected users were removed from the database.Since then, the app user ID has been assigned anonymously, in accordance with the documentation, and we identify users using assigned attributes.The issue arose later, as despite having no such users and no code in the app assigning a custom app user ID, we started seeing more users with the ID "undefined undefined", and their accounts were being merged during purchase into a single "undefined undefined" user account. I'm convinced the issue lies within the Reve
Hello,I want to integrate Superwall Paywalls in my app, but use revenuecat for the subscription logic. In this case, I have 2 APPS, <bundle-app> and <bundle-app>.dev, one for production and the other one for DEV. I configured Superwall like revenuecat, with this 2 bundles, but, in revenuecat, I can't connect diferent superwall environment, I can only configure 1 key.Is possible configure superwall for each APP in revenue cat? Thanks.
Hi All,I’ve made a very quick and dirty GDScript port of the Purchases Unity SDK to Godot Game Engine here: https://github.com/werdnahull/purchases-godot. Only Android works so far, but iOS is in the works. As I said, it was done quick, so quite a few things are not done the “Godot” way, such as function names and variables. Callback functions were converted to signals, however.
Considering the latest events around Unity, and the community’s backlash, many are exploring OSS alternatives like Godot. Unfortunately non of the alternatives provide stable IAP solutions.Would RevenueCat explore the opportunity to port the SDK to Godot, or provide some guidance how this can be accomplished?I’m particularly interested in a C# port, however GDScript seems better supported. Godot 4 doesn’t build C# to iOS/Android, yet.
Hi,We are planning to integrate a payment gateway to our app’s web version however Stripe isn’t supported in our country (Philippines). I can’t find relevant documentation for the SDK for any sort of postback or equivalents.Since we are already using RevenueCat, is there a way we can proceed without switching to another IAP platform entirely?I’d love to hear from you if you have any suggestions (aside from opening a Stripe Atlas account).
My App supports premium only model. Each new App User have to buy subscription. I select transfer behaviour “Keep with original App User ID”.1. I sign-up with MyUserA and bought the subscription2. Then I sign-up with MyUserB and want to buy the subscription, but get the error `There is already another active subscriber using the same receipt`. (presumably from MyUserA)In a paywall I see an error “The product is already active for the user”. Before RC error modal I see PlayStore bottom sheet error modal “Error. You’ve already subscribed to {MY_PLAN}...” So question, how can I achieve behavior when every new My App user have to buy subscription, while being login into single PlayStore account?e.gMyUserA → SubscriptionInstanceA → PlayStoreUserGlobalMyUserB → SubscriptionInstanceB → PlayStoreUserGlobalIs this possible?I do not want to share the same bought subscription between my app accounts, but also I do not want users to overcomplicate/bother with their PlayStore user change/relation.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.