Discussion and help from anything related to RevenueCat.
Recently active
Hi There,My app has already gone live. One of my iOS customer (first customer) complained that she has successfully make the subscription, money is paid, but the app did not grant her the subscribed service.I check the RevenueCat website but cannot find the customer and the purchase. What should I do?
If I use the Sphynx template on an iPhone (14) and want to display a close button I’m getting a really nasty layout.The close button is displayed in a black bar at the top. I feel I need a close button as there is no way to get past the paywall on the iPhone without it. By comparison, the iPad allows you to dismiss the paywall by tapping the modal background.The black bar overlays my content and does not allow scrolling to view the copy underneath. If the black bar could be transparent, that would be a start - is that possible?.The ‘restore purchases’ also takes up a lot of vertical space, which is impacting on how much of the actual unlock marketing copy can be seen.I’m displaying the paywall manually from UIKit code, here’s my code: // Need a close button on iPhone screens otherwise there is no way to get past the paywall without subscribing var withCloseButton = false if (traitCollection.verticalSizeClass == .compact) { withCloseButton
I am having trouble getting RevenueCat to work properly in my project when building for visionOS, integrating via CocoaPods. The problem seems to come from lines like this:#if os(iOS) || targetEnvironment(macCatalyst) || VISION_OSwhere VISION_OS is not defined, even when building for visionOS, causing the code to take the wrong path.How is this supposed to work? I can’t quite figure out where VISION_OS is supposed to be defined. Is there a reason this isn’t just using #if os(visionOS)? Any help or workaround you could provide would be much appreciated!Using Xcode 15.1 beta 2.
I tried testing my app before sending to app review and now I cannot cancel the payment for the reviewer account we have createdHow do we go about this so the reviewer has to make payment to test the payment flow
I am implementing Paywalls on kotlin for my Android app, however whenever the user swipes back or presses the back button, the paywall simply goes away and a white screen shows up. For context, I am implementing a hard paywall (without a back button, or option to say no). I wonder how I can override this behavior. I am using version 7.4.0.
We are using RevenueCat to manage subscriptions for an app we service. However, we had an issue with the subscribed customer's information not being updated.In fact, on the Apple subscription status screen, the trial is active (the user canceled the renewal) and the expiration date is showing, but in RevenueCat, this status is not updated.What do we need to check?Additionally, if the subscription is made outside of the app, would the status not be updated?
In flutterflow it allows for a revenuecat integration. However it seems its just for apple and android while flutterflow also allows for web. Or will the integration work for all platforms and they just need those 2 api’s?We know revenuecat offers “web payments via stripe” so I was hoping to use that for the flutterflow app web users and the standard app store and play store methods for when the user is using the app on their devices. I also have the firebase revenuecat extension installed which seems like a good idea... So perhaps Im looking at this all wrong and I use the standard stripe apis to add subscriptions etc and that info just gets synced with revenuecat? So basically this way a user will have his entitlements/packages assigned to him across all platforms. Any insight would be appreciated.
How can we create a scenario of refund in sandbox testing environment
Hello,I have setup some Stripe products in the RevenueCat dashboard along with an offering. When I get that created offering and look at the products listed, they are all listed as type “subscription”. I can see that there is a way to specify type when creating a product with the API but is there a way to do the same on the web dashboard? Thanks!
I have an app where it’s common for users to create multiple accounts. While this is a bigger issue we need to solve, this sometimes leaves our paid users unable to access their paid features - even after reconnecting their subscription to App Store in some cases.Right now we have several options for granting paid feature entitlements (e.g. 1 week; 3-months; 1-year; etc.). However, I would like to be able to set a very specific number of days to their entitlement to match the actual duration of their contract that they are struggle to connect to.For instance: if they have 290 days left on their subscription, I would like to be able to grant that exact number of days rather than 6-months or 1-year. The issue with not having that level of specificity is that since their subscription doesn’t match what they will be billed, we have to tell them to churn and hopefully resubscribe later on.Anyone know if this is possible?
Running a Development Build as well as a TestFlight build both return UNKNOWN STATUS for the iOS method `checkTrialOrIntroductoryPriceEligibility`. I have read other posts that state Sandbox users won’t have a receipt on file to validate, but won’t brand new users NOT have a receipt on file to validate as well? Shouldn’t this scenario make them eligible? Also why would a TestFlight build be returning Unknown Status? I am hesitant to use this method if I can’t even get it to return anything but Unknown. "react-native-purchases": "^6.1.0"
I have used the latest version of purchase_flutter (3.9.3) but when I want to use Amazon, the parameter useamazon isn't recognized by Android studio. Any idea how to get it work?
Hello,I have a single activity Andriod app trying to implement Revenue Cat.I experience app crashes when an configuration change, i.e. screen rotation, occur during the call to Purchases.sharedInstance.restorePurchasesWith…. The method is called from a Fragment and work as intended unless an configuration change occur before Purchases.sharedInstance.restorePurchasesWith… returns the call.Do anyone have any suggestions how to handle configuration changes, should I move calls to the Revenenue Cat SDK to a viewmodel? Best Regards, Tomas
Hello,I’ve a Flutter app available on several platforms, iOS/iPadOS/macOS and Android/AndroidTV.Everything works well but I’m facing an issue on Amazon Firestick. I know revenuecat supports Amazon Store IAP but I can’t publish my app on this store and users install it via apk direct link.So on this platform I disable IAP and just want to login user and check CustomerInfo to see if there is any subscription purchased on another platform.I don’t know how to implement this, if I call the configure(configuration) method which Api Key should I use ? Can I use the android api key even if app is running of Amazon FireOS ?I tried to just login user because the dart documentation says :This function will logIn the current user with an appUserID.Typically this would be used after logging in a user to identify them withoutcalling configure But when I call Purchases.login(userId) :kotlin.UninitializedPropertyAccessException: There is no singleton instance. Make sure you configure Purchases before
In the doc “Using RevenueCat with SwiftUI”, https://www.revenuecat.com/docs/swiftui-helpers, they use “import Purchases” all other places in the support documentation “import RevenueCat” is used. Should I shift to “import Purchases”?
I have a problem in handling slow test card , approves after some time in android sandbox testing . if somebody know how to handle this in React native then please help
purchaseProduct is now deprecated. Please don’t remove it.The first reason is that it is the most simple solution to buy a product. You just need one line of code and the identifier string (no object like the other solutions). It could also be the first starting point for beginners, so they don’t have to learn stuff they don’t need. E. g.:Learn purchaseProduct Do you have often changing products or need more data about a product? Now learn getProducts + purchaseStoreProduct You need to switch between product bundles (e. g. A/B Tests)? Use getOfferings+purchasePackage You need even more? Paywalls…The second reason is that any other solution then purchaseProduct requires always to connect to RevenueCat to fetch the products/packages/offerings etc. This is bad for GDPR, because it's most of the time not requested by the user (tracking)
hello!I am wondering if both events are sent in parallel to Mixpanel in following use cases:User cancels the trial period: rc_trial_cancelled_event and rc_cancellation_event both, or just the trial one? User keeps the subscription after the trial period: rc_trial_converted_event and rc_renewal_event both, or just the trial one?I am asking because of the Trial flow descriptions in the webhook section of the documentation, where trial events are not present: https://www.revenuecat.com/docs/event-flows#initial-purchase-flowI am wondering how this translates into the events sent towards the Mixpanel.
I’m hitting a bit of a wall getting the RevenueCat/Stripe integration up and running, mainly because I haven’t found a good path for testing test/sandbox subscriptions. I can do testing against Stripe Live, but that isn’t really a good solution..Stripe seems to only allow installation of the RC App in Live mode. It also appears that RC only allows one Stripe integration per project, meaning that I can only have one webhook config for Stripe with one Stripe webhook secret. I don’t want to (lol), but it seems like I could:Create a second RC project and attach the Stripe Test webhook there. Proxy the Stripe Test web hooks, and forward them onto RC. I haven’t tested this, so I haven’t verified if the checks on RC endpoint would allow these coming from a different source. Test in Stripe Live mode.Do I have any better options? I’m hoping I’ve just missed something that makes this really easy.Thanks in advance.
I’ve successfully managed to make my first sandbox subscription purchase with an iPhone device, in a React Native app. Now I want to cancel this sandbox subscription to try my workflow again. According to App Store Connect:As you can see in the screenshot above, Apple writes: “To repeatedly test common in-app purchase scenarios for a sandbox tester, click Edit to clear their purchase history.”I have cleared their purchase history but the subscription remains in RevenueCat:Aren’t App Store and RevenueCat synced?How can I easily cancel a users subscription everywhere (in sandbox environment)? I’m basically trying to figure out the smoothest testing workflow for purchasing subscriptions, cancelling them and retrying the whole process, many times.
I would like to ask is it possible to purchase for example Item 1 and Item 2 (may or may not be a subscription) at the same time on the checkout?
I have seen this error sometimes:Cannot read property 'productIdentifier' of undefinedWhy would RevenueCat have an incomplete response when: const info = await Purchases.getCustomerInfo();Then I access by:info?.entitlements?.active?.[entitlementName]?.productIdentifier This only seems to be in production, of course.
Hello RC team,We're encountering a problem on Android. When calling getCustomerInfo(), the result shows that the user doesn't have any active subscriptions. However, when attempting to subscribe, the response indicates that we are already subscribed, resulting in rejection.Also, one user is subscribed multiple times on the same product in Dashboard even if we created unique id in configurationFeels like, Dashboard and getCustomerInfo are not in sync.This is the setup.If you need some additional information, please, let me know. const aplleApiKey =REVENUE_CAT_APPLE_API_KEY;const androidApiKey = REVENUE_CAT_ANDROID_API_KEY;const uniqueId = UNIQUE_ID useEffect(() => { const setup = async () => { if (Platform.OS === "ios") { Purchases.configure({ apiKey: aplleApiKey, appUserID: uniqueId, }); } else if (Platform.OS === "android") { Purchases.configure({ apiKey: androidApiKey, appUserID: uniqueId, });}};setup().catch(console.l
ERROR: 🍎‼️ Error fetching offerings - The operation couldn’t be completed. (RevenueCat.OfferingsManager.Error error 1.)I have this issue and try to recreate RevenueCat project and AppStore Store Kit to solve this issue.I am using Flutterflow for iOS app.I have checked all steps to use in-app purchase(lifetime). Please help me
Hello, I’m using RevenueCat in my Flutter-based application. In my app, there is an authentication (login/register) system. To reference the user, I call Purchases.login('backend_app_user_id') whenever a user logs in or registers, so it updates the user ID.I’m also using Purchases.addCustomerInfoUpdateListener to listen to changes in CustomerInfo. I call this function once at the launch of the application, and later it automatically recalls itself whenever some changes happen in the CustomerInfo. That’s how it is supposed to work, right?However, the problem is that whenever I call the Purchases.login method, which basically updates the user ID and CustomerInfo object, Purchases.addCustomerInfoUpdateListener doesn’t respond to this change. It doesn’t fire the addCustomerInfoUpdateListener whenever I call the login method.
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.