Get help with your SDK implementation.
Recently active
I have a page withSingleChildScrollView where content is loaded. It’s infinite scroll view where data is dynamically added. For a given situation I would like to add PaywallFooter at the end of the page if the condition is not met. Is it possible? I am using flutter purchases_flutter: ^8.1.0purchases_ui_flutter: ^8.1.0
Flutter: When I used the sdk RevenueCat version 6.23.0 it worked perfectly, I have updated to the latest 8.1.0 and it does not show me the paywall, it shows me error 23, maybe the methods are different, I share how I call it.in the main.dart I initialize it and check if it is a subscriber.Future<void> initRevenueCat(BuildContext context) async {await Purchases.setDebugLogsEnabled(true);PurchasesConfiguration configuration;if (Platform.isAndroid) {configuration = PurchasesConfiguration('goog_xxxxxxxx');await Purchases.configure(configuration);}else if (Platform.isIOS) {configuration = PurchasesConfiguration('appl_xxxxxxxx);await Purchases.configure(configuration);}bool esPro = false;try { CustomerInfo customerInfo = await Purchases.getCustomerInfo(); List<String> entitlementIdentifiers = ["Monthly", "Annual", "Six Months"]; for (String id in entitlementIdentifiers) { if (customerInfo.entitlements.all[id]?.isActive == true) { esPro = true; break; } else { esPro = false; } }
How to detect automatically when InAppPurchase subscription expire or is cancelled by user ?My app show some feature on the home page and I want to display them only for subscribed users.If the user cancel the subscription in an other device how to detect that ?Firebase claims seems to not be automatically updated...I’m using flutter.
Hi there 👋🏻I am trying to use SubscriptionStoreView(for: offering) that is mentioned here:https://www.revenuecat.com/blog/engineering/storekit-views-guide-paywall-swift-ui/#h-using-with-revenuecat But I am not able to find this view, although I have imported both RevenueCatUI and RevenueCat.What am I missing?
Can someone help me with this ? I have attached two versions, one on my iphone 13 pro with ios 18 and another one on my old iphone 7+ with ios 15. I don’t understand how to control the font size and wraping that is happening on the older iOS version
I am trying to update my Android app but now getting following error on play store console Your app currently uses Play Billing Library version AIDL and must update to at least version 5.2.1 to make use of the latest monetization features on Google Play And its blocking me to create a release. Today I upgraded revenuecat sdk to ```implementation 'com.revenuecat.purchases:purchases:7.0.0'```And I have also added ```implementation "com.android.billingclient:billing:7.0.0"``` But Google play console not allowing me to create release. I am not sure what to do here. would appreciate any help. Thanks
Hi RevenueCat, I would appreciate some help here. I am developing an app in SwiftUI for iOS and using the RevenueCatUI PaywallView to display offers. When the paywall presents itself to the user, I would like to verify if the user has made an account with the app before allowing the purchase.Can you advise on how to make this change without altering the package dependency itself? I would ideally like to make an extension of the PayWallView or a superclass “CustomPayWallView” with custom functionality, but it is a lot of code to read through and edit.I understand if this is a big ask, but any pointing in the right direction would be a great help. Thank you! Edit: I would also appreciate a link to the PayWallView API Reference, I can’t seem to find one. Thanks!
In the apple I configured - introductory offer - “$17.99 every month for the first 3 months”How in the paywall I can get this “3 month” or length of introductory period?{{ sub_offer_price }} for first {{ sub_offer_duration } return$17.99 for first 1 month
Hey,Recently I switched my unlock check from look for entitlements in `active`, to looking in `activeInCurrentEnvironment`, in order to prevent people unlocking Pro in TestFlight and carrying it over to production.This went smoothly for them majority of users, but a couple of users have reported losing access to their Pro status, despite having active subscriptions/production lifetime purchases. I got one user to send through a recording of his error, and the purchase flow went as follows:Launches app, I call `getCustomerInfo` with a policy of `notStaleCachedOrFetched`, I then pass that to a function call `handlePurchaseInfo`, which determines the user does not have any active entitlements. They open the Pestle Pro screen, which determines they are ineligible for a trial. They hit ‘Restore Purchases’, which triggers the RevenueCat restore purchases flow, and I pass the result to the same `handlePurchaseInfo` method from before. In this case, `activeInCurrentEnvironment` is empty, so I
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
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?
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!
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!
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
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(
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.