Discussion and help from anything related to RevenueCat.
Recently active
Hi!, sometimes when I create a new sandbox account and make a purchase, the dashboard shows the number of transactions more than once. My appstore settings seem to be okey. Even though I purchased it once, the package seems to be renewed by itself. I only have this problem in apple, there is no such problem in android
When trying to edit pricing i saw the changed sub management of Google, including a warning that editing legacy subs could cause problems with API access. Does that applay to revenucat or can i go ahead and edit make the subs editable an change the pricing? CheersKarl
I have created a xamarin.forms app and am trying to replace the library i’m currently using for RevenueCat.My app runs on iOS, Android and UWP.I was wondering if RevenueCat has plans to support the UWP platform in the (near) future?
I updated my Swift dependencies in SPM from 3.12.4 to 3.12.7. After I update, I get the “no products registered” error below. Nothing has changed in App Store Connect or in RevenueCat. I don’t get any errors on 3.12.4 My phone is on iOS 15.0.2 2021-10-17 16:03:48.699413-0700 Anime Karma List[1086:198879] [Purchases] - ERROR: 🍎‼️ Error fetching offerings - Error Domain=RCPurchasesErrorDomain Code=23 "There's a problem with your configuration. There are no products registered in the RevenueCat dashboard for your offerings. To configure products, follow the instructions in https://rev.cat/how-to-configure-offerings. More information: https://rev.cat/why-are-offerings-empty" UserInfo={NSLocalizedDescription=There's a problem with your configuration. There are no products registered in the RevenueCat dashboard for your offerings. To configure products, follow the instructions in https://rev.cat/how-to-configure-offerings. More information: https://rev.cat/why-are-offerings-empty, readable_
I have a product linked to an entitlement. When making the purchase in sandbox mode, the entitlement only appears in the RevenueCat Dashboard when the ViewSandbox toggle is on. That’s fine as it is expected behavior.My question is how I can view those sandbox entitlements on the app?I’m assuming the best way to verify a user’s subscription status is to check their entitlements, which I believe is done with getCustomerInfo(). However, despite having the appropriate sandbox entitlement, the CustomerInfo.entitlements ALWAYS comes back empty in the app. I understand that the entitlements are in the sandbox, but I’d like to see the app’s behavior when fetching the entitlements.Is it possible to fetch sandbox entitlements without having to go through the purchase/restore purchase sequence?
Good eveningWe are moving away from calling SK1 directly towards using RC in iOS. We do use SKStorefront. We see the RCStoreFront class in the xcframework but we haven’t found a way to access/init/fetch it. Dead end? Can you point us in the right direction? How to get a RCStoreFront in ObjC Thank you
I have an app that works fine for iOS and Android.I'm currently trying to run an app on macOS.I use Flutter and a package of purchases_flutter 3.9.5Subscriptions work fine on iOS and Android.The macOS application has Capability: In-App PurchaseAfter launching the application for macOS, I get the error:2022-06-01 11:49:28.251 myapp[31721:239951] [Purchases] - DEBUG: ℹ️ Products request finished.2022-06-01 11:49:28.251 myapp[31721:239951] [Purchases] - DEBUG: 💰 Retrieved SKProducts:2022-06-01 11:49:28.251 myapp[31721:239951] [Purchases] - WARN: 🍎‼️ Invalid Product Identifiers - ( "myapp_299_1m_0m", "myapp_3299_1y_0m")2022-06-01 11:49:28.251 myapp[31721:239951] [Purchases] - DEBUG: ℹ️ 1 completion handlers waiting on products2022-06-01 11:49:28.254 myapp[31721:237671] [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 C
I am implementing paid subscriptions in my iOS app. I have an entitlement called “Pro” in RevenueCat, but this seems to be returned to the app sometimes as “pro” and sometimes as “Pro”. I get the entitlements using Purchases.shared.getCustomerInfo { (purchaserInfo, error) in } purchaserInfo?.entitlements contains one entry as expected, but both the key and the entitlementInfo.identifier are “pro” not “Pro”. However, just after a purchase completes successfully, it is [edit: sometimes] returned as Pro. This is using a sandbox user, if that is relevant.Is this expected behaviour? I suspect not, but can’t figure out what’s going in. Perhaps something to do with caching of user entitlements. Any ideas?
Hey there! I’m currently implementing an “Active Subscription” view in my app and was wondering if I can somehow get the following data from the `CustomerInfo`?Next payment price (the next amount the user will be changed)Active renewal period (if the user is subscribed to weekly, monthly or yearly)Family sharing active (if the active subscription can be shared with the iCloud family)A possible workaround could be to load the products again and search for the `productIdentifier`, but here I’m not sure how I’d find out which price is the due on the next payment (intro offer, discount, etc)Thanks in advance!
My IAP Promotions were being held because my binary “did not include the SKPaymentTransactionObserver method” I haven’t seen anything like this before. I had presumed that this would be included in the Purchases package. Am I missing something, or did Apple? Thanks
Trying to add the RevenueCat SDK as a Swift Package on Xcode 12.3 for iOS on Catalina after specifying dependency rule as suggested the error “because purchases-ios >= 4.0.0-beta.9 contains incompatible tools version and root depends on purchases-ios 4.0.0..<5.0.0, version solving failed” appears . How can work around this?
I have a Flutter app, using the Firebase extension and it works for Android, but on iOS, nothing happens (nothing gets updated in Firebase) after the purchase has been made. Tested on real devices, with testing card credits.
Hi there,We have an initial_purchase_event webhook where the event_timestamp is roughly 25th May but the purchased_at timestamp is roughly 2nd May. Do you have any insight as to how this can happen and whether it is a common thing? For some extra context they didn’t open the app between 2nd May and 25th May so it looks like them opening the app on 25th somehow triggered the webhook that for some reason failed to fire when they made the purchase on the 2nd. Thanks,Lydia { "api_version": "1.0", "event": { "aliases": [ "XXX" ], "app_id": "XXX", "app_user_id": "XXX", "country_code": "US", "currency": "USD", "entitlement_id": null, "entitlement_ids": [ "premium" ], "environment": "PRODUCTION", "event_timestamp_ms": 1653492042121, "expiration_at_ms": 1683048830000, "id": "XXX", "is_family_share": false, "offer_code": null, "original_app_user_id": "XXX", "original_transaction_id": "XXX", "period_type": "INTRO", "presented_of
In our application we have a logic of a 3 days free use period, that we provide to the user by granting them Promotional Entitlements through RevenueCat API. During that period user can manually click the upgrade button to start a play store/app store subscription. We would expect that once the store subscription is purchased, promotional entitlements would be replaced with the ones from subscription. However this doesn’t happen, which causes some problems. For example, we can’t tell if user is currently using play store/app store 7 days subscription-trial (available once, after which they got billed automatically), because `entitlement.storeType` is always equal to `promotional` and `entitlement.periodType` is always equal to `normal`. Also all the entitlements have product indentifiers starting with `rc_promo`. Only after the promotional entitlement is expired, they get replaced with correct data from app store/play store. Currently as a workaround we manually revoke promotional ent
Hello - does anyone know how to actually edit this? The app was previously created, and I can’t see on this page how to actually edit this. I have the JSON file ready to put in.Thanks in advanceEDIT: I have now figured it out. Just needed to click ‘view’. Sometimes the simpliest!
I am hoping we can get some guidance on how to test billing errors in the sandbox. Specifically, we are never seeing billingIssueDetectedAt populated.As an example, we subscribe using a license tester on Android in our React Native app. The subscription goes through successfully, and afterwards, we set our payment source to “always decline” through Google Play. Because it’s a monthly subscription, we wait 5 min, and when the renewal charge is made, we get an email from Google saying the subscription was suspended because of a billing issue. However, there is no change on the customerInfo object when I call getPurchaserInfo().Fast forward another 5 min, and the subscription is cancelled. This time, if I call getPurchaserInfo(), I immediately see the purchase is no longer active. However, there is still no value for billingIssueDetectedAt, and the expirationDate has not changed either.I guess my questions are:should the above have generated a billingIssueDetected at value? I know the doc
Hey RevenueCat team,I’m reaching out to you because we currently have an issue with an amplitude events on our android project.We have set up an event that should be sent when a user starts a trial; unfortunately, it is not sent anymore on amplitude for a couple of weeks, where we have the correct data in our revenue cat dashboard. Could you help us figuring what’s wrong?Thanks a lot 🙏
Hello community,I am new to RevenueCat and to swift programming. I am trying to get my first app up and running on the store but am having trouble with making a test purchase. Wondering if someone can help by looking at the debug log.CN_235_Monthly2992022-05-29 18:24:59.214531+0300 CASAFlightData[56957:3007853] [Purchases] - DEBUG: ℹ️ No existing requests and products not cached, starting SKProducts request for: ["CN_235_Monthly299"]2022-05-29 18:24:59.253793+0300 CASAFlightData[56957:3007853] [Purchases] - DEBUG: 😻 SKProductsRequest did finish2022-05-29 18:24:59.253996+0300 CASAFlightData[56957:3008278] [Purchases] - DEBUG: 😻 SKProductsRequest request received responseThe code I’m running is here:class PurchaseService { static func purchase(productId: String?, successfulPurchase: @escaping () -> Void) { guard productId != nil else { return } print(productId!) //Perform purchase //Get the SKProduct Purchases.shar
What happens to an anonymous user’s ID if he buys a subscription on device A, then restores on device B.Will device A still be logged in?I found it in the documentation:Transfer - If a user buys a subscription with an anonymous ID ( account A) and then restores with an identified user (account B) as long as they are logged in with the same underlying store account the store receipt will transfer to account B and only account B will have access to the subscription. how to understand it for different devices?Will the subscription be available for deviceA and deviceB or only for deviceB?
We are going to publish our app with in-app purchases in Russia. Now we have a problem — Google Play is pausing it’s billing system for users in Russia. Can we publish our app with you SDK and solve the problem? Can users from Russia buy subscriptions this way?
Some of our iOS users have reported that nothing happens when when restoring purchases on iOS and I’ve been able to reproduce. From debugging my own account, I have an active subscription in App Store but when I restore purchase, I noticed my `PurchaserInfo` does not include active subscriptions when restoring. In case it’s relevant, the `appUserId` we pass in during initialization with `Purchases.setup()` can be a different id across installs (e.g., a fresh install creates a new user id).Any known issues or advice on how to debug this further? VersionsTested with the following and both had empty active subscription:Flutter v2.10.3 and purchases_flutter v3.8.0 Flutter v3.0.1 and purchases_flutter v3.10.0 Code: final PurchaserInfo restoredInfo = await Purchases.restoreTransactions(); The data in PurchaserInfo: My phone’s subscription on App Store:
My purchasing code seems to work fine for the majority of users, but I have a small portion of them who for whatever reason either have entitlements for a period of time and then lose them, or for whom the entitlements are seemingly never granted, even though the purchase was successful.When checking their customer info in the RC dashboard, it shows no entitlements.Any ideas for how to troubleshoot this? Here’s my code for completing a purchase:if let package = self.offering?.availablePackages[1] { Purchases.shared.purchase(package: package) { [self] (transaction, purchaserInfo, error, userCancelled) in if let error = error { self.present(errorAlert(message: error.localizedDescription), animated: true, completion: nil) } else { if purchaserInfo?.entitlements["Lifetime Access"]?.isActive == true { entitlementsGranted = true saveUserData
We have noticed that Android subscribers in certain states are being charged sales tax on their subscription. For example, our monthly set price is $6.99, but the subscriber is being charged $7.48 ($.49 in tax). Does anyone know if this is related to us setting up business/tax documents wrong, or if Android users need to pay sales tax based on their state laws? We are providing a basic subscription app service and not selling digital goods. I have tried editing the tax settings in Google Play, but some states are uneditable so Google’s preset is taking priority. Thanks for any assistance here!
I would like to run the Revenue Cat demo project on a 2013 Mac running Catalina but receive the error that the nimble package requires Swift tools 5.4.0 and the installed version for Xcode 12.3 (which is the highest version supportable on my hardware) is 5.3.0. XCode 12.5 includes Swift tools 5.4.0 but will not run on Catalina. Is there a workaround for my current hardware?
I have a requirement that I want to set a temporary entitlement for the user, (not through in-app purchase), like this cutomerInfo.entitlements[@"temp_access"].isActive = YES
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.