Discussion and help from anything related to RevenueCat.
Recently active
If you’re here, it’s probably because you’ve encountered an active issue related to Apple’s receipt verification.RevenueCat relies upon Apple’s `verifyReceipt` endpoint which is currently facing an outage: https://developer.apple.com/system-status/This seems to be affecting sandbox and TestFlight purchases only at this time, although Apple’s status page doesn’t mention it explicitly.Encountering this issue? Post below ⬇️ RevenueCat isn’t able to resolve this at this time from our end, but it may help bring awareness and ease to other developers facing the same issue.Update 2/8/23 19:20 UTC:Customers (and me 😃) reporting things are working as expected again - post below if you’re still having trouble, seems like a slow rollout of a fix from Apple.Update 2/8/23 17:40 UTC:Apple’s reporting the issue is fixed, but we’re still encountering errors. Will provide another update as soon as possible.
Expo Go doesn’t build native modules, so you may run into this error while trying to run your app with react-native-purchases in Expo Go. In order to use RevenueCat with Expo, you will have to create Development Builds, which can be done either by using EAS, or by making builds that are compatible with Xcode and Android Studio. There are detailed instructions for doing either one in this page:https://docs.expo.dev/development/build/ Easiest way to be able to debug is to just run either of the following:npx expo run:android -dnpx expo run:ios -d We also have a blog post that goes step-by-step into how to make an app with Expo and RevenueCat using EAS: https://www.revenuecat.com/blog/in-app-puchase-expo-managed-workflow/ Let us know if you run into any issues!
Hi! 👋🏻 We’re in the final stages of our testing of some StoreKit 2 features before fully calling it ready for production, and we’d love your help! Context: Starting with v4.0.0, our SDK already uses StoreKit 2 by default on compatible devices for some features where the StoreKit 1 functionality was problematic, buggy or unreliable, and StoreKit 2 is essentially guaranteed to be an improvement (like checkTrialOrIntroDiscountEligibility). For devices that aren’t compatible with StoreKit 2, it defaults to a StoreKit 1 implementation. However, we haven’t enabled StoreKit 2 by default for making actual purchases. We’ve tested it extensively in Sandbox and StoreKit Test (see our blog post on how we test our SDKs) but we need to see how well StoreKit2 behaves in production before calling it ready. How to help: Our SDK includes an optional flag in the configure method, called useStoreKit2IfAvailable. In order to help, all you need to do is to set that flag to true! With this flag set,
Hi @taquitos With the latest 4.0.0-Beta.3, the return from purchaseProduct:withCompletion can have zero entitlement even though it is not true.I can’t reproduce while in debug mode (randomly happens outside the debugger).Attached is a txt file with a log of successful return (I see some errors but not sure how to cancel them).Thanks,
Hi RevenueCat team,I'm setting up in-app purchases for one of my apps and running into a persistent issue with the In-App Purchase Key validation. I'd appreciate your help investigating.App details:App: Step Tourist (App Store) Bundle ID: com.example.step-tourist Key ID: 9ZZTZCSGS7 Issuer ID: fefc0472-3433-4064-8745-2e1006a85731 Apple Developer Team ID: J4BSW8LU89 The app record in App Store Connect was created about 17 hours ago, so this doesn't appear to be a short propagation delay.The issue:The In-App Purchase Key configuration shows "Credentials need attention" ("The key is not valid or is not compatible with the Bundle ID of your app"), even though everything appears correctly configured.What I've already verified:The uploaded file is from Users and Access → Integrations → In-App Purchase (not the App Store Connect API tab) — filename SubscriptionKey_9ZZTZCSGS7.p8. The Bundle ID matches exactly (case-sensitive) across Xcode's PRODUCT_BUNDLE_IDENTIFIER, App Store Connect's app r
Hello,I’m using purchases-flutter 4.1.2 (latest at the moment). I’ve set up the entitlements, offerings, products as well as packages as guided in https://docs.revenuecat.com/docs/ios-productsI can get the offerrings and display the packages correctly.But when I make a call to `Purchases.purchasePackage()` to purchase a package, the call just hangs and doesn’t return at all.Here’s my dependency list:```environment: sdk: ">=2.17.5 <3.0.0"dependencies: another_flushbar: ^1.10.23 awesome_notifications: ^0.6.21 bloc: ^8.0.2 cached_network_image: ^3.1.0 cloud_firestore: ^3.4.4 easy_localization: ^3.0.0 easy_localization_loader: ^1.0.0 equatable: ^2.0.3 firebase_analytics: ^9.3.1 firebase_auth: ^3.6.3 firebase_core: ^1.20.1 firebase_messaging: ^12.0.2 flow_builder: ^0.0.2 flutter: sdk: flutter flutter_bloc: ^8.0.1 flutter_onboard: ^2.0.0 flutter_platform_widgets: ^2.0.0 flutter_svg: ^1.0.0 flutter_typeahead: ^4.0.0 formz: ^0.4.0 google_fonts: ^3.0.1 grouped_li
I made and remade this service account credentials JSON multiple times and it still won’t work. I even created a new google cloud project and made a new service account there. Did the whole process outlined in the docs to create the service account with pub/sub admin etc and it fails to work. I keep getting an error that the “credentials need attention”. It doesn’t seem to have any problem accessing my subscription products in the google play console. However, in each product it also says beside “Store Status” - “Could not check” and “Connection issue - Make sure the service account credentials JSON is configured properly.” Has anybody else had issue like this and managed to resolve them? Thanks, Jay
I’m using Ionic with Capacitor.The RevenueCat documentation recommends using a cordova plugin, but Ionic has been in the process of migrating away from Capacitor for the past few years, and this is now the only Cordova plugin in my app.There’s already a capacitor plugin on github but I was wondering if there are any plans to release an official Capacitor plugin as well.
We seem to be getting a `Domain=RCPurchasesErrorDomain Code=23` error when trying to retrieve offerings on iOS 14. The full log is as follows:2021-12-03 10:22:16.648693+0200 Today[34769:534081] [Purchases] - ERROR: SKRequest failed: UNKNOWN_ERROR2021-12-03 10:22:16.649045+0200 Today[34769:491827] [Purchases] - ERROR: Error fetching offerings - Error Domain=RCPurchasesErrorDomain Code=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" UserInfo={NSLocalizedDescription=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, readable
Hello RevenueCat Team,Almost each release we got reject when Apple review team try to make a purchase. I don't understand the reason, but looks like something wrong with receipt.I'm attached the rejection screen and the error desc, please, have a look.What do you think? They say:“We found that your in-app purchase products exhibited one or more bugs when reviewed on iPad running iOS 15.1 on Wi-Fi.Specifically, an error occurred after we purchased the subscription.Next StepsWhen 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.” Thank you,Yauheni @ MoonX Team
I originally went with glassfy 2 years ago because their docs and setup for capacitor were simpler to understand. Unfortunately, they’ve now gone defunct, so I need to migrate to RC. have two apps that I need to migrate. One app is very seasonal, so glassfy may not exist any more when the users finally open their app. The other, I had issues with android not sending the subscription into to glassfy anyway, and their support refused to respond. My main question:can I simply call syncPurchases once for all users the first time they run the updated app version that has RC integrated?If I can simply call syncPurchases once on update, and each user who does this will automatically be given their subscription access, that would be great. Can anyone confirm this would work? Or do I need to do something more complicated?
I’m new to RevenueCat and am looking into how I can migrate my existing app’s non-consumable in-app purchases to RevenueCat.I know this type of question has been asked several times, but none of the answers really answered my questionSo far, I’ve looked at using syncPurchases() but as stated in the documentation:Google Play Store does not provide an option to mark IAPs as consumable or non-consumable. RevenueCat's SDK will consume all Android IAPs upon purchase.To replicate the behavior of a non-consumable IAP for Android users, you must ensure your user will not offered the IAP after the initial purchase. Failure to do so will enable the user to re-purchase the IAP. ...and sure enough, in initial testing, as soon as I call syncPurchases() all of the user’s in-app products are consumed and the Google Play Billing client no longer sees the purchases.Regarding the first paragraph, when using the Google Play Billing API, we have the option to consume, or not consume the in-app purchase. A
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?
The new paywall feature looks amazing! Is it possible to use with capacitor (I think not but wanted to verify) and when might it be available? Any suggestions of workarounds for the interim? Thanks!
Hello, I followed step on docs however, I can not get offering and error says: 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 the StoreKit Configuration file if one is being used). More information: https://rev.cat/why-are-offerings-emptyI saw there are many other developers have same issue but no solution. This was the my first time to use revenue cat but I think I will implement my own way because of this issue. Thanks,
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?
iPadOS 15 running app from Xcode fails to return any products. Restore Purchases also fails to return.Rebooting iPad allows it to work first time only.This issue is specifically relating to auto-renewing subscriptions.Built using Xcode Version 13.0 (13A233)No issue with same code on iOS 14.Success and failure logs follow.Success:2021-09-24 16:17:50.773181+0800 ZeroTime[345:4478] [Purchases] - DEBUG: ℹ️ Debug logging enabled2021-09-24 16:17:50.773293+0800 ZeroTime[345:4478] [Purchases] - DEBUG: ℹ️ SDK Version - 3.12.42021-09-24 16:17:50.773336+0800 ZeroTime[345:4478] [Purchases] - DEBUG: 👤 Initial App User ID - (null)2021-09-24 16:17:50.777445+0800 ZeroTime[345:4478] [Purchases] - DEBUG: ℹ️ Sending latest PurchaserInfo to delegate.2021-09-24 16:17:50.778858+0800 ZeroTime[345:4478] didReceiveUpdatedPurchaserInfo: <PurchaserInfo originalApplicationVersion: (null), latestExpirationDate: (null) activeEntitlements: {}, activeSubscriptions: {}, nonConsumablePurchases: {()}, requestDate: 2
Hey All,We’re noticed a bug appear on devices running iOS 15.4 having issues when trying to present the store code redemption sheet using the RevenueCat iOS SDK (3.14.1).Purchases.shared.presentCodeRedemptionSheet()The presentation sheet appears, however the expected redeem code page is missing. Instead we’re presented with a “Cannot Connect” with the retry button not performing any action.This is repeatable on all devices running 15.4 and only appears after the update from 15.3.1.Does migrating to the the most recent 4.1.0 release fix this issue for devices on iOS 15.4?Thanks
I am making a test purchase for a monthly subscription. It happens correctly the first time and for the correct user. I am using the always accept visa card from google testers. There is exactly one renewal happening which is fine and the second time I get CANCELLATION with BILLING_ERROR on the sandbox.
I understand that the currency of the product is handled by the App Store, but when viewing the RevenueCat dashboards, the prices are always converted to USD currently.Is there a way to set the currency displayed in RevenueCat? Thanks,Brent
I get the error in the title when I run the followingawait Purchases.purchaseProduct(product.identifier);I have verified that the Product Id is the same as the one in App Store Connect.Bank account and taxes are already set up.What is the problem and how do I fix it?
I have few apps and I would like possibility to share subscriptions between them. So if a user is subscribed in one app they would have possibility to use pro features in other apps as well. Is it possible now with RevenueCat?
As per the title:I always get the ‘Receipt is missing error’ when testing via TestFlight.In Xcode, when configured with a StoreKit file, it works fine. Without StoreKit and TestFlight it does not work, the app review is also always getting rejected.I cannot see why it does not work. The products and offerings are configured correctly (and they are shown in the app), it’s just the receipt that is always missing when purchasing.
Hello, `ERROR - The receipt is not valid. The purchased product was missing in the receipt. This is typically due to a bug in StoreKit`.I was recently rejected from app store review due to this weird RevenueCat bug ("react-native-purchases": "5.13.0") that I sometimes experience.I believe that I have set up all of my code correctly, but when clicking on a subscription purchase (using the purchaseProduct method - `const purchase = await Purchases.purchaseProduct(identifier, null, Purchases.PURCHASE_TYPE.SUBS);`) the request can fail and throw the following error. “The receipt is not valid. The purchased product was missing in the receipt. This is typically due to a bug in StoreKit.” It seems that this error will happen in patches 5-10 times in a row, then once I see one success, they are all successful from there forward (the purchase modal shows up with the product, and the user can subscribe to my subscription). Now when I go back into the app, I cannot reproduce the bug as it will be
Been getting this error after adding the service account credential JSON, I’ve made sure that I followed the documentation: https://www.revenuecat.com/docs/creating-play-service-credentials but haven’t been able to resolve this.
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.