Get help with your SDK implementation.
Recently active
In my Android app I have a hard paywall and I’m getting problems with app review.Given the hard paywall there is a requirement that the user is logged in to Google Play on the device, there is no login in the app itself. App review did not like this even though I display a descriptive error when a ConfigurationError occurs, saying that they need to login to a Google account on device. They only see this as a crash/non-working app.Even worse, the app is only targeted for Sweden and thus requires a Google account set to the Swedish region. I have however opened this up to all markets just to try to get through app review but they don’t seem to want to login to the Google account I’ve provided in the Google Play console. Is there a built-in way to properly check if the user is signed in to Google Play. When they are not, is there a built in prompt for this I can use? If not, how is this usually handled?
I have added an offer to my currently Active and Approved subscription in app store connect. But after 1 day when I go to purchase my subscription, that 3-Day Free Trial does not show up.I have another subscription that does show it but that was added when I created it and before importing it into RC, thus RC imported it with all that info. So my question: How long does it take to reflect to users if you add an Introductory/Promotional offer to an existing live and approved subscription?
I’m liking the new Paywall builder a lot but I am facing several issues:When adding a product that is only configured on iOS the Paywall display seems to fail on android and some very ugly fallback Paywall is being displayed. If I remove the product and only include products working on both Platforms it works fine. The desired behavior would be just to leave out the not supported package instead of having the paywall fail completely. I tried to duplicate a paywall that I have created and wanted to attach it to a different offering. This does not seem to work, it appears that the offering of the original paywall gets duplicated as well. This is a big drawback, since I would then have to create every Paywall from scratch (I intend to have similar looking Paywalls throughout the app but displaying a different selection of products depending on the customer journey). Am I missing something here or is this not implemented yet? I could not find any place to detach the paywall from the offeri
As you can see below, my paywall sheet comes up with a stubborn back-navigation chevron, which is non-functional. I’m using SwiftUI and my app is a document-browser based app, which I have read causes a particularly sticky nav bar. I have a hacky way to hide it, if I want to also hide the close button as well, that relies on my black-background in the hero image.Any other ideas? .sheet(isPresented: $isShowingPaywall) { PaywallView(displayCloseButton: true) .tint(.black) // horrible hack to hide back chevron but loses dismiss button as well }
Hey Everyone, The Problem: Paywall looks great, is super easy to implement, BUT seems easy to bypassThe issue is when you runContentView() .presentPaywallIfNeeded(requiredEntitlementIdentifier: "standard")you get a great UI on the iOS paywall, but the user can swipe down and go to ContentView() for free, or press the ‘close button’ x in the upper right hand corner and get to the ContentView for free. This issue was raised here a few months ago, but there does not seem to be a solution yet. An Idea of Workaround, but it’s not there yetOne way I like to add logic goes like thisif subscriptionManager.isSubscribed || subscriptionManager.isOnIntroductoryOffer { ContentView() } else { PaywallView() //But seems to have no way to send this to ContentView }above you can see that I just to the logical check myself. But the issue then is that even if I call the PaywallView() itself, you do get th
I am have flutter app(ios/android), usinng purchases-flutter 4.13.0(dev), 4.12.0(prod).The error appeared 4-5 days ago, it is in prod and dev. For android - this error does not appear every time but today very often. 4-5 days ago it was workingPlatformException(10, Error performing request., {code: 10, message: Error performing request., readableErrorCode: NetworkError, readable_error_code: NetworkError, underlyingErrorMessage: Unable to resolve host "api.revenuecat.com": No address associated with hostname}, null)For iOS - I tried this code final purchaserInfo = await Purchases.getCustomerInfo();and it is never completedit is logs: [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request POST receipts[Purchases] - DEBUG: ℹ️ API request started: POST /v1/receipts[Purchases] - DEBUG: ℹ️ SKReceiptRefreshRequest finished[Purchases] - DEBUG: ℹ️ Loaded receipt from url file:///private/var/mobile/Containers/Data/Application/D1593594-6743-4414-BC41-E34FC5560BEE/StoreK
In the app, I have an option to let the user change the language. This is due to my demographic not actually changing the language on their phone to match their native language.Due do this, the language itself is managed by my state system, rather than the localization of the phone or other resources. This is an issue, as there do not seem to be any options to change the localization of the paywall within the code.Will I have to ditch paywalls altogether? Or is there something I am not seeing here?
I have done all setup, my subscriptions are in Ready to Submit status. I have done the required configuration on revenucat as well. I tried it on my physical deviceBut still getting the below error: ERROR: 🍎‼️ Error fetching offerings - The operation couldn’t be completed. (RevenueCat.OfferingsManager.Error error 1.)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-empty2025-03-26 19:11:36.691266+0530 pbgo_app-Stage[97115:6434967] [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). More information: https://rev.cat/why-are-offering
The new paywall feature looks amazing! Is it possible to use with capacitor (I think not but wanted to verify) and when might it be available? Any suggestions of workarounds for the interim? Thanks!
Hi, we are trying to add a close button that has a top right alignment but couldn’t figure out the right configuration in the paywall v2 builder. We could only successfully put it on the top center but we can’t seem to figure out how to make it be placed on the right. With what components can we use to make this happen? Thanks!
I want to have some primer text before displaying the paywall, the text would change depending on whether a user has already used the trial.Given this scenario: User A logs in, starts trial and subscription, we have a hook to update our platform to reflect that the user is now premium, and then user A logs out of the app after a while.User B logs into the same device, isn’t premium so sees the primer The Google account has used the trial before, which seems to be reflected in the paywall but I don’t know how we are supposed to check that same state for our primer.This answersuggests using the entitlements, which does work but not for a new user. There is a suggestion at the bottom of that page to sync purchases but we don’t want to transfer purchasing from one user to another. Really I would just like to know what does the paywall check. Do I need to fetch all the offerings, and check all the packages to see whether the products have a freeTrial subscriptionOption?
Im encountering a nasty bug that is severely messing with the functionality of my app; once a user purchased at the end of the onboarding they immediately get routed back to the welcomeScreen which is the start of the homepage. I can’t find any errors whatsoever but I feel like it has anything to do with RC. ive also enabled the debug logs but im unable to find anything. Where am I supposed to see these logs when working with FF? Any clues on how to fix this? thank you!
I am facing an issue with product identifiers in RevenueCat across different platforms.In my app, I have the same product available on both the App Store and Google Play. While I have attached the same entitlement to both, the issue is that the identifiers are different, which is making it difficult to manage on both the backend and frontend. On the App Store, the identifier is correct. On Google Play, a base plan ID is automatically appended to the identifier. Because of this, I need to handle different identifiers separately in my backend and frontend, which is causing complexity. Since the entitlement is the same, purchases are working fine, but managing separate identifiers for the same product is not ideal.Additionally, I have mapped all products to the offering for both App Store and Google Play in RevenueCat.Could you suggest an efficient way to handle this issue?
Hello,I have an issue with android where the users should click the restore purchase button for the subscruption to be applied again, I use the built in RevenueCat Paywall.is there a way for the purchase to get restored without the user have to restore it if there is an update?Thanks.
Hi!I get a platform exception when a user cancels the purchas of an in-app product. I cannot catch the exception. Physical device, product is correctly setup, afaik. Error:PlatformException (PlatformException(1, Purchase was cancelled., {code: 1, message: Purchase was cancelled., readableErrorCode: PurchaseCancelledError, readable_error_code: PurchaseCancelledError, underlyingErrorMessage: Error updating purchases. DebugMessage: . ErrorCode: USER_CANCELED., userCancelled: true}, null)) try { final customerInfo = await Purchases.purchasePackage(currentPackage!); // Check if the product was successfully purchased by verifying active subscriptions. if (customerInfo.activeSubscriptions.contains(revenueCatProduct)) { markAsPurchased(); } } on PlatformException catch (e) { bool isCancelled = false; if (e.details is Map) { final Map details = e.details as Map; if (details['userCancelled'] == true || (details['readableErrorCode']
As far as I understand, the onPurchaseError callback on the PaywallView gets called whenever any of these errors occur: https://www.revenuecat.com/docs/test-and-launch/errors#purchasing-errors. I’ve been testing this by canceling a purchase. But as far as I can tell nothing inside the function call is getting executed:onPurchaseError: (error) {log(“Hello World”);} If I look into my logs, I can see that the error was thrown correctly though: E/[Purchases] - ERROR( 4764): 🤖‼️ BillingWrapper purchases failed to update: DebugMessage: . ErrorCode: USER_CANCELED.nullE/[Purchases] - ERROR( 4764): 🤖‼️ PurchasesError(code=PurchaseCancelledError, underlyingErrorMessage=Error updating purchases. DebugMessage: . ErrorCode: USER_CANCELED., message='Purchase was cancelled.') I’m using:> purchases_flutter 8.6.1> purchases_ui_flutter 8.6.1 SIDE NOTE:Observations apply to both V1 and V2 paywalls.So far, all that I can only confidently say is that onPurchaseComplete and onRestoreComplete are wor
Hi,I will try to do my best but this issue is pretty weird but yet, REALLY important. It's related to https://github.com/RevenueCat/react-native-purchases/issues/777 and https://github.com/RevenueCat/react-native-purchases/issues/627Sometimes, for a reason I don't understand, the `login` and `setEmail`/`setPhoneNumber`/`setUserName` functions seem doing nothing. This results in unidentified users that have subscriptions not linked to our backend because the `app_user_id` will be the anonymous one and not the custom one we are using.Then, when the app is killed and opened again, the functions will work correctly (sometimes yes, sometimes no).My login function is pretty simple : const login = async (token) => { updateAuthToken(token); await storeAuthCookie(token); const user = await fetchUser(); await Purchases.logIn(user.id.toString()); await Purchases.setEmail(user.email); await Purchases.setP
Credentials need attention Valid key format The App Store Connect API credentials are not valid or do not have sufficient permissions to list apps. Make sure the key has at least the App Manager role. The App Store Connect API credentials are not valid or do not have sufficient permissions to collect information about your subscriptions. Make sure the key has at least the App Manager role. I followed these steps:Went to App Store Connect. Under “Users & Access’ > ‘Integrations’ > ‘App Store Connect API’ > ‘Team Keys’, I created a new key with ‘App Manager’ access. Downloaded the P8 key file from App Store Connect and uploaded it to RevenueCat. I’ve also double checked Key ID, Issuer ID and Vendor Number. Everything is correct. But, I’m getting the above error.Please help me resolve this problem.
Hello I was wondering if anybody could help me, i’m trying to implement subscription testing into my app and in doing so I’m following the steps on RevenueCat on how to implement the StoreKit.When doing this, it does not allow me to create a new product in my StoreKit file (Step 3: https://www.revenuecat.com/docs/test-and-launch/sandbox/apple-app-store) I’ve tried editing the JSON and that completely corrupts my project.I’m not sure what to do / how do get round or even avoid this step, if anyone can help it would be greatly appreciated.
Hi,I upgraded the SDK from version 7.6.0 to version 7.15.0, and got this message when publishing on the Google Play Store: This release includes the com.google.android.gms.permission.AD_ID permission but your declaration on Play Console says your app doesn't use advertising ID. You must update your advertising ID declaration. Our app does not include advertisings and does not use this permission, but using the SDK adds it to our manifest.Is this expected? Is there any way to avoid this?I confirmed this is caused by the SDK upgrade, as reverting back to SDK 7.6.0 solves it and allows publishing on the Play Store.Thanks!
Hello,I have an Expo app running on iOS successfully for sometime. I wanted to add Expo Metro Web but I keep getting blank screen. I think it is because of an uncaught error. Google Chrome Console says… Uncaught Error: The package 'react-native-purchases-ui' doesn't seem to be linked. Make sure: - You rebuilt the app after installing the package- You are not using Expo GoDoes anybody know how I can resolve this?Thanks..
Hello. I’ve only recently been flagged for the missing Restore button on my app.I’m experiencing the ‘Receipt Missing’ error for the restore action. I’ve been pulling my hair out for 2 days on this issue. I’m using Expo and have limited access to error logs. I’ve read EVERY existing post, github issue and document and none are helping my scenario.I’ve added the requisite code in your documentation for my react-native implementation.try { const customerInfo = await Purchases.restorePurchases(); if (Object.entries(customerInfo.entitlements.active).length > 0) { return true; } else { return false; }} catch (e) { return e}I”m testing my app on Testflight and using Sandbox accounts, and making a purchase (which has been working for over a year in RC), before trying the restore button.My Restore button displays the prompt for my sandbox account. On submit I get an error: “Error: The receipt is missing”Here’s my testing flow (as crazy the following appe
Hi, I need to check whether user is able to use the service with his current subscription and I found that there is “expires_date” in the response of the API.Is it ok to only check this field for validation? Will it be updated once refund or other intermediate stops happen?
Hello! when user make purchase new alias created, even on Webhooks there is only 1 alias and original app user id is no correctI am losing subscribers right now and getting refund because I cannot update the user as premiumPlease check screenshots I perceive that my sdk version were 5.6.0 when I update it it updated to 5.20.0 maybe that was the issue ?
We are building a cross-platform app.When trying the capacitor plugin, we are getting: Web not supported in this plugin.Is capacitor/ionic supported in iOS and Android only?
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.