Get help with your SDK implementation.
Recently active
My project offers a website and an app. Most users start on the web, then later download the app. They frequently encounter a problem in the following scenario.StepsWebsite: Create an account. Upon login, the site asks the RevenueCat REST API if the user has an existing subscription. Since the account doesn’t exist in this scenario, RevenueCat creates it, according to the documentation. Device A: Install the app and receive an anonymous RevenueCat ID. Log into the account previously created on the web. As mentioned in this table, RevenueCat automatically merges the anonymous ID with the app ID. The user’s one alias slot is now used up. Device A after logout/reinstall, or on Device B: Receive a new anonymous RevenueCat ID. See an offer to upgrade (usually during app onboarding) and subscribe. Later, log into the existing account to access user data. RevenueCat does not merge the anonymous ID with the existing app user ID, so it now reports that the user does not have an active subscript
When the user buys the subscription via the promo code link ((https://www.revenuecat.com/docs/ios-subscription-offers) (Redirect to appstore)) it seems like RevenueCat does not handle or receive any events from apple, and no webhooks are fired for that specific user whatsoever so we are not able to give that user a premium access. Can you please help? please respond asap, thanks
I added 2 products as you can see above (the first 2 are the products that i manually added) After testing both subscriptions on both devices i noticed that 2 broken products got added automatically. I’ve also noticed that when i test the purchase (both) , the callback doesnt return any active entitlments. What am i doing wrong? Can someone explain me what are those 2 products that gets added automatically? Thanks
Just a day ago I was able to make a test purchase on my actual iphone with no problem, but suddenly I get this error and the purchase fails.When I try to purchase again after the failed attempt, I get a dialog that says "You are currently subscribed to this subscription.What could be the cause?I have not changed the shared secret or the bundle Id.Thanks in advance. [ ] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request POST receipts[ ] [Purchases] - DEBUG: ℹ️ API request started: POST /v1/receipts[ +856 ms] [Purchases] - ERROR: 😿‼️ The receipt is not valid.[ ] [Purchases] - DEBUG: ℹ️ API request failed: POST /v1/receipts: The receipt is not valid.[ ] [Purchases] - DEBUG: ℹ️ PostReceiptDataOperation: Finished[ ] [Purchases] - DEBUG: ℹ️ Serial request done: POST receipts, 0 requests left in the queue[ ] [Purchases] - ERROR: 😿‼️ The receipt is not valid.[+1072 ms] [Purchases] - ERROR: 💰 Product purchase for 'MY_P
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
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
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.
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
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
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?
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();
Just trying to understand how this is supposed to work. No matter how many times I may call getOfferings it returns asynchronously. Even if the debug messages say that it is vending from the cache, return is async. The doc says the following with regard to the completion block: “Called immediately if offerings are cached.” Is this just wrong or is the behavior I am seeing unexpected?
We’re on the seemingly endless treadmill of missing receipts and offerings for our first iOS app store review and had a seemingly simple question that we struggled to find a good answer to.Should we remove our synced StoreKit Configuration File from our scheme before archiving to submit to the app store? Or is that file only used for xcode testing, so leaving it in the build is fine?Thanks.-nate
Background: I am sharing an entitlement across the App Store, Play Store and Stripe. Currently there is a single entitlement but I want to be able to add additional products and entitlements in the future.For my current issue:Entitlement identifier: “standard” is associated with 3 products (one on each platform)Offering identifier: “default” has one package “Monthly” which points to the same 3 productsProducts (3 of them) have unique identifiers (for example): ios_id, play_id and stripe_idSituation: A user buys a subscription in Stripe and I want to know if they have the same entitlement when I look at customerInfo in the App store or the Play store.Platform: React NativeSDK: "react-native-purchases": "^5.4.0"Issue: When I call Purchases.getOfferings(). I receive only the offerings for the platform I am on. Example on the App store the availablePackages array only contains the product I have associated with the App store: ios_id (which I would expect). With the package identifier as
We are getting Null discount from Revenuecat even though we have set up the discount in google play under offers (phase). SS of how Revenue cat is passing data. Structure we have set in Google play..In playstore the structure is like this:Subscription > Base Plan > Offer > Phase 1 ( Free trial) + Phase 2 (10/20/30% discount)
I see this question has been covered in more threads with no solutions I need help figuring this one out My AppleStore Subscription is ready for submission I am not using a sandbox account I am testing on device At this point I juts want to print my current packages Error: 2023-01-23 20:31:52.214271-0800 Recipe generator[6310:26159165] [Purchases] - ERROR: 🍎‼️ Error fetching offerings - The operation couldn’t be completed. (RevenueCat.OfferingsManager.Error error 1.)2023-01-23 20:31:52.214489-0800 Recipe generator[6310:26159165] [Purchases] - ERROR: 🍎‼️ Error fetching offerings - The operation couldn’t be completed. (RevenueCat.OfferingsManager.Error error 1.)2023-01-23 20:31:52.214532-0800 Recipe generator[6310:18871873] [Purchases] - ERROR: 😿‼️ There is an issue with your configuration. Check the underlying error for more details. There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or
Hey, I'm using purchases_flutter dependency for a flutter app. When I'm testing to pay with iOS devices, the way to do it is by asking the user for AppleID and corresponding password. It should be working with iPhone biometrics instead. How can I do it?
Hi,import com.revenuecat.purchases.Entitlement throws Unresolved reference: Entitlement error in my Android app. The other imports are accepted.import com.android.billingclient.api.SkuDetailsimport com.revenuecat.purchases.Entitlementimport com.revenuecat.purchases.Offeringimport com.revenuecat.purchases.PurchaserInfoimport com.revenuecat.purchases.PurchasesAny suggestions?RegardsPeter
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.