Discussion and help from anything related to RevenueCat.
Recently active
Hey! I’m getting rejections from Apple due to the fact that products are not loaded on the paywall during their review. In the logs I see that revenuecat sdk returns “SKProductsRequest took too long to complete” after a very long timeout. And I’m not successful in reproducing this behaviour locally or with any other test devices. I’m using React Native and what I do in the code is simply call `await Purchases.getOfferings();` and using `7.6.0` version of the library. I don’t have any additional logs or information since SDK only throws this error. Any advice on how to debug or resolve this?
I think a webhook for entitlement changes would be really useful for us.Our particular situation is the following. We are migrating the old subscriptions to RevenueCat entitlements and we use the syncPurchases method which works great and RevenueCat users get the right new entitlements. However, our backend does not get notified about these entitlement changes and doesn’t update our users in the database.Our entitlements can get activated by purchasing one of several subscription products so I believe it’s much cleaner for the backend just to listen to entitlement changes than to listen for subscription changes and have extra logic to map subscriptions to entitlements. My wish is for the backend to only know about entitlements. And the whole mapping of susbcription to entitlements to be done only in RevenueCat.Does this make sense? Am I missing something?
I keep getting this error in my react nativeCannot read property 'setupPurchases' of nulI am running react-native with expo bare workflow and running development build but i keep getting that error. This is my code below in App.tsx useEffect(() => { Purchases.setLogLevel(LOG_LEVEL.VERBOSE); let apiKey = ""; if (isIOS) { apiKey = REVENUECAT_APPLE_API_KEY; } else if (isAndroid) { apiKey = REVENUECAT_ANDROID_API_KEY; } if (!apiKey) { console.error("RevenueCat API key is not set"); return; } Purchases.configure({ apiKey:apiKey }); }, []); I am sure that the api key is being referenced properly and I have also tried upgrading and downgrading the versions of react-native-purchases but i still keep getting this error. Please let me know how to resolve this issue. I have also checked other forums for this issue but still couldn’t find a solution for this. I am currently using "react-native-purchases": "^8.1.0",
ios17.4, revenuecat 5.00, swiftui, sandboxI’m using the generated PaywallView, which works great BTW. The purchase works, but the the callbacks never get called. I put break points in and they aren’t triggered and the logging doesn’t show up.I get the “You’re all set.” from Xcode and the delegate gets called.Is there something I’m missing about how this works? thanks
I have a two phase website that I am building… Say I launch my website and I start charging $3.99 a month - 6 months later I roll out the second phase of my website and want to start charging $6.99 only to those who want to access the Phase two section of my site. Could this work?
Hello!For users who are elligible for a subscription introductory offer, we want to display some sort of promotion. The docs show how we can use the subscriptionOptions property to check for free trial or intro offer phases. However, as stated in the SDK reference, subscriptionOptions is null for Amazon builds. How can we check elligibility on Amazon builds? Is there an alternative way? We have customers on FireTV and it would be a shame if we can’t promote our new subscriptions to them.
I’m trying to implment RevenueCat for the first time, but I have this error on npx expo or npx expo run ios.
I keep getting this error in my react native[TypeError: Cannot read property 'setupPurchases' of null]I am running react-native with expo bare workflow and running development build but i keep getting that error. This is my code below in App.tsx useEffect(() => { Purchases.setLogLevel(LOG_LEVEL.VERBOSE); let apiKey = ""; if (isIOS) { apiKey = REVENUECAT_APPLE_API_KEY; } else if (isAndroid) { apiKey = REVENUECAT_ANDROID_API_KEY; } if (!apiKey) { console.error("RevenueCat API key is not set"); return; } Purchases.configure({ apiKey:apiKey }); }, []); I am sure that the api key is being referenced properly and I have also tried upgrading and downgrading the versions of react-native-purchases but i still keep getting this error. Please let me know how to resolve this issue. I have also checked other forums for this issue but still couldn’t find a solution for this. I am currently using "react-native-purchases": "^8.1.0",
I have issue with buying different subscriptions for different users(different user ID’s) with same apple Id.Getting error: 😿‼️ There is already another active subscriber using the same receipt. On dashboard I can see second purchase with first user id.Subscriptions are in different subscription groups.
I have added a `paywallFooter` to my SwiftUI screen and it seems to be working fine.However, I have noticed that the `restoreCompleted` and `restoreFailure` callbacks are not getting triggered. I have observed that the `restoreStarted` callback is getting triggered when the user clicks on the "Restore Purchase" button, but the other callbacks do not seem to be working..paywallFooter( fonts: CustomPaywallFontProvider(fontName: FontFamily.ZenMaruGothic.medium.name), purchaseCompleted: { customerInfo in // Triggers as expected }, restoreStarted: { // Triggers as expected }, restoreCompleted: { _ in // Doesn't work }, restoreFailure: { _ in // Doesn't work } ) I can see that the restore logic is successful based on the console log, but nothing appears on the screen upon completion, resulting in a poor experience for customers.Could you please help me?
I want to implement offer codes in my app. This requires using In-App Purchase Key for ios app. I added that key during app setup some time ago and everything was fine, no warnings. 2 months ago I received email regarding that api key should be updated. I generated new key and added to ios app, but had Credentials need attention warning. I tried to do this one more time today and have the same issue. I followed the same steps as previously (during initial setup that was successful). I added P8 key file from App Store Connect, Key ID and Issuer ID and the only issue I have is that warning.
Hello,Currently we are trying to obtain purchase receipts (or any required data to do receipt validation) in order to forward the event and keep track of IAPs on Game Analytics (it’s not an anlaytics tool you are seamlessly supporting atm).Is there any way we can obtain this receipts so we can send the IAP events to GA? We are using RevenueCat Unity SDK.Thanks!
It would be great if we were able to choose user properties - including our own, custom added ones - for segmenting the charts. For example, we have an onboarding question that asks “where did you hear about us” to allow us to understand our funnels. We store it in the `heard_about_us` user property. It would be great if we could segment charts by that.
hi, i use flutter with the latest packages versions. I get the following message: but i have configured a paywall: what could be wrong? i already run flutter clean and reinstalled the app.
Hello,I am trying to add Revenue cat to my IOS flutter app using this package: https://pub.dev/packages/purchases_flutterAfter i make a purchase with sandbox and the screens show done(in picture 2), I got stuck in the payment screen, even i re-enter my credentials and pay again the app keeps showing me tha payment screen over and over (i got stuck in this function: Purchases.purchaseStoreProduct it does not return any CustomerInfo even though I paid and the ios screen shows done.).I checked snadbox in revenue cat dashboard but all of my payment did not get persisted.Can someone help me, and thanks in advace.Here is my code(Picture 1):
In apps that sell consumables items (e.g. gems), from what I understand, it’s necessary to provide a server to track the gem balance for a particular user. I’m not clear on what the requirements are for the origin of that user. Is there a way to avoid creating auth flows in the mobile app and rely upon RevenueCat to coordinate the various anonymous IDs associated with the Apple ID? Can this work between app deletes and re-installs? In summary: Is there a way to track consumables (and the their balances) between app re-installs without needing to implement auth in the client. Thanks!
We get a fair number customer support messages that state something along the lines of “The app forgot that I have premium access and I had to click restore purchases.” We store subscription status to a persistent state in redux so it is confusing to us where they may be losing access to their subscriber benefits. Have other apps dealt with this? Are there common race conditions on startup that can lead to this. Anecdotally it seems to happen a lot with family sharing. Sometimes it’s user error (user signs in once, and then accidentally creates a new anonymous account). Looking for common patterns we may be handling incorrectly.Is it common for apps to get customer support requests like these?
I’m developing a subscription-based app where users only need to pay on one device (including Android, iOS, and web) to use it on all devices.From previous attempts, I’ve learned that using only Stripe webhooks, when I create a subscription in Stripe (in ), if there is no subscription data for that customer in RevenueCat, it will not send the customer data and the billing record to RevenueCat (I hope I’m understanding this correctly). Therefore, I decided to additionally use the API (not sure if this is the best approach, if there are other suggestions please let me know, thank you).After creating a subscription in Stripe (real mode not test mode), I sent the information to RevenueCat using the API v1 /receipts/, and the transaction with that ID does appear in Recent Transactions. However, when I receive customer information via the API or in Unity, this subscription information does not appear in the customerinfo. Also, on the web, this transaction has not been assigned an entitlement
Hello everyone!Everything works perfectly in Development build, but nothing related to Purchases SDK works during Production build. Here’s a snippet of code which I’ll use as an exampleasync function checkPremium() { try { if (Platform.OS == "android") { Purchases.configure({ apiKey: revenuecat.google }); } else { Purchases.configure({ apiKey: revenuecat.apple }); } const customerInfo = await Purchases.getCustomerInfo(); alert("customerInfo: ", customerInfo); return typeof customerInfo.entitlements.active["premium"] !== "undefined"; } catch (err) { alert(JSON.stringify(err)) return undefined; } }After putting alerts in different places, it turned out I got an error at Purchases.configure part.Note that the apiKey works and is correctly passed as an argument.I tried to alert the error normally without JSON.stringify and it’s empty, same with JSON.stringify. I’m currently testing the production build through the following co
Hi,I’m currently using PaywallActivityLauncher to display the paywall in my Android application. I need to manage both the purchase state and the restoration of previous purchases. While I’ve come across methods to handle the purchase state, I haven’t found any options for managing the restoration of state.Could you provide guidance on how to handle restoring the state of purchases with PaywallActivityLauncherwhen user click the restore button.override fun onActivityResult(result: PaywallResult) { when(result){ PaywallResult.Cancelled -> Log.d("revenuecat ","Cancelled") is PaywallResult.Error -> Log.d("revenuecat ","Error") is PaywallResult.Purchased -> Log.d("revenuecat ","Purchased") }} Thank you!
I am supporting a client Flutter project that uses RevenueCat for subscription processing. Earlier this summer, planning ahead for the Google billing library deprecations, we upgraded the RC dependencies. Google itself had been warning that the app needed an update. The current in-store version uses purchases_flutter v6.29.4, and Google Play Store is content that we accomplished the upgrade as required.However, the client keeps getting emails like the below from RevenueCat suggesting that there is a problem. I do not know how RevenueCat is determining what version of the library is being used. Google’s dashboard itself says that the only active users in the last 60 days have been on the latest version of the app, although there ARE supposedly 20 devices out there somewhere that still have an old version installed. (They don’t seem to be active, if the DAU metrics are accurate.) Is there some way, within RevenueCat itself, to see why it’s sending these warnings?Google is deprecating
I'm encountering a crash on Android when trying to display the RevenueCat paywall component in my React Native app. The same component works fine on iOS, but on Android, the app crashes with the following error:java.lang.NoSuchMethodError: No static method AnimatedContent(Ljava/lang/Object;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Alignment;Ljava/lang/String;Lkotlin/jvm/functions/Function4;Landroidx/compose/runtime/Composer;II)V in class Landroidx/compose/animation/AnimatedContentKt; or its super classes Steps to Reproduce:Implement the RevenueCat paywall component in the app. import React, { useEffect, useState } from 'react';import { View, ActivityIndicator, Text } from 'react-native';import Purchases from 'react-native-purchases';import RevenueCatUI from 'react-native-purchases-ui';const PayWallScreen = ({ navigation, route, setLoading }) => { const [offerings, setOfferings] = useState(null); const [loading, setLoadingState] = useState(
Hi everyone,I’m currently experiencing a significant issue with subscription update events (customer.subscription.updated) from Stripe being delayed in syncing with RevenueCat. In some cases, it’s taken over a day for these updates to appear on the RevenueCat dashboard after the customer has been charged.This delay is causing major problems, as our users are paying for subscriptions but are not being granted access promptly due to the delayed data sync. Since we rely on RevenueCat as the source of truth for managing subscriptions, this issue is affecting a lot of our customers.Has anyone else encountered this problem? If so, were you able to find a solution or workaround? I’d appreciate any advice or insight on how to resolve this issue quickly.Thanks in advance for your help!
I would like to know that, is there any case I could not get the subscription details through api even if I have an active entitlement.It was working fine this morning. Since 2pm IST, I am not receiving their entitlements in the revenuecat subscribers response
I'm working on an app that offers different one-time payment products.I’ve got a product (remove_ads) tied to an "entitlement" that removes ads from the app forever. I tested it, and it’s working great with the code:try { final premiumProduct = _products?.firstWhere((element) => element.identifier == 'remove_ads'); if (premiumProduct == null) return false; final customerInfo = await Purchases.purchaseStoreProduct(premiumProduct); if (customerInfo.entitlements.all["remove_ads"]?.isActive ?? false) { _isPremium = true; return true; } else { return false; } } catch (e) { return false; }Now, I need to add new products (coins_100, coins_500, and coins_1000) that aren’t linked to any "entitlement." I just want them to be consumed immediately after purchase using Purchases.purchaseStoreProduct.Future<bool> buyProduct(StoreProduct product) async { try { final customerInfo = await Purchases.purchaseStoreProduct(produ
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.