Discussion and help from anything related to RevenueCat.
Recently active
Hi, I’m using RevenueCat with a subscription-based iOS app. In TestFlight, I’m encountering a problem: a single Apple ID is used on two different devices, but the subscription restore isn’t working on the second device. Both devices are logged into the same Apple ID and the same RevenueCat user setup. Has anyone experienced this issue, or know what might be causing the restore to fail?
Hey everbody i got some issue. The problem is “Purchases.configure is not a function (it is undefined)] [Component Stack]”. I am using like this but this func returned how can i fix that ? I’am using expo@52
I get this error when deleting my products. “There are transactions in the system using this product.”Currently the products are not in any entitlemnts or offerings. I saw in the community that I need to delete sandbox customers, but when I press the delete sandbox customers button, no sandbox customers are deleted.
Hi team,We would like to ask for clarification on finishing transactions for consumables on iOS.RevenueCat currently finishes transactions automatically. It is left to integrators to ensure the purchase is honoured, for example through CustomerInfo.This is in direct contradiction to Apple’s guidelines, which state that the transaction should only be finished if all content has been delivered to the user first.As of this writing, and iOS SDK 5.14.4, it is our understanding that any app using RC for non-subscriptions is likely in violation of Apple guidelines.I wonder if something like a flag passed by integrators that influences the shouldFinish logic might solve this by ensuring we have provided users with the corresponding content?As a follow-up topic, with more and more apps offering a mix of renewing subscriptions, consumables, non-consumable, and non-renewing subscriptions, I second some of RC’s staff comments on the PR thread that more granular access may be provided in the futur
Hello RevenueCat Team,I hope this message finds you well. I wanted to confirm if RevenueCat's receipt validation currently supports the SHA-256 algorithm, as Apple is transitioning away from the SHA-1 intermediate certificate for App Store receipts starting January 24, 2025. https://developer.apple.com/news/upcoming-requirements/?id=01242025aCould you please let me know if RevenueCat's system is already compatible with this change, or if there are any updates required on our end to ensure a seamless transition?Thank you for your assistance.Best regards,
I set up the paywall and successfully bought a subscription. In revenue cat dashboard I can see it being active but i can’t see it in the manage subscription settings on my device.I’m not using a sandbox account as I’m using my own personal device to test and I haven’t logged out from it. But the purchase says that it’s a test one, i guess that’s because i’m installing the app via xcode? Any ideas as to why i can’t see it in the subscriptions list?And also in this post it says that the subscriptions durations are greatly reduced but i see the subscription that i’ve made will be renewed after a year, like normal. Is that because i haven’t made the purchase through a sandbox account? Thank you
This issue happens when i do the following:Create an anonymous account with firebase Login with revenuecat with the newly created firebase account id Purchase a subscription Then upgrade the account from anonymous to email & afterwards logout ( I am logging out revenue cat with Pruchaseses.logOut() as well as fibrease sign out Now when trying to purchase a new anonymous account gets created and the new id is also firstly being set with Puchases.logIn(). When trying to purchase a package google play shows me an error dialog with error “PG-GEMF-01”. From the logs I can see the following: 🤖‼️ BillingWrapper purchases failed to update: DebugMessage: Account identifiers don't match the previous subscription.. ErrorCode: DEVELOPER_ERROR.null🤖‼️ PurchasesError(code=PurchaseInvalidError, underlyingErrorMessage=Error updating purchases. DebugMessage: Account identifiers don't match the previous subscription.. ErrorCode: DEVELOPER_ERROR., message='One or more of the arguments provided are
Hi All, I’m encountering this error, while attempting to test an in-app purchase in sandbox environment: 😿‼️ The receipt is not valid.API request failed: POST /v1/receipts: The receipt is not valid.I’m aware others have encountered this issue before and that the problem was on Apple’s side. Anybody else encountering the same issue now? It seems not working since last evening. Could it be a problem from my side?I’m wondering what should I do? Should I just wait? Salvo
I can’t seem to find my flaw that just happened documented (looked here). What I think I have happened in production is this flow, but data tells a slight different story.The revenue cat dashboard for the customer has this order of events:But the events that came via the webhook are in this order:These 2 don’t seem to match exactly. How do I tell what happened and if the customer should or not have entitlements at the moment?Also this means that after an EXPIRATION event, it is possible to receive a RENEWAL event for Play Store as well? The documentation seems to say that this is only for iOS and that Google will always send INITIAL_PURCHASE after an EXPIRATION happened (documented here).Should I always grant back entitlements to a user when I received a RENEWAL regardless of anything else?
How can ı. get order id in flutter for android
We have an Android and IOS app with a “Pro” subscription product with a monthly and a yearly billing cycle.For now, I’ll talk through the IOS setup: We have a Subscription Group called Pro and within it, we have the Subscription Products Monthly and Yearly We have currently configured an introductory offer for Monthly: 1 week free trial Say we also want to configure a 50% discount for Monthly, so: New user gets a 1 week free trial Then 50% discount for 6 months Then regular price According to Apple docs, it sounds like this this isn’t possible:Although you can create an introductory offer for each subscription product in App Store Connect, each person is only eligible to redeem one introductory offer per subscription group.andApp Store Connect allows you to set an introductory offer for each subscription product in App Store Connect. You can have multiple offers in each subscription group. New and returning customers are only eligible to use one introductory offer per subscrip
Hello ! 🙂We recently implemented the ‘Data Export Version 5’ to replicate key graphs in our Metabase data visualization tool. While we've successfully recreated Revenue and LTV graphs cohorted by the date of first purchase—using data consistent with RevenueCat—there’s an issue when attempting to cohort by the installation date (using the first_seen_time data).Could you confirm whether RevenueCat's graphs for installation date cohorts are indeed based on the first_seen_time field? It’s puzzling why our data doesn’t align, and I’d appreciate any insights you might have.Thank you so much for your help!Best regards,Louis
Recently I uploaded a new android app under different package name, from com.name.app to com.name. I have uploaded the new bundle to Play Store and changing it on RevenueCat dashboard, however when fetching the offerings using RevenueCat SDK, the old package can still get the offerings whereas the new package doesn’t. Am I missing a step here?
Hey guys,I have only one offering and one paywall, when launching the paywall on ios, it is working well and the ui matched the paywall, but on Anroid the packages and prices are fetched well but, the paywall ui is really than on only paywall I’m using this for android:implementation 'com.revenuecat.purchases:purchases:7.1.0'implementation 'com.revenuecat.purchases:purchases-ui:7.1.0' private lateinit var paywallLauncher: PaywallActivityLauncherpaywallLauncher = PaywallActivityLauncher(this, object : PaywallResultHandler {override fun onActivityResult(result: PaywallResult) { fun showPaywall() {paywallLauncher.launch()} Any help?Thanks!
useEffect(() => { const init = async () => { try { if (Platform.OS === "android") { await Purchases.configure({ apiKey: APIKeys.android }); } else { await Purchases.configure({ apiKey: APIKeys.ios }); } Purchases.setLogLevel(LOG_LEVEL.DEBUG); Purchases.addCustomerInfoUpdateListener((customerInfo) => { console.log( "CustomerInfo update received:", JSON.stringify(customerInfo, null, 2) ); updateCustomerInfo(customerInfo); }); await loadOfferings(); } catch (error) { console.error("Error initializing Purchases:", error); } finally { setLoading(false); } }; init(); // Cleanup function return () => { // Remove the listener when component unmounts Purchases.removeCustomerInfoUpdateListener(); }; }, []); // load offerings a user can purchase const loadOfferings = async () => { try { cons
Presenting paywall manually so can hide the close button. PaywallView(displayCloseButton: false)i just can’t find any documentation regarding this in the SDK. specifically its modifiers such as .onRestoreCompletedcurrently in the code block after restore I dismiss the paywall. Unfortunately the restore is successful if user made a legacy purchase. App has moved to subscription so legacy purchases need to be ignored and prevent from dismissing paywall. Only the subscription purchases should dismiss. please help me locate the documentation for .onRestoreCompleted View modifier
`[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-offerings-empty]`Hello Fam,I am building my first app with Expo and RevenueCat I am hitting a wall here. I have read the docs related to this issue and other posts. I have doubled check that productIds match. I am lost here. I have called Apple to see if there is something I am missing but that didn’t help. The RevenueCat team is out on an extended holiday so no help there. Thus, I am looking to you :)Is there a solution to this problem?
I list all the products I have added. After listing, I select the package I want to subscribe to. Then I need to sign in to my iCloud account. I enter my information, but I receive the following error User canceled the purchaseIt doesn't open any pop-ups. I am using Expo SDK52react-native-purchase 8.0.0I tried to on simulator. Also I didn’t see any sandbox account in my settings app store section. { "name": "routine-craft", "version": "1.0.0", "main": "expo/AppEntry.js", "scripts": { "start": "expo start", "android": "expo start --android", "ios": "expo start --ios", "web": "expo start --web" }, "dependencies": { "@amplitude/analytics-react-native": "^1.4.11", "@eva-design/eva": "^2.2.0", "@gorhom/bottom-sheet": "4.4.7", "@react-native-async-storage/async-storage": "1.23.1", "@react-native-community/datetimepicker": "8.2.0", "@react-navigation/bottom-tabs": "^6.5.11", "@react-navigation/elements": "^1.3.21", "@react-navigation/native": "^6.1.9
I’m using Expo and implementing RevenueCat on my app for the first time, and it’s been frustrating. Even though I followed every step in the documentations, it seems like something’s wrong, but the worst part is that there’s no debug. When I try to console the offerings for the app, all I receive is this message: “Error: There is an issue with your configuration. Check the underlying error for more details.” And nothing else. I have absolute no idea of what to do. Inumerous YouTube tutorials, articles, the documentation, NOTHING seems to work. What can I do???
Hello there!We’ve been struggling with a user that has and loses its entitlements from time to time, with no reason. To fix it, we built our RevenueCat integration from scratch, because we upgraded different major versions too easily… and well, it sounded we were logging in too much, restoring purchases too much, etc.So during the debugging we arrived to this error:There was an unknown backend error. Error creating subscriber alias. Alias limit reached. (7255)In this GitHub issue in the iOS SDK we saw that the root problem is that you changed something in your backend that made a user not have more than 50 aliases.I don’t want to discuss if it’s a good decision or not, because maybe it is, but what should we do in case someone logs in, restores purchases, logs out, restores purchases, logs in, restores purchases, logs out, restore purchases… a lot of times? Eventually that user will create 50 aliases, but that’s a fair behavior, right?Or just a person that downloads the app 25 times, r
Hello there, Just a quick one, i’m using Thunkable and I linked it to RevenueCat. In the past i had issues acknowledging Google Play’s purchases and subscriptions, does RevenueCat does it automatically? Thank you very much
As far as I can see, there is no property or method to directly get the monthly price of an annual subscription in Unity.I found this thread from a month ago with the same issue, but everything discussed in there only applies for the native Android and iOS SDKs: How do we calculate this in Unity and show the currency symbol in the correct position (some countries have it before and same after the price)?
RevenueCat project setting, I keep entering my In-app purchase key configuration but it does not allow me to select “save changes” and when I come back to the same setting page, I don’t see my entry in this section persisting. Has anyone countered this?
Currently, I am not a RevenueCat user.I use pure StoreKit2, to handle subscription and in-app purchase, without any issue.I also do not have a server, to handle any purchase related thingy.However, due to the frustrated high approved refund rate, I am interested in RevenueCat’s offering - https://www.revenuecat.com/blog/company/handle-apple-refund-requests-automatically/But, I wish to keep my existing StoreKit2 untouched, because they are working without issue.My sole goal is to able to handle CONSUMPTION_REQUEST, to reduce refund rate. I am only concerning on the upcoming new users, if we ever integrating RevenueCat. I am not concerning existing users. Hence, can I skip this step, as it seems complicated to me - https://www.revenuecat.com/docs/migrating-to-revenuecat/migrating-existing-subscriptions. Is it as simple as having this line of code? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsK
HelloI have integrated in-app purchases for the application via Renevuecat with React Native Expo. In debug mode, my renevuecat packages are coming without any problems on the simulator and I can buy them. I am getting the packages using getOffering(). This issue is present on both Android and iOS.But when I publish my mobile application to production, the packages are not coming. Can you help me with this?Expo : 51.0.38React Native : 0.74.5React:18.2.0Thanks in advance
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.