Discussion and help from anything related to RevenueCat.
Recently active
Hi all,Im trying to get iOS Code Redemption working in flutter and having some issues.So as per the doc (not flutter specific, so following the API doc mixed with the swift example), and I go ahead and call: await Purchases.presentCodeRedemptionSheet();And then….. nothing happens? Is there anything else that needs to be done in the code after the sheet is dismissed to detect that a purchase has been made via the code redemption sheet? It’s really hard to test as this as it seems as though it cant be tested in a simulator or in debug mode on a real device - so I’m doing it ‘live’ and not getting any really good logging.The “Codes” are attached to an App Store IAP that I do have configured in revenuecat / has an entitlement….I’ve tried to re-initialise the purchaserinfo object & check for entitlements again and its still not triggering in the way it should if an entitlement is detected. Running purchases_flutter 3.1.0 on flutter 2.0.5Anyone have any ideas?
My Xcode app has RevenueCat Purchases.configure(withAPIKey: "myApiKey") which runs fine in a device from Xcode. The same app crashes in TestFlight after 2 minutes even if left alone. I commented out Purchases.configure and it stopped crashing in TestFlight. I need help.
We have native iOS app with revenue Cat, its work perfect. Now we rewrite our app with Flutter framework. In app written with flutter we use revenueCat too and it works perfect on Android(release) and iOS(test flight). Imagine user bought subscription in native iOS app, then we realese new version app written with flutter, user install it and want to restore subscription. Now question will the subscription been restored ?
Hey guys. Apparently there has been an update to the Google Play Developer Program Policy where customers “must be able to easily cancel their subscription from within the app.”I was wondering what the best approach for this was. I’m under the impression that cancelling a subscription in-app isn't possible yet? If I’m wrong could someone point me in the right direction?I did come across this thread that says how redirect the user manage their subscription? Does any one know if this method would suffice?
I’ve successfully integrated subscription product fro iOS. But when I try to make purchase of a subscription product, The below error is returned: Error: The receipt is not valid. What’s the problem? How can I solve this?
Hi, I’m a little confused about the Apple Search Ads attribution page in the docs:https://docs.revenuecat.com/docs/apple-search-ads It says that:On iOS 14.5+, you must be running the latest RevenueCat SDK and request authorization via the App Tracking Transparency framework before Apple Search Ads data can be collected by RevenueCat. However, my understanding is that for basic tracking (anonymised) using the new AdServices framework, this isn’t necessary. What’s the latest on this?
I have been looking in the documentation but didn’t see anything related to flutter for redeeming a coded!I have implemented the auto-renewable subscription with 1 month free trial in my Flutter app and have tested using Sandbox on iOS and works fine. How can I redeem an offer code using Flutter?
Hello:We have subscriptions setup in our app, but we want to add a consumable product to give the user the same entitlement that he will get when subscription for 1 month, but this time it will be for 1 day only.is there a way to do this in Revenuecat, and is there a place in the documentation that we can follow to setup this kind of process?Our app uses Firebase as backend, and Revenuecat Firbase extension is added to the projectThank you
Hello, I am implementing a paywall and I want to keep the products displayed as dynamic as possible. I want to display the title and description of the product on iOS, but it is returning an empty string for both properties: I am using StoreKit with XCode to test properly on my iOS simulator using React Native: This is my App Store Connect configuration (it is in Ready to Submit state): It is working properly for Android (except it is not returning the description, maybe to due to the fact that there is no description provided for the subscription on Google Play Console):
Our iOS app stopped receiving responses from RevenueCat sometime in the past week. No code was changed on our end and our live app is no longer displaying any subscription options.This call is simply not returning successfully, nor is the failure block called. It doesn't matter what "offering" is - I’ve tried several of our offerings that are registered with RC and that have worked before. Any ideas what could have broken? This has completely broken in-app purchases for us. subscriptions?.fetchPackages(for: offering, onSuccess: { [weak self] (packages) in let sortedPackages = packages.sorted(by: { $0.product.price.compare($1.product.price) == .orderedDescending }) ... //this block is not called }, onFailure: { (error) in //this block is not called })The only thing I see logged in the console is “DEBUG: Vending Offerings from cache”I’ve verified that all of our In-App Purchases are still in the “Approv
We set up Adjust Integration step by step due documentation. Also try with and without OAuth. Still no events fires by RevenueCat in integration dashboard. In per user events feed detailed info also shows:No integrations to show We also using Unity SDK if it is matter. We correctly send Adjust ID per user via SDK. No result with live users and sandboxCan you help please?
Hi, I released a new version of my apps on July 14. Since July 15, RC is reporting double the new users (500 - 600), but the play console and apple connect is showing the same average users I get this days (200 - 300), I don’t know from where is RC reporting double. I did not change anything in my app logic or upgraded the sdk.
Hello, We’re using the React Native SDK for an Android and iOS app. We have received some reports in social media from users complaining that they have been charged immediately after purchase despite the product having a 7 day free trial. We don’t have any user Ids to check in the RevenueCat dashboard yet but we’d like to understand better how free trial eligibility works in the React Native SDK. Does checkTrialOrIntroductoryPriceEligibility work on Android with the React Native SDK? I’ve seen another post from an Android native user that a different mechanism is necessary If the method returns INTRO_ELIGIBILITY_STATUS_UNKNOWN, is it safe to assume that the user is not eligible? Are false positives (is not eligible, unknown is returned) or false negatives (is eligible, unknown is returned) more likely? If a user has already consumed a free trial and they attempt to purchase a free trial product, they will be charged immediately, is this a correct assumption?Thanks in advance. Regards
Services like Stripe require a secret key and a server to make a purchase. If it was possible to do entirely client-side, wouldn’t Stripe do it be default?
Hi,Before integration with RC, we had only non-consumable IAPs, now we want to release auto-renewable subscriptions with RC SDK.We added non-consumable IAPs to the entitlement with subscriptions. That seems to unlock a feature under that entitlement for customers with lifetime access.So what is the benefit of performing `syncPurchases()` for users with lifetime access since they get the access the entitlement already?
Hello,I am using “active subscriptions” segmented by the first purchase month to look at blended retention (all product duration). I find it very convenient. What I realized recently is that if you compare:yearly retention chart active subscription chart filtered yearly and segmented by first purchase monthYou get a different result. In particular, the yearly retention chart initial value for a cohort is around 10% higher than the active subscription chart initial value. I am trying to understand why.
Our backend system are splited to staging and production, but revenuecat’s sandbox looks doesn’t support webhook, so I want to add both staging and production webhooks to the app.
Hi there,is there a way to check if a user has currently subscribed to a specific package? The use case is that I want to have a monthly and a yearly subscription for pro access. If a user has subscribed to one of both, I want to mark it accordingly in the UI and disable the buy button.I can’t just check if the pro-access-entitlement is active because both the monthly and the annual subscription refer to the same entitlement. Any ideas?Best, Tobias
Hi there, I have a “Lifetime Pro” inapp product. After I refunded this through Google Play it is still fetched as a bought product by Revenuecat. How can I securely verify that my non-subscription product is not refunded?This function is essential for me as it would be too easy for users just to buy the lifetime product, directly refund it and enjoy the lifetime pro for free. Appreciate any help.
My ionic cordova project can no longer run on IoS since last Thursday and I have no idea why this is happening.When testing the Xcode, the code no longer processes the PurchasesCoreSwift-Info.plist, with results that the entire Purchase folder remains empty and it fails as it can not import from the Purchases.h file. We have a podfile that installs the PurchasesHybridCommon as usual (it might have something to do with that, as we were upgrading the Cocoapods when the error occured, unfortunatelly setting it back to previous versions hasn’t solved the issue.) Is there anyone else who experiences this problem? Or can offer advice where to look?
Hello , Once the revenue cat implementation is Done ,I went through the purchase => once i click and purchase any package its throughing me the following error Please do help..unity version = 2020.3.35f1revenue cat version = 4.0.0-rc.1unity IAP version = 4.1.5gradle version = 6.1.1/Unity: NullReferenceException: Object reference not set to an instance of an object at UnityEngine.Purchasing.GooglePurchaseUpdatedListener.OnPurchaseOk (UnityEngine.Purchasing.Models.GooglePurchase googlePurchase) [0x00000] in <3eb221e23cc14c1eb9a89aaea1015de1>:0 at UnityEngine.Purchasing.GooglePurchaseUpdatedListener.ApplyOnPurchases (System.Collections.Generic.IEnumerable`1[t] purchases, System.Action`1[t] action) [0x00027] in <3eb221e23cc14c1eb9a89aaea1015de1>:0 at UnityEngine.Purchasing.GooglePurchaseUpdatedListener.HandleResultOkCases (UnityEngine.Purchasing.Models.IGoogleBillingResult result, System.Collections.Generic.IEnumerable`1[t] purchases) [0x00008] in <3e
On occasion we get an error from the update subscriber attributes API. We are not sure what is causing the error since we are following the documentation. Here is the error response: {‘code’: 7259, ‘message’:‘Subscription not found for subscriber’}
ContextI’m building a referrals feature that gives users 30 days free access to our subscription. If they’re currently on a trial, it’ll extend it by 30 days. For example, if you have a 7 day trial, it’ll extend to 37 days. ProblemWhen I extend someone’s trial, I don’t see a Revenue cat event for that subscription update. Stripe sends a customer.subscription.updated event, so everything’s fine there.My hunch is Revenuecat doesn’t support this edge case, which would be very unfortunate :/ Any recommended solutions or workarounds? Seems like a core use case to update users when anything on the subscription changes.
We have a monthly subscription in Apple and Google which has 1 introductory offer (i.e. 1 week free trial). Is it possible to create a second introductory offer (e.g. 2 week free trial) on the same product? Ive noticed its possible the create the offer on app store connect but how does the app know which introductory offer to display to the user? We do not want to offer the 2 week free trial to everyone.
Before RC integration I’ve only had a non-consumable IAP for lifetime unlock, I’m adding subscriptions now with RC. Since subscriptions are new, is it OK to skip syncPurchases or is it needed in any way for migration of the non-consumable IAP?
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.