Get help with anything related to RevenueCat.
Recently active
I’ve updated my subscriptions/products in Google Play and restarted my app, but RevenueCat Purchases.getOfferings() never updates with updated titles, descriptions, or pricing. How do I bust the cache to get subscription/product updates?I have a Flutter app and am running the purchases_flutter: ^3.6.0 package.
Hello,I am testing in app subscriptions in my app. Actually it’s been working really fine till today. I cancel and restart muy subscription many times to test the features. Today when i try to subscribe to app i have this message below;PurchasesError(code=PurchaseInvalidError, underlyingErrorMessage=Error updating purchases. DebugMessage: Expired Product details. Please fetch product details again and use it to retry the call.. ErrorCode: DEVELOPER_ERROR., message='One or more of the arguments provided are invalid.') I am fetching product informations correctly (like price ...etc). What should i do?
I am trying to localize Paywalls with no success.I tried to enter detailed text in Paywall setup.However, month and year words are never get translated.Actually, They are both localized inside Google and Apple stores.They show up correct once you go inside Apple or Google after clicking paywall but not on the actual paywall.So, how should I set this up?
Hello - I’ve tried to summarise our problem as concisely as possible below: Problem: How do we understand promotion code redemption & user behaviour using RevenueCat?Context: We recently ran a promotion using codes generated in App Store Connect. Users who redeemed these codes received two months free on our product. The promotion is now complete and we want to understand what behaviour was like for this cohort. e.g. How many of these users continued with us or did they churn? What’s their LTV? etc. Details: Within App Store Connect Reporting we can identify users who redeemed a code and see their ‘Subscriber ID’. Within RevenueCat we then have no method of tying users together i.e. there appears to be no common identifier across the two systems for a given user. Additionally it doesn’t appear that promotion codes sync across the two platforms i.e. when viewing an individual customer in RC, I can’t see within their history if they have utilised a promo code. Any advice appreciated
When I try to query Purchases.getOfferings it results in an errorconst getPackages = async () => { try { const offerings = await Purchases.getOfferings(); if ( offerings.current !== null && offerings.current.availablePackages.length !== 0 ) { setPackages(offerings.current.availablePackages); } } catch (e) { Alert.alert('Error getting offers', e.message); }};getPackages();What have I done so far?I have my EAS local device & simulator build with bundleIdentifier: com.myapp.dev this includes installing the RevenueCat SDK I have TestFlight App setup with my bundleIdentifier : com.myapp.production Following the Product setup Guide, inside TestFlight App, I have my subscription group "Core" setup Inside Core subscription group, I have my "Subscriptions" added: Monthly & Annual which show in "Ready to Submit" status I setup my Revenue Cat API Inside Revenue Cat, I added Product. I was able to use the automate
At WWDC 2020, Apple introduced the ability to do local StoreKit testing in Xcode (that is, testing without connecting to App Store servers and without using sandbox accounts). I am interested in an answer to the question of whether RevenueCat supports local StoreKit testing in Xcode for a RevenueCat-enabled Mac Catalyst app. As you’ll see below, I’ve been getting a “receipt not valid” error when I attempt that kind of testing for a RevenueCat-enabled Mac Catalyst app.Apple's documentation on StoreKit testing in Xcode indicates that local StoreKit testing does work for Mac apps (on a Mac running Xcode 12 or later, and macOS 11 or later). And in its own documentation, RevenueCat gives instructions for setting up local StoreKit testing in Xcode. What's not clear is whether StoreKit testing in Xcode works with the combination of RevenueCat and Mac Catalyst apps.I followed RevenueCat's instructions (just noted in the last paragraph) for setting up local StoreKit testing in Xcode (important
I had an initial functioning setup to get offerings and make a purchase. It worked : I could make a test purchase.The code was in a ‘shop’ page, and I decided to move the RevenueCat initialisation to main.dart as initial entry point. But maybe this wrong because it screwed everything up, and the app crashed on loading (error below). So I put it back to what it was.The app now loads and all screens function EXCEPT I am now getting the same error when I open the shop page. Even though it was working before.*** Assertion failure in +[RCPurchases sharedPurchases](), RCPurchases.m:160*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'There is no singleton instance. Make sure you configure Purchases before trying to get the default instance. More info here: https://errors.rev.cat/configuring-sdk'*** First throw call stack:(0x183586754 0x19804d7a8 0x1834883f8 0x1848afa6c 0x1009762f4 0x1009f2d34 0x100cb7bc0 0x100cb5b04 0x10109ea60 0x100dafd7c 0x1010b
In my test track Android app, Every time I try for initiate the process of purchase I have a grey screen with no text or indication of what is happening. I cant execute a test purchase at all. Can someone help me?The image shows the status of my project.
I’m trying to set up RevenueCat, following the QuickStart guide.My IAP on App Store Connect has the status “Ready to Submit”. I’ve reached step 8: https://docs.revenuecat.com/docs/getting-started#8-displaying-available-products But I get the following error. I’ve searched for the error (RevenueCat.OfferingsManager.Error error 1.) but can’t find any info. I’m unsure as to what to do next. 2022-06-29 11:59:12.291881+0100 [AppName][85775:6775520] [Purchases] - DEBUG: ℹ️ No cached Offerings, fetching from network2022-06-29 11:59:12.292502+0100 [AppName][85775:6775645] [Purchases] - DEBUG: ℹ️ GetOfferingsOperation: Started2022-06-29 11:59:12.292787+0100 [AppName][85775:6775645] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request GET subscribers/$RCAnonymousID%3A2ca8a9a49a8748b190059cf3dc1297fd/offerings2022-06-29 11:59:12.295060+0100 [AppName][85775:6775645] [Purchases] - DEBUG: ℹ️ API request started: GET /v1/subscribers/$RCAnonymousID:2ca8a9a49a8748b190059cf3
I have a subscription tier in my iOS app. I understand how to access `purchaserInfo` to check if the current user has the entitlement associated with this tier. However, I would like to display a badge on all user icons for other subscribers in the app - a little like the ‘verified’ badges on a Twitter account image.Clearly I need to store something server-side on my own user objects to track this, but I’m not sure what approach to take. Perhaps each user’s status should be saved to the server by my app as their entitlements change, and other instances use this saved user flag? But entitlements can change when the app isn’t being used, such as cancelled or expired subscriptions. My backend will have no knowledge of that change, so that use will continue to be displayed as a subscriber until and unless the launch the app again.Any suggestions on a good approach for this?
Can RevenueCat currently handle CONSUMPTION_REQUEST on behalf of the developer to help reduce refund rates? Thank you. https://developer.apple.com/documentation/appstoreserverapi/consumptionrequest
Hello, I don’t understand how could I organize offerings with multiple subscription groups. I want my user to be able to subscribe to different subscription plans and it’s possible that he could have two subscriptions at the same time. For example: Plan 1 (subscription group):monthly subscriptionyearly subscription Plan 2 (subscription group):monthly subscriptionyearly subscription It’s possible for user to be subscribed to 2 plans at the same time.Now when I get offerings I do like this:const offerings = await Purchases.getOfferings();offerings.current.monthly.product.priceStringHere I get current offering with the monthly price. But how could I modify this code and revenuecat configuration to be able to get current offering for another plan as well? Is this possible?I tried to add another monthly product to the offering, but it allows only one per offering. I think it needs subgroups under offering, one per each subscription group so that it would be easier to experiment and change
The Google Play Services credentials documentation from Revenue Cat walks through a step (1) in the API Access page of the Google Play Console. However, that page no longer exists: Can step 1 be ignored now? PS: Google Play docs definitely need to be updated.
Hello,we are trying to implement IAP in an iOS app and are running into weird behavior regarding transferred purchases.We are signed in on two different iOS devices with an apple sandbox account. On the two devices, we use different app user ids. Now, we first made a subscription purchase on one device and canceled it afterward again. Then, we made a second subscription purchase on the other device (different app user id, same apple sandbox account).Whenever the app is started, Purchases.shared.logIn is called with the app user id of that device. With that, each time in the revenue cat dashboard, the purchase of the second device is transferred to the app user id of the last device we started the app on.This does not seem to be the desired behavior here – at least not what we need. We would expect the purchase to always be associated with the app user id which was used to make the purchase. In this example, the two app user ids are not related to each other. The only connection is the
I have the problem that I can’t get a product that is configured as non-consumable IAP in App Store Connect. I don’t have any issues with getting the subscription products though. The error is “Could not find products with identifiers: [“lifetime_2499”]. There is a problem with your configuration in App Store Connect.”My process for setting up the IAP is the same as for the subscription products. And since that works it is not an issue with the Paid Apps agreement (?). Status is “Ready for submit” which is the same for the subscription products. I am using Capacitor and the unofficial @capgo/capacitor-purchases plugin. Any ideas what I might be missing? I am testing on a real device.
I’m new to RevenueCat, read the setup docs, watched some YouTube videos, and I got everything working so far. But I ran into a problem after making a test purchase on a real device.A- In viewDidLoad I run fetchCustomerInfo() to check if the user has subscribed or not. When the user hasn’t, the subscribe and restore buttons are shown. I press the subscribeButton and the transaction is successful. I stop the app, and when I restart, the buttons don’t show, which is correct.B- In Xcode I go to Debug > StoreKit > ManageTransactions > I delete the Transaction, and it says No Transaction.C- I stop the app, open the app back up, and the buttons don’t show, but they should show because there aren't any transactions. I check the flow in step 2 again and it still says No Transaction.D- I go to the RevenueCat console, Projects > My Project > iOS > Customers > Active/Sandbox/Non-Subscription/Expired, there aren't any customers in either of them. There is no data whatsoever.E-
Hi, I have a mobile app (iOS/Android) and the backend is built with Django+MySQL. My app offers a monthly/yearly “premium user” subscription and we’re using RevenueCat to handle IAPs. But we also want to keep the subscription status (isPremiumUser or not) of a user in our own database’s user records as well. I read through the documentation for RevenueCat webhooks and came across this excerpt.Webhooks are commonly used to keep a subscribers status in sync with RevenueCat across multiple systems. To simplify the logic of handling different webhook types, we recommend creating a polling system using the GET /subscribers REST API to sync the subscription status of the customer from RevenueCat to your database. Then, each webhook event can simply be a trigger to call this sync function. This approach has a few benefits and can make your system more robust and scalable. The way I understand is, below are the steps to implement such a system.1. Register URL to receive webhook events. 1.1. S
Why are some of my subscriptions canceled due to a billing error? Am I doing something wrong on my end or does that mean the user’s credit card isn’t working or something? Some of the transactions are going through and others aren’t so I’m not sure why this is happening.
Hello,I’ve configure a 7 days trial period in subscription in playstore and also an introductory period.getofferings() display price introductory at 0€ for 7 days.The skudetail display "freeTrialPeriod":"P1W". and introductory with the price "introductoryPricePeriod":"P1M","introductoryPrice":"2,49 €"With info offerings, how can I display on paywall the price of introductory after the trial period ?Must I base my info Paywall on sku details?Thank you in advance.
So we’ve been dealing with this issue being sent to us by the reviewer. We continue to find that your in-app purchase products exhibited one or more bugs when reviewed on iPad running iOS 15.7 on Wi-Fi. Specifically, the Subscribe button was unresponsive when tapped and we were unable to verify the purchasing process for your in app purchase items. Next Steps When validating receipts on your server, your server needs to be able to handle a production-signed app getting its receipts from Apple’s test environment. The recommended approach is for your production server to always validate receipts against the production App Store first. If validation fails with the error code "Sandbox receipt used in production," you should validate against the test environment instead. This is our first time releasing to app store. Should we ask the reviewer his/her appleID and add it as one of Sandbox testers?We appreciate all of your feedbacks.
Hello!I have an app working perfectly and it's time to implement purchases in it through Revenuecat.However when I install the react-native-purchases library several errors related to Swift are displayed (both when I try from the console and from XCode).The RN version I'm running is 0.63.4, Xcode 13.0 and I'm testing it in simulators/devices with IOS 15.Are there any known incompatibilities with these versions?Some errors I get when trying to compile:Undefined symbol: protocol conformance descriptor for Swift.UInt8 : Swift.FixedWidthInteger in Swift Undefined symbol: protocol descriptor for Foundation.LocalizedError Undefined symbol: method descriptor for Foundation.LocalizedError.errorDescription.getter : Swift.String? Undefined symbol: method descriptor for Foundation.LocalizedError.failureReason.getter : Swift.String? Undefined symbol: (extension in Foundation):Foundation.LocalizedError.recoverySuggestion.getter : Swift.String? Undefined symbol: (extension in Foundation):Foundation.
I have several offerings, one of them is the Current.I fetch the offering in my react native app this way: import Purchases from 'react-native-purchases';export const Premium =(props: {}) => { useEffect(() => { (async () => { const offerings = await Purchases.getOfferings(); console.log(offerings.all) <----------- })() }, []); ...}In dev mode, ‘all’ includes all my offerings including custom offerings, however in production only my Current is included in ‘all’
Hi there,I’m trying to fetch my consumable offers on my iOS simulator but I get empty products. I have performed the following steps.Set app credential from app store connect to revenue cat Enable IAP on XCode Follow https://www.revenuecat.com/docs/apple-app-store and created storekit file and uploaded to revenuecat Create product on revenue cat On iOS simulator iPhone 13, when I call fetch offers I get the error ```flutter: PlatformException(23, 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).This could be due to a timeout, or a problem in your configuration.More information: https://rev.cat/why-are-offerings-empty, {code: 23, message: 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).This could be due to a timeout, or a problem in your configuration.More information: ht
I have two bundle ids in my App Store Connect account: com.example.prod and com.example.dev.In RevenueCat if I use com.example.prod in RevenueCat App Configuration, the validation under ”P8 key file from App Store Connect” went through. However, if I use com.example.dev, I’ve got “The key is not valid or is not compatible with the Bundle ID of your app.”I believe the in-app purchase key (.p8 file) can be used for any bundle ids under the same App Store Connect account. Why in RevenueCat, one works while the other doesn’t.
I have two customers showing up in my sandbox customer list but I can’t delete them.When I click on them, they don’t pull up but they still show up in the list.How do I contact support to help me delete these customers that refuse to go away?Another post says it could take up to an hour but it’s been over a day.
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.