Discussion and help from anything related to RevenueCat.
Recently active
I noticed an error logged for one of the iOS users:"error.code": "0", "error.domain": "RevenueCat.ErrorCode", "error.message": "Unknown error.", "error.nativeStackIOS": [ "0 MyApp 0x00000001042fa810 _ZN8facebook5react11JSIExecutor21defaultTimeoutInvokerERKNSt3__18functionIFvvEEENS3_IFNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEvEEE + 254064", "1 MyApp 0x00000001042d180c _ZN8facebook5react11JSIExecutor21defaultTimeoutInvokerERKNSt3__18functionIFvvEEENS3_IFNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEvEEE + 86124", "2 MyApp 0x000000010425d280 _ZNK5folly3TryINS_4UnitEE16throwUnlessValueEv + 113116", "3 MyApp 0x000000010425d3b8 _ZNK5folly3TryINS_4UnitEE16throwUnlessValueEv + 113428", "4 MyApp 0x000000010421b280 MyApp + 176768", "5 MyApp
I have double checked everyone, bundle Id, in-app cert, App Store Connect App-Specific Shared Secret, everything! In production, Revenue Cat works, but in the sandbox, I get a error ERROR: 😿‼️ The receipt is not valid.The configuration for production and sandbox are the same. Is this a RevCat issue?
It’s crazy the amount of posts here regarding this issue.7 times I have resubmitted by app and every time it’s rejected because the receipt will not validate.“It’s one of those Apple quirks” is not a valid answer. RevenueCat should get in a room with Apple to try and fix this.I have tried the suggested “Delete and re-add your subscriptions” with no luck.I’m left with no option but to remove RevenueCat! Any other suggestions?
We have an app that requires the users to login before making a purchase.We’re observing (in our sandbox testing) that occasionally a users subscription gets transferred from one of our users id’s to an anonymous id. What's quite frustrating is this is happening very infrequently and we haven’t been able to recreate it predictably.Here is an example event (id: 0a5fc80d-ca5a-451a-8a31-cb16b95a3a92){ "event_timestamp_ms": 1643816650712, "store": "APP_STORE", "transferred_from": [ "ce3873cc-10a7-46d0-9463-43364f6b2cb8", "$RCAnonymousID:6a5e992f89a44858b2a8effa6996f257" ], "transferred_to": [ "$RCAnonymousID:a0490b63949a4b6e99a3bf372b3da781" ]} Our touch points with the React Native SDK are rather light:We have an useEffect() that calls Purchases.setup(key) with our keys in our main App.tsx as per the examples. When a user logs into our app we call Purchases.logIn(user.id) using the response to set our initial local subscription state. To keep things up to date we call Purch
Hello, since today the subscriptions do not work in sandbox! I can get the subscription offers but I can't buy : The receipt is not valid.It's crazy, everything was working yesterday. I even deleted my sandbox user and recreated another one, still the same problem. I also changed the shared secret, but nothing.
I have integrated into our React Native Expo app RevenueCat, following all the guides step by step.I publish the app to TestFlight today and I can see the purchase popup and product information correctly. After purchasing the product I see a message saying: “You’re all set, your purchase was successfull.”And just after that message we are doing an alert with the value of “productIdentifier” property.const {customerInfo, productIdentifier} = await Purchases.purchasePackage(expertAdvicePackage); Alert.alert(JSON.stringify(productIdentifier));The alert shows this: We already checked bundle id and app shared secret and everything matches exactly as in the AppStore. This is killing me because I can’t pass this point and need to move this into production asap. Appreciate any help or advice. Kind regards,
Has anyone seeing the Apple or RevenueCat server response time to be very slow in the last week?12/23-12/28+? A few weeks ago the response time was great, very fast. Currently it can take several minutes to authenticate a purchase between Apple and RevenueCat. This has led to several App Store rejections this week. Anyone else experiencing this? Should I just wait till the new year? Maybe Apple and RevenueCat are doing maintenance so servers are slow. If the apple tester/review person sees a long delay they reject the app….
After importing the RevenuCat package along side Admob, android resolver in unity runs and runs for like 30 mins and crashes, also happens when importing AdMob after importing RevenuCat
HeyIm using subscriptions for both ios and google play through revenuecatToday an androud user reported that he has a new phone and the app keep saying he doesnt have any subscriptions. He is still on the same gmail-account as he did the purchase / subscription withI thought the subscription was following the user and not the device? Thanks for any help :)
I successfully managed to integrate RevenueCat with the Firebase extension, and working properly the events are sent to Firebase. But it’s hard to test some event types so I would like to send events from postman through the Webhook url:{"code":1,"message":"Incoming RevenueCat webhook could not be authenticated. Please check that the shared secret is set up correctly."}I have the shared secret added to header: Authorization: Bearer shared_secret_here (Shared secret is from the google cloud which is connected our app from Firebase)And added the webhook url the same as the Firebase integration webhook.Here is the Firestore rules: The firebase functions integrations are working properly, but I cannot make the same work with webhook, what am I missing? (not even test events)
I’m trying to follow the basic Android consumable in-app purchase flow, and after setting a basic product in Google Play, RevenueCat is giving me this weird error: Identifier: <redacted>Platform: Play StoreStore Status: Incompatible product. Product is incompatible with RevenueCat Android SDK version 6 or above and equivalent cross-platform SDKsLearn more. The documentation points to https://community.revenuecat.com/tips-discussion-56/google-i-o-22-announcements-rc-product-priorities-1620/index2.html which doesn’t seem to have anything to do with consumable / non-subscription products, so isn’t helpful. So far I’ve tried searching these forums and google looking for an answer or guide, and just saw another post with a similar error for flutter. Any pointers?
The app stores are Play Store and App Store only and there is no back-end support. I am migrating from the official in_app_purchase plugin, should I call the syncPurchases() function? The Purchases SDK automatically detects new transactions and sends them to RevenueCat. However, when migrating from an older system, you need to tell Purchases to sync to ensure we are tracking your subscribers correctly.The way to do this is: if your existing subscription code knows you have a subscription, but RevenueCat does not, then restore transactions. Can’t RevenueCat directly check with Play store or App store account to know this when a CustomerInfo is fetched?Also, other than migrating, is there any other circumstances where I need to call this function? I see people calling (here and here) this function after or before performing a purchase and I am confused.Can someone help? Thanks.
The difference I know so far is that restorePurchases can be called multiple times but only through user action while syncPurchases should be called programmatically only once every app version.Is there any other differences or they are fundamentally different in what they do?
This method will fire whenever the SDK receives an updated CustomerInfo object from calls to getCustomerInfo(), purchase(package:), purchase(product:), or restorePurchases(). Is there a way to tell what causes the method passed to addCustomerInfoUpdateListener to be called? It will be nice to be able to tell the difference between a purchase and restore when it fires.
Hello! I’m developing a SwiftUI app and am using code from the Magic Weather example app to implement a paywall for my subscription. The initial version is working just like I would expect it to (displaying the correct names, prices, duration, etc). However, I started thinking about different scenarios to see if my code would handle them. One of the first things I tried is causing me concern. If I launch the app with no connectivity I see errors logged, which is not unexpected. When I restore connectivity I almost immediately see some RC activity. [Purchases] - DEBUG: ℹ️ applicationDidBecomeActive[Purchases] - DEBUG: ℹ️ CustomerInfo cache is stale, updating from network in foreground.[Purchases] - DEBUG: ℹ️ Offerings cache is stale, updating caches However, when I view my paywall (which is just PaywallView.swift from the SwiftUI Magic Weather at this point) there are no offerings displayed. I added some logging and UserViewModel.shared.offerings is still nil even after connectivity i
I want to setup discount codes for one-time in app purchases.I’ve seen loads of documentation on discounts for subscriptions not none for one-time purchases. I want to be able to give out codes that will allow people to use my product for free and discount codes that will give people a discount. What’s the best way to go about doing this for iOS and Android?
Hi,We Would like to see the differences on the graph (trials, revenue, churn, etc) for our App that’s on the AppStore for iOS/iPad and AppStore for macOS.The bundle id are the same and the in app purchases are also the same.Revenuecat already report Last Seen Platform Version but of course this is the last, it changes and is nor possible to make reports.How to know where the leads are being originated?
My project is written in objective-c and I am using the following method to fetch data: [[RCPurchases sharedPurchases] getOfferingsWithCompletion:^(RCOfferings *offerings, NSError *error) {}When the device is out of network, this method doesn’t get any data, which is logical as there is no internet connection. But the device already fetched this data earlier. How can I read this data? I can save the fetched data manually, but I found that RevenueCat has the mechanism to cache the data, but couldn’t find a way/thread to read this data in the forum. It would be a great help if there is an easy way to read the fetched data offline.
I’ve configured Free Trial offer on both Monthly and Yearly Plans in Google Play Store.The free trial (7 days) is not showing payment sheet.I get the following object - {…,freeTrialPeriod:P1W,...} in Logcat.Could it be because the Revenuecat use a Billing lib. with version 4.1.0? The version of Revenuecat that I use now is 5.6.3
Hi Team, I am runing an adnroid application with Revenuecat sdk. We received a report from a guy regarding the storage of Revenuecat authetication token. Is it possible for him to cause any critical damage using that api key?? Best Regards,SHlok K
How do I know if purchase is pending in flutter? Please give me the code where I can do something like this - if(purchase.isPending) {doSomething();} else{doSomething();}
I have an iOS app with a companion watchOS app. (The watch app does support running without the iOS app)When testing in Xcode with a storeKit Config file, I’m noticing different behaviors. On the iOS app, If I refund the transaction through the storekit > manage transactions window, the SDK immediately responds to the event and thus updates the entitlements etc. On the watchOS app, If I refund the transaction there is no response from the SDK. The only way I’ve been able to reset the entitlements is to go into the revenue cat dashboard and delete the associated customer. I’ve configured and implemented the Revenue Cat SDK in both through a single class such that the overall integration is identical. Similarly, they are both referencing the same storekit Configuration file that matches the offerings set up in the Revenue Cat dashboard. The bundle Id’s reflect MyApp and MyApp.watchkit accordingly. Is this the expected behavior? Does the SDK listen for events differently on watchOS?
transferring app to another google play store and app store account with revenue cat without any income loss.
The docs say: The SDK will update the cache if it's older than 5 minutes, but only if you call getCustomerInfo() However in my testing, whenever I run the below function, the requestTimeMillis remains stale, even after 5 minutes, and I’ve called `getCustomerInfo()`.I was under the impression this timestamp would change every 5 mins regardless of purchase, to reflect the getCustomerInfo request. Is that not the case?import moment from "moment";import Purchases from "react-native-purchases";async function logRequestDate() { const customerInfo = await Purchases.getCustomerInfo(); const { requestDateMillis } = customerInfo; const lastRequestDateString = moment(requestTimeMillis).format("hh:mm:ssa - DD/MM/YY"); console.log(lastRequestDateString); // eg. "08:30:05pm - 22/12/22"}logRequestDate();
Hey All, instead of having RevenueCat create an anonymous user ID for every person that starts a subscription, I want to use the CloudKit recordName for the RevCat user ID so that I can match up the user. Currently, I have the RevCat implementation happening right when the app launches in the init {}. How should I think about fetching the CloudKit recordName before RevCat Purchases.configure(withAPIKey: “”, appUserID: “”) is called? Thanks for any help.
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.