Get help with your SDK implementation.
Recently active
Hi,I have set up my app, with an auto-renewing subscription in a closed test track on Play Store with myself as License tester, and then downloaded the app on my test device. All subscriptions features seems to work fine, I can subscribe, cancel a subscription, restore a subscription and all actions are reflected in RC backend in the sandbox overview. But I am curious about the options one finds in Google Play Store>Configuration>License test page. I choose the ERROR_CONTACTING_SERVER as response and saved, my expectation was to get an error in the app when buying a new subscription. But no the purchase of a new subscription went well. So my question is how are these response options on the License test page linked to the RC SDK? Regards Tomas
Does anyone know if it's possible to get a shadow on the paywall footer like in their web editor? I am not sure if I am missing something? Looking through the paywall source code, it does not look like a shadow is applied anywhere?
What happens to the active subscriber’s entitlement when i remove the product from sale on my appstore connect. ? Scenario : A yearly subscriber having 10months left and i remove the yearly product from sale on appstore connect.
We are trying to show an alert if the user is not eligible for the trial/offer on our paywall. It’s very important we test that for new users this alert does not show, because otherwise we’re going to start blocking valid payments. We tried testing this on Testflight using a sandbox account. Our sandbox user presses Reset Eligibility to clear out any old uses of the trials/offers.When we carry out this test, the status comes back “Unknown”. Is this common when using a sandbox tester? Are there any obvious reasons this could be? Is there a way of testing the new user path (i.e. one that has just signed up and has not taken out any trials) without having to repeatedly create new users or something? We’re using react-native-purchases: 4.5.2
Right now I have a webhook setup to know if a user is going through a downgrade in the near future. But currently revenuecat does not send the PRODUCT_CHANGE notification when the user changes their product instead sends it when the actual downgrade happens and the user is charged but it’s not supposed to be this way according to documentation, where it says the PRODUCT_CHANGE notification will come through whenever the user requests for a change and a INITIAL_PURCHASE event will come through when the actual change takes place
Hi! We are migrating a legacy paid RN app to be subscription-based and need a way to “grandfather” in existing users (who bought the app before adding subscriptions/RevenueCat).These are anonymous users (no login) so can’t link legacy identifiers.RevenueCat provides this (Objective-C based) tutorial - https://www.revenuecat.com/blog/converting-a-paid-ios-app-to-subscriptions but does anyone know of React Native-based example (that will work on both iOS and Android)? Thanks in advance!
We would like to use the new Flutter Paywall in the Form of a footer in our app. Additionally we would like to customize the Paywall’s font and border of the CTA button. When can we expect that to be added? Best regards ✌️
Hello, I’m trying to get App Store Promotions for In-App Purchases working through RevenueCat. I feel like I must be missing a permission or some important setup call somewhere, because I just can’t seem to get the delegate purchases method containing readyForPromotedProduct to ever be called when opening an App Store Promotions link (e.g. itms-services://?action=purchaseIntent&bundleId=<BUNDLE_ID_HERE>&productIdentifier=<PRODUCT_ID_HERE>). I’ve confirmed that the normal purchases method (func purchases(_ purchases: Purchases, receivedUpdated customerInfo: CustomerInfo)) gets called every start, but not the one I want. I’ve tried all the following sources:RevenueCat documentation for readyForPromotedProduct Two different RevenueCat examples (MockPurchasesDelegate.swift, PurchasesDelegateHandler.swift) The following community threads: Here is my Swift code: final class PurchasesDelegateHandler: NSObject, Sendable { static let shared = PurchasesDelegateHandler()} e
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 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?
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)
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.
Hi! I am wondering how Twitch does a generatic subsciption IAP. Looks like they have only one subscription “1Sub Token”, but when you try to subscribe to individual users, it displays the username next to the checkout flow. E.g., in the screenshot “Subscription - Asmongold”.
Hi, I’m using UIKit so I don’t know if this is also a problem with a SwiftUI implementation, but I just noticed a major issue with RevenueCat Paywalls.When you’re using an iPad (or an iPhone Pro Max in Landscape mode) and setting up the paywall with displayCloseButton: true, the paywall is either completely blank or with a split-view menu on the leftI tried a bunch of stuff to try to lock the PaywallViewController to portrait mode but none of it worked. I upload a screenshot took on an iPad Pro 11’’ running iPadOS 17 and the 2 others are from my iPhone 15 Pro Max running iOS 17.(the same bug happens on iOS 15 and 16)
I have a subscription in my app that allows the user to “redeem” 6 times each month. I keep track of that in an external database.My app uses anonymous ids only – there’s no login or accounts.How can I reliably get the same App User ID when a user opens the app, creates a subscription, or reinstalls the app? I find that it’s constantly changing.
I’ve implemented moving from paid → subscription in one of my apps and I’m not seeing the version numbers I would expect in PurchaserInfo. Here are 3 examples from Production users: "original_application_version": "1", "original_purchase_date": "2021-03-01T03:46:37Z",Version 1 of this app was never released, this should be version 2. "original_application_version": "4", "original_purchase_date": "2021-10-25T12:46:48Z",Version 4 of this app went live on 1st Feb 2022, this should also be version 2. "original_application_version": "2", "original_purchase_date": "2022-02-02T04:56:03Z",Version 2 ran from 20th Oct 2020 to 26th Jan 2022, this should be version 4.This is currently causing me to grant free access to users that shouldn’t have it and not grant free access to users that should!!Should I just be using originalPurchaseDate?
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.