Discussion and help from anything related to RevenueCat.
Recently active
I have added the latest RevenueCat dependency (purchases_flutter: ^6.26.0) in my Flutter project. However, when I try to run my IOS project I am getting the following errors. Failed to build iOS appError (Xcode): double-quoted include "LaunchReviewPlugin.h" in framework header, expected angle-bracketed instead/Volumes/Data/Projects/demo/ios/Pods/Target%20Support%20Files/launch_review/launch_review-umbrella.h:12:8 Error (Xcode): 'Flutter/Flutter.h' file not found/Users/abc/.pub-cache/hosted/pub.dev/launch_review-3.0.1/ios/Classes/LaunchReviewPlugin.h:0:8 Error (Xcode): (fatal) could not build module 'launch_review'/Users/abc/Library/Developer/Xcode/DerivedData/Runner-ffencdqrnvwqyfcxfawlmzddeskh/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/launch_review.build/VerifyModule/launch_review_objective-c_arm64-apple-ios12.0-simulator_gnu11/Test/Test.framework/Headers/Test.h:0:8 Error (Xcode): (fatal) could not build module 'Test'/Users/abc/Library/Developer/Xcode/DerivedData/
For a non-subscription purchase, is there a way to do it in flutter client, serverless case. Get information such as the actual price paid by the user and the country.
Hello everyone I am hardstuck with this issue since 1 week,Products are loaded on play store(i can buy subscription start free trial use promocode etc correctly), but on IOS on a real device, running the development build, with a sandbox user offerings are not loading and I get this errorThere 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-empty]I already triple-checked everything inside thishttps://community.revenuecat.com/sdks-51/why-are-offerings-or-products-empty-124paid app agreement is signed and is in the “Verifying” state, the subscriptions are in "ready fro submission", bundle id matches everything is setup correctly, but still I can't make this work, and keep getting this error.The credentials
Hello RevenueCat team,We are heavy users of your 3rd party integration feature: we do send events to Adjust and our custom webhooks to obtain realtime data, which is great.At this point, we are willing to send a unique event for the very first purchase of a user. This would be very valuable for many use cases, such as product analysis (first purchase CVR or cost-per-first-purchase are much more common metric in higher-IAP share games) and UA campaign network [esp CPE] optimization.Would you please let us know your thoughts on this? It would be an event like “first_purchase”, for example.Thank you very much and keep up the good work
Could I please get someone knowledgeable to confirm that I understand things correctly?I currently have an iOS app that has two subscription options: yearly or three months.I want to add a free trial.From reading the forums and the docs I think these are the steps I should take. Are they correct? If they are correct then several assumption I made about how this works are incorrect.Add an introductory offer to each of my two subscription options in App Store Connect. Wait for the change to propagate. Adjust my UI for users that’s aren’t subscribed based on what Purchases.shared.checkTrialOrIntroDiscountEligibility indicates. That lets me choose whether a free trial is mentioned or not.I’m also thinking this would be a good time to throw out my paywall and start using RC’s paywall feature.Thank you!
Hello,I've recently started using the fantastic paywall features in my Flutter app. However, I've noticed that the localization support for this feature is quite incomplete. This deficiency could potentially lead to a poor user experience and, consequently, lower conversion rates for purchases. Presently, it seems there's no option to display the paywall in a specific language upon request. As a result, if my app supports multiple languages and allows users to choose their preferred language in the settings page, the paywall page remains unaffected by these settings. Instead, the language is determined by the App Store's origin country. It would be preferable for the paywall to adopt the device's locale as the default language rather than relying solely on the user's country of origin. This would ensure a more accurate display of the paywall language in various situations. I'm hopeful for a solution to this issue.Thank you for your attention.
I am trying to integrate RevenueCat in Flutter. While I’m testing on iOS with Paywall provided by purchases_ui_flutter in storekit setting, when I first got the paywall, it showed introdutory offers text and button. But after I subscribed, even if I delete the app and rebuild with xcode, Introductory text and button I set in paywall doesn’t show up anymore. How can I reset these situations? I’m trying to see how it looks with various localizationsThanks in advance.
Hi there,I am using flutter to build my app and I have been using the Revenue Cat paywall functionality for making purchases.I have both consumable and non-consumable in app purchases. I am currently testing using the Google Play store. My products are set up like this:Consumables do not have entitlements, non consumables do have entitlements. I have an offering that contains several consumable options and I have separate offerings for each non-consumable option. I present these to purchase using Revenue Cats paywalls. The issue I am having is that once a purchase has been made, it cannot be made again. This is expected for the non-consumables that have entitlements, but how do I allow the consumables to be purchased over and over again?The documentation states that on the Google Play store purchases are consumed by Revenue Cat immediately but that doesn’t appear to be what is happening. Can someone help point me in the right direction?
Hi,I have an annual subscription product with a 7-day free trial.I want to be able to give the user a possibility to get a 20% discount (promotional offer, as they now are a subscriber), after they have started their trial. Like a “You have started a trial period, but if you convert now you can save 20%”. Do you know if this is possible? Br.Jakob
Above is the error message I get when cancelling the purchase (I cancel either pressing back button or by clicking anywhere else to dismiss the pop up). I am not sure why app crashes here. It is within the try catch statement and I have catch statement to handle error cases. Help would be appreciated. Thanks!
While investigating an account I expected to be closed in our system, I noticed that the expiration webhook had failed with a 403 (The dashboard says 6 out of 6 attempts but I only see the last result I assume).What I want to know now is how often this happens and if its a one off or a recurring problem, however I can’t see a centralised place to view webhook events & failures (Unlike Mandril for example that has a dedicated webhook section and shows you all the recent failures).If this data exists then where is it? Or is there a custom report somewhere I can run to get this data?
We set appUserId with custom id and invoke getCustomerInfo each time app is opened and set the state with info of either subscribed or not and unlock the pro content accordingly. So if you had previously uninstalled the app and reinstall, the invoke of getCustomerInfo would solve the issue of knowing whether subscribed or not.However app store wants you have ‘Restore Purchase’. How do I best use of this in this scenario?
Hi,I am trying to fetch APP Store IAP products using the API Purchases.getProducts, however, it is returning no products. After looking at various post it seems that I need to pass second argument to the method Purchases.getProducts as the default value is “subscription” and my product is not Subscription.I am struggling to pass the second argument which is ENUM in the latest SDK and not a simple string like “sub” or “iap”. I don’t know how to import these enum values so that I can use it as argument in the function call.Could you please help me with some sample code to pass the second argument? Thanks in advance. Thanks,Kapil
There are two subscription setups:Identifier: tier1:monthly1, Subscription Id: tier1, Base Plan Id: monthly1Identifier: tier2:monthly2, Subscription Id: tier2, Base Plan Id: monthly2When changing the plan from tier1:monthly1 to tier2:monthly2, the following error occurs for a specific user:PlatformException(4, One or more of the arguments provided are invalid., {code: 4, message: One or more of the arguments provided are invalid., readableErrorCode: PurchaseInvalidError, readable_error_code: PurchaseInvalidError, underlyingErrorMessage: Couldn't find existing purchase for SKU: tier1, userCancelled: false}, null)In testing locally, this error is not reproducible, and the cause of the error is not apparent. The product_id of the subscription for the user where the error occurs is as follows, with tier1:monthly1 set:{ "app_id": "", ... "product_id": "tier1:monthly1", }The code for changing the plan is as follows:final currentEntitleInfo = (await Purchases.getCustomerInfo()).entit
I was able to get correct contents in Koreanbut in Japanses, revenue paywall element(which I can customizing through paywall section on revenuecat) are not localizied. I’m testing with simulator using storekit in xcode.As you can see on the screenshot I attached, price looks right because it’s coming from apple but contents from revenuecat dones’t seem right.Weird thing is that everything in Korean works correct…..I tested with Hindi but it dones’t work eitherAny suggestion or solution would be appreciated. Korean version looks right like below
I’m using the sandbox testing on web, and don’t seem to find any docs on how to test, so I am using stripe’s approach to use a card 4242 4242 4242 4242. However, I end up with this error:Thing is, the screen prior clearly shows that it is in sandbox mode. Why is the request failing?
Is there any way to set up an email notification to be sent to the software vendor (author) any time a purchase or subscription is made via RevenueCat? I already receive the weekly summary, but I am interested in also getting email notifications on every purchase/subscription. Thanks.
Hey everybody,I started to implement RevenueCat today into our existing Flutter app and so far I’m really enjoying is. The only thing I’m wondering right now is, is the following debug message that shows up all the time: [Purchases] - INFO: ℹ️ Purchases instance already set. Did you mean to configure two Purchases objects? What I’m doing so far in my code is to initialize the Purchases like that: Future<void> initSubscriptions() async { await Purchases.setDebugLogsEnabled(true); if (Platform.isAndroid) { // TODO Setup Google // await Purchases.setup("public_google_sdk_key"); } else if (Platform.isIOS) { final bool revenueCatAlreadyConfigured = await Purchases.isConfigured; if (!revenueCatAlreadyConfigured) { await Purchases.setup("<my_api_key>", appUserId: "SIMULATOR-TEST-CLIENT"); print("iOS setup finished"); } else { print("RevenueCat is already configured"); } } else { print("Platform doesn'
I got rejected several times by appstore: We found that your in-app purchase products exhibited one or more bugs which create a poor user experience. Specifically, in-app purchase page loaded and error message occurred. Please review the details and resources below and complete the next steps..What should I do?
hi, I have a question about restoring a purchase.We don't want the B account to be able to subscribe to the service if the A account is subscribed to it.So we set the Transfer setting to 'Transfer if there are no active subscriptions'. Then, when I tried to subscribe to account B in RevenueCat, it threw a 'RECEIPT_ALREADY_IN_USE' error and prevented the payment from going through. Very nice.The problem is that this error code response has no clue as to which account is subscribing (e.g., Account A).From a user perspective, it would be nice to see a message that says "You are subscribed to account A and cannot subscribe" rather than just "You are subscribed to another account and cannot subscribe", but I couldn't find a way to do this. Is there anything in RevenueCat that would allow me to do this?
Hi,I’m getting an error when trying to obtain offerings for a specific platform using the v1 offerings endpoint if I use the secret API v1 key instead of using an app-specific API public key. I’m sending the X-Platform header properly as indicated in the docs.Here’s the endpoint I’m using:https://api.revenuecat.com/v1/subscribers/{app_user_id}/offerings Error:{ "result": { "code": 7000, "message": "Invalid Platform." }}If I set the auth header to the app-specific API key it returns properly.Is that the intended behavior? I’ve obtained the endpoint usage information from:https://www.revenuecat.com/docs/api-v1#tag/offerings/operation/get-offerings Thanks in advance!
Hello,Just asking some quick clarification questions publicly in case they help others, these are specific for Flutter but I would assume that they’re applicable for other SDKs.1. I am invoking:PaywallResult paywallResult = await RevenueCatUI.presentPaywallIfNeeded("Premium", displayCloseButton: true);I would assume that the only thing I can do to “react” to whatever the user did would be to switch on the enum - no other subscription details bar PaywallResult (notPresented, cancelled, error, purchased, restored) are returned?2. Related but I also noticed that you can hook into subscription changes like this: Purchases.addCustomerInfoUpdateListener((customerInfo) async { });Would you do this in a centralised place (like where we are initialising the SDK), to listen for all subscription changes for a user and then “observe” these using a ChangeNotifier or similar?
It would be amazing to be able to add different images for a paywall on iOS when the app is on iPads vs iPhones (compact width (iPhone) vs regular width (iPad)) . I am looking at doing my first A/B test where i will be using a Paywall (template 4) vs my own custom view and unfortunately whilst looking great on iPhones, the image and template are pretty poor on iPads. Keep up the great work.
I've developed a Flutter app tailored for both Android and iOS platforms. Within the app, we've implemented a subscription mechanism utilizing RevenueCat to manage our in-app subscriptions. One of our primary goals is to provide our users with a seamless experience, such that their subscription status remains consistent across multiple devices or platforms. To put it simply, if a user subscribes on an Android device and later logs into their account on an iOS device, their subscription status should be synchronized, reflecting their active subscription.With this intent in mind, we've configured RevenueCat to utilize a custom user identifier, specifically using the user's Firebase authentication ID. We believed that this would facilitate the synchronization of subscription status across platforms.Our next endeavor is to introduce promo or offer codes into our application. These codes, when redeemed, should be tied directly to a user's account, ensuring they benefit from the promotion re
My application got rejected due to:Guideline 1.1.6 - Safety - Objectionable Content We noticed that your app’s in-app purchase products are mislabeled as Apple Pay, which could confuse and mislead users.To clarify this further, when they tapped to purchase the item, my app initiated Apple Pay [payment sheet] instead of In-App purchasing!!!I have updated my app to Revenue Cat, I am not doing anything about this the sheet is showing automatically by the app store, not from my side. I have tested via Test Flight and it shows the right sheet: any idea why this happened?
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.