Get help with your SDK implementation.
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,
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
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,
I realize this is similar to the post here, but was hoping to dig into it a bit more on why we are seeing this failure.We are seeing “The device or user is not allowed to make the purchase.” when attempting to call Purchases.getProducts() or Purchases.getOfferings() from our React Native app. A few notes:We’re on React Native 0.63. (I realize that the docs recommend 0.64 or newer, but it was my understanding that it should still work on this version). We’ve ensured that the emulator we are running has the Google Play Services SDK installed. According to the AVD Manager, we’re using a fairly new Android version: Android 11.0 (Google Play Services) We are logged into an account on the emulator that is registered as a license tester on the Google Play Console. The emulator has been rebooted several times.This error happens in both our main app and a simple test app that we put together for the sake of testing. Is there something else that we are missing in our testing process that cou
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
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
I’m not having any luck getting in-app purchases to work in Android (everything is working fine in iOS). I followed these directions https://www.revenuecat.com/docs/google-play-store as best I could, but there are parts of them that don’t make any sense to me, and now when I try to make a test purchase, I get the error message, “This version of the application is not configured for billing through Google Play. Check the help center for more information.”For reference, I am developing using React Native and a custom Expo dev client built remotely using the EAS Build service. I don’t know the first thing about developing using Java/Android Studio or trying to build locally. I have gotten as far as setting up a test product in Google Play, importing it into RevenueCat, and retrieving info about that product in my app code. This leads me to believe that the product is set up correctly. I am also sure that my user account on the physical device is included in the list of testers for Cl
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
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?
Hi, I am using RevenueCat for using subscriptions in my app. I have configured everything according to the docs. On Apple everything is working fine but on Android, I am facing this issue when I try to get offerings, I get this error There is an issue with your configuration. Check the underlying error for more details.I know there could be some config issue but I have taken the following steps twice:I have followed the guide in this link (https://www.revenuecat.com/docs/creating-play-service-credentials) correctly. I have a checklist of all the things given in this link (https://www.revenuecat.com/docs/google-play-checklists) After going through the community form I found this post ( ) and performed all the steps in it. I am using expo managed project and I have followed this blog to implement it (https://www.revenuecat.com/blog/engineering/expo-in-app-purchase-tutorial/) I have checked all the identifiers in the RevenueCat products page and they are correct as I imported them. I hav
I am currently using Flutter with real android device. I recently switched to using “Google Subscription Model v2”. I followed RevenueCat instructions over here When I upload my Flutter app to Google play store internal testing, then download the app from play store to my real Android device, I am able to make subscriptions without any problem. On the hand, if I run my Flutter app through the command line using “flutter run”, then when I try to make subscription, I get this error: “The item you requested is not available for purchase.”. Here is a screen shot. I am able to see the subscriptions with no problem on my screen. I only can’t make purchase.I don’t want to deploy my app to internal testing in play store to test my code as this is so slow. Is there a better solution. Thanks
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 have integrated SDK in my android app and its working great.but sometime I am gettingError fetching offerings - PurchasesError(code=NetworkError, underlyingErrorMessage=Unable to resolve host "api.revenuecat.com": No address associated with hostname, message='Error performing request.')this error. any resolution for this? thanks
Please forgive my poor English.I am currently using react native,There is no purchase issue in the ios local test (Real device).Currently, it is not possible to proceed with the payment with the following error message on android (Real device).============================================================DEBUG: ℹ️ Vending Offerings from cacheDEBUG: ℹ️ Checking if cache is stale AppInBackground falseDEBUG: ℹ️ Offerings cache is stale, updating from network in foregroundDEBUG: 😻 Offerings updated from network.DEBUG: 💰 Purchase started - product: com.revenuecat.purchases.models.ProductDetails@8d0ec795 - offering: standardDEBUG: 💰 Purchasing product: beans_12DEBUG: ℹ️ API request started: GET /subscribers/%24RCAnonymousID%3A0e02ff09c4ad4e249624e9c4056b9672/offeringsDEBUG: ℹ️ API request completed with status: GET /subscribers/%24RCAnonymousID%3A0e02ff09c4ad4e249624e9c4056b9672/offerings 304DEBUG: ℹ️ Requesting products from the store with identifiers: beans_12DEBUG: ℹ️ Products request
There is another question out there marked as solved (see below) however I believe there is a need to re-open this as per recent changes to Google policy. Google is now requiring apps to allow for cancelling a subscription from within an app. An email was sent to app developers about a policy change: We’re updating our Subscriptions policy to state that users must be able to easily cancel their subscriptions from within the app. You’ll have at least 30 days from the date of this notification to update your app to comply with the following policy changes.As this is not currently possible via RevenuCat it means that apps are in danger of being in violation of Google policies and banned from the Play Store. We urgently need a way to cancel a subscription so that it does not renew but without refunding for purchases already made.
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 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.
Hello,I have user crashes related to configuring Purchases. However, when i have experienced this crash, it is when i am trying to close the app. I have a single exit point and use:startActivity(intent);finish();before moving to a new intent. My exit looks like the followingThread.currentThread().interrupt();finish();System.exit(0);finish();Any thoughts?
I’ve implemented revenuecat for in-app purchase with google play. I’ve done all steps carefully, but when purchasing in testing mode, it gives this error “This version of the application is not configured for billing through Google Play. check the help center for more information”. I have wasted more than a month solving this error. Nothing works for me. Please help.Thanks!
I think this was posted before and it is one of the most commen issues but I spent about a week but got nowhere with it.What I have done:Terms and condition via AppStore is all accepted Paid and Free agreement are all good to go Tax requirement are all good to go Renewable Subscription is approved by apple The app works fine with Configuration.storekit file for testing purposes But when we want to go live the following occurs all the time DEBUG: ℹ️ GetOfferingsOperation: Finished2022-08-10 17:06:20.809370+0100 [39243:2154986] [Purchases] - DEBUG: ℹ️ No existing products cached, starting store products request for: ["1637274019"]2022-08-10 17:06:20.809459+0100[39243:2154856] [Purchases] - DEBUG: ℹ️ Serial request done: GET subscribers/$RCAnonymousID%3A0738ae9570e14463a4044d2762350199/offerings, 0 requests left in the queue2022-08-10 17:06:20.842004+0100[39243:2154986] [Purchases] - DEBUG: 😻 Store products request finished2022-08-10 17:06:20.842004+0100[39243:2154855] [Purchases] - DEBU
Sorry, title should be Xcode 13, cannot edit this anymore Hi, I am using purchases-ios via Swift Package Manager with the latest version 3.12.4. After downloading Xcode 13 my app builds and runs both on device and simulator.When I try to archive the app in order to upload it to the App Store, I receive the following message:Command CompileSwiftSources failed with a nonzero exit code.The line before saysremark: Incremental compilation has been disabled: it is not compatible with whole module optimizationThere is no other message before or after which gives an indication of what the error could be.The minimum target is iOS 13.I tried to clean the build folder, restart Xcode, restart the Mac, downloaded the project manually from the repository and set it up newly, nothing worked.I am clueless, what can be the problem here?
I am facing problems in the latest version of iOS.Xcode version: Version 14.2 (14C18)POD Target: 11.0 [!] CocoaPods could not find compatible versions for pod "PurchasesHybridCommon": In Podfile: purchases_flutter (from `.symlinks/plugins/purchases_flutter/ios`) was resolved to 4.10.0, which depends on PurchasesHybridCommon (= 4.13.1)None of your spec sources contain a spec satisfying the dependency: `PurchasesHybridCommon (= 4.13.1)`.You have either: * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`. * mistyped the name or version. * not added the source repo that hosts the Podspec to your Podfile. flutter doctorDoctor summary (to see all details, run flutter doctor -v):[✓] Flutter (Channel stable, 3.7.0, on macOS 13.1 22C65 darwin-arm64, locale tr-TR)[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)[✓] Xcode - develop for iOS and macOS (Xcode 14.2)[✓] Chrome - develop for the web[✓] Andro
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
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.