Get help with your SDK implementation.
Recently active
According to Revenuecat documentation:“Subscriber attributes are only synced with RevenueCat servers on app launch, app backgrounded, and when purchases are made or restored.” However, we want to sync these attributes to RevenueCat servers without app being sent to background.As you can see from the attached pictures of code I tried, and debug logs, I could never force subscriber attributes to be synced to revenuecat servers without app being sent to background. They are also synced if there is a purchase, but after purchase event. However, we need to use them for before purchase event. Because they are missing with the initial purchase event webhook we are receiving from revenuecat.Any help would be greatly appreciated, thanks
When I try to fetch PurchaserInfo in flutter application. getting below response. Empty details. No able to find clear documentation or video to understand this. Please help.Details are belowapp type - Flutter - iOS version. Getting this error while running on iOS simulator. Try to run below code in initS method in a screen.Future<void> initPlatformState() async { Purchases.setDebugLogsEnabled(true); await Purchases.setup(<apikey>); PurchaserInfo purchaserInfo; try { await Purchases.getOfferings().then( (value) => print(value.all), ); purchaserInfo = await Purchases.getPurchaserInfo(); print(purchaserInfo.toString()); if (purchaserInfo.entitlements.all['pro'] != null) { appData.isPro = purchaserInfo.entitlements.all['pro'].isActive; } else { appData.isPro = false; } } on PlatformException catch (e) { print(e); } print('#### is user pro? ${appData.isPro}'); } PurchaserInfo{entitlements: Ent
Hi. There are groups in my app and the groups have a couple of members. If one of them pays for subscription, I change the group status and all the members in group can access premium contents. Can I initialize the ‘group id’ instead of user id (firebase auth uid) ? Is it a good practice? Do I have to use aliases?My code: await Purchases.setup(_api_key, appUserId: group.id);
Hi,I followed your tutorial to convert our Paid app to Subscriptions - https://www.revenuecat.com/blog/converting-a-paid-ios-app-to-subscriptions.In sandbox mode everything works as expected, but in production it seems that ‘CompatibilityAccessManager’ cannot convert old users without reopening the app. So my guess is that ‘func isActive(entitlement: String, result: @escaping ((Bool, Purchases.PurchaserInfo?) -> Void))’works only after some delay or 2nd time in production.I configure entitlements on ‘appDidFinishLaunch’ to grand access with this method:‘func configure(entitlements: [BackwardsCompatibilityEntitlement], completion: ((Purchases.PurchaserInfo?) -> Void)? = nil)’. Also I set ‘PurchasesDelegate’ to catch updates and configure UI.When should I check ‘isActive’ state with CompatibilityAccessManager? Can I rely on ‘PurchasesDelegate’ or it’s better to use some timers to recheck again ‘isActive’ state?Can we test this problem on production with promo-codes?
Hi allI am using revenue cat in my app, And I configure my products and I set up the localization for them,However when I get my product they return always in english local, How I can change the local I want. I am using flutter SDK
I have set up various products on play store and am able to fetch them successful via the Purchases.sharedInstance.getOfferingsWith function. Some of my products have introductory pricing and/or free trials. I have tried testing this functionality and it seems to work. The problem I am running into now is if I have a user that has made use of the free trial or intro pricing for the subscription, cancels the subscription, and then wants to resubscribe I don’t appear to have a way to tell that the user is not longer eligible for intro pricing or free trials. The only way to tell is only after the user has started to go through the play store billing flow, but I need to display the correct information about the product in my app’s UI.
My IAP Promotions were being held because my binary “did not include the SKPaymentTransactionObserver method” I haven’t seen anything like this before. I had presumed that this would be included in the Purchases package. Am I missing something, or did Apple? Thanks
Hi there.Can two different users subscribe from the same device?
Hi there.Can I edit user's “Aliases"?
As title says, getting "There was a credentials issue." on android after 72+ hours. I am using `"react-native-purchases": "^4.2.0"`. Followed this guide https://docs.revenuecat.com/docs/creating-play-service-credentials#2-create-service-account to setup service account. Subscription purchase goes through (and buying the same 2nd time Google says it is already purchased, but when RevenueCat tries to validate recipe, it says: ```07-23 11:59:32.855 32097 3011 D [Purchases] - DEBUG: ℹ️ API request started: POST /receipts07-23 11:59:32.857 32097 3011 D [Purchases] - DEBUG: ℹ️ API request completed with status: POST /receipts 50307-23 11:59:32.858 32097 3011 E [Purchases] - ERROR: 🤖‼️ There was a credentials issue. Check the underlying error for more details.``` How should I solve this?
We’re trying to display the duration of a subscription using Swift and the IOS SDK but the locale isn’t honored and the duration is always return in english, e.g. “1 Year” instead of “1 Jahr” for german with “de” locale. Does anyone have the same issue?We’re trying to access the localized duration like so:package.product.subscriptionPeriod?.durationTitle.localizedLowercaseAny tipps?
What is best practice for using Revenuecat Public API keys in Xcode? Are they 'public enough' to just use in source files?
A common issue in my app has been that 1: The customer got charged2: The purchase does not reach RevenueCat3: The customer reaches out to support.4: I ask them to restore purchases and everything is synced correctly. I did read the article here: But it doesn’t contain much details on how to detect the error. I also reached out to support about this issue and got a pretty unhelpful response from support (and did not get any comment on my follow up emails).“Restoring transactions is our recommendation here. Unfortunately Apple and Google's in-app purchase process makes this a necessity. Beyond that, we don't have any general recommendations.…... Are users are complaining about not getting an entitlement after purchasing? Maybe an action item here is to show UI recommending the user to restore purchases if no entitlements are detected after a purchase. You can get creative here but outside of restoring purchases there's not much else to do..”Is there a way to detect if the user purchased,
As the title suggests, I am having trouble purchasing a non-renewable product on my app.Here is an overview of my current setup:Flutter app (with products that can be purchased via app store or play store) Web app (with the same products that can be purchased via Stripe) Server (acts as the backend, is used for authenticating users on login)The non-renewable product is specific to each user. In other words, if user A logs on to the app and purchases the product, then any privileges associated with that non-renewable product will be granted to user A. Then, if user A logs out of their account and user B logs on to the app using their own account on the same device, user B should not have access to those privileges. In order to test the scenario mentioned above on my Flutter app, these are the steps I took:Log on to app using account A Purchase non-renewable product Verify that privileges are granted Log out of app Log on to app using account B Purchase non-renewable product Verify that
Hi, I’m new to RevenueCat and I’m in the process of refactoring a piece of code using the ‘allowSharingAppStoreAccount’ function. The documentation says:allowSharingAppStoreAccountDEPRECATEDConfigure behavior through the RevenueCat dashboard instead. I’ve looked everywhere in the dashboard, but can’t find any setting that would seem to relate to this?Also, I’m unsure exactly what this function does: is it for instance in case someone creates several accounts in the app with, say, different email addresses, but has a single App Store account? Thanks to anyone who takes the time to help!
Hey,I’m using react-native-purchases library and found some issue in Xcode logs. Every time initialise my app is initialised I send identifiers using:useEffect(() => { Purchases.collectDeviceIdentifiers()}, [])RevenueCat is returning error and complaining that IDFV cannot be modified. Am I doing something incorrectly? Below I’m also attaching log. Thank you
I’m trying out RevenueCat on my Ionic/Vue app. I see there are installation docs for Angular and React but not for Vue. Has anyone went through the install/configure process for Ionic and Vue? Or are there additional docs or blogs out there that could assist? Thanks.
Hi guys,I complete setup for product and introductory offers for it on AppStore connect. Now I check eligibility for new user (by checkTrialOrIntroductoryPriceEligibility), and completion block return dictionary with eligibility statuses and associated products. My problem is that status for all products is “Not eligible for trial or introductory price.” Why SDK return wrong status?
I’m following the supplied examples and was able to list packages and buy one product. Although the process do not reach the end because of a raised error, but the error is very general, and not clear at all. Also it does not have any error code as it was supposed to according to the docs here (https://docs.revenuecat.com/docs/errors#android-errors).My Code:try { const offerings = await Purchases.getOfferings(); if (offerings.current.lifetime !== null) { const currentOffering = offerings.current.lifetime; const { purchaserInfo, productIdentifier } = await Purchases.purchasePackage(currentOffering); if (typeof purchaserInfo.entitlements.active[ENTITLEMENT_ID] !== 'undefined') { console.log("Purchase Success"); } }} catch (e) { if (!e.userCancelled) { console.log(e); }}Let me be clear that the native android purchase popup is correctly shown int the device (real device, not simulator), and the process is succeed by Google.The error object returned is simply this:[Error: There is a
Using RevenueCat for Unity, I am receiving json return values from RC in response to GetOfferings, RestorePurchases, etc. They usually come in the form of a PurchaserInfo object. I can’t find any documentation anywhere on the exact details of what is in this object.Specifically the date values look like this:"originalPurchaseDate":1626733276,"latestPurchaseDate":1626733275EDIT: Ohhh, these Ints are just the values shown by the XCode debugger, in C# the object contains dates in DateTime type. I was looking at the raw json data and wondering what those date numbers stood for. Still trying to find in-depth docs for the C# Type PurchaserInfo, what all is in it and how it behaves.What are these integers and how does one make them into a date? Does any documentation exist detailing the return values from RC calls?Thanks!
Background: In my flutter app it is possible for a user to sign out and another user to sign in without restarting the app. To support this feature the app calls Purchases.init whenever a user logs in. If the transition is non-sub to sub this works as expected IE the latter user sees their subscription. But this does not work if transition is sub to non-sub. In this case RC fails to update to non-sub and the non-sub user appears to have a subscription until they restart the app and the sub is gone.Fix: reset all data when Purchase.init is called.
I have followed all the steps for integration with react native to fetch subscription from google play. However the getOfferings method always returns the following{"current":null,"all":{}}Would appreciate some help. P.S. I have created subscription in Google Play Store and Revenuecat both
NSInvalidArgumentException *** -[__NSCFConstantString stringByAppendingString:]: nil argument This class of crashes occurs when the Purchases SDK is unable to find certain keys in NSUserDefaults, usually due to clearing NSUserDefaults. The Purchases SDK uses NSUserDefaults to store information. By default, standardUserDefaults are used, but you can configure a different instance of NSUserDefaults. To do this, set the userDefaults parameter in configure:guard let revenueCatUserDefaults = UserDefaults.init(suiteName: "com.myapp.revenuecat") else { fatalError("can't create user defaults for RevenueCat domain")}Purchases.configure(withAPIKey: <your-api-key-here>, appUserID: <the-app-user-ID>, observerMode: <observer-mode>, userDefaults: revenueCatUserDefaults) NSInternalInconsistencyException after clearing NSUserDefaults The Purchases SDK uses NSUserDefaults to store information. By default, standardUserDefaults
Logs for the Flutter SDK will appear in Xcode and Android Studio rather than in the standard Flutter logs.
Check out our new and improved walkthrough guide! If you're still testing in sandbox, it's most likely a configuration issue that's preventing the products from being retrieved from Apple/Google. Your product identifiers are set in RevenueCat, but the actual products that your users purchase can only be retrieved directly from Apple/Google. Because this communication happens between your app and the stores, RevenueCat doesn't have any visibility into the API requests, however there are some common requirements to go through.iOS and AndroidThe product identifier set in RevenueCat matches exactly with the store You're testing on a physical device and not a simulator The bundle ID in Xcode [iOS] or package name [Google/Amazon] match what's in App Store Connect or Google Play/Amazon Developer console. If you have both development and production environments for your app, be sure to double check you are using the correct bundle IDs [iOS] or package names [Google/Amazon]. You’ve set the pro
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.