Discussion and help from anything related to RevenueCat.
Recently active
I don't get it. App store 5.1.1(v) says we can't require users to log in to use the app. I've read rejection cases where the issue was log in prompt before letting the user access the paywall. It's okay for me, purchases and subscription status are handled based on the appleID of the device. I don't want to use login system at all, but then how do i provide app store reviewers with demo credentials? Do i have to set up a login system that is not mandatory just for the reviewer to access paid content?
I can see the entitlements here but with API i cannot retrieve its entitlement the response is this {'request_date': '2024-01-05T15:09:20Z', 'request_date_ms': 1704467360200, 'subscriber': {'entitlements': {}, 'first_seen': '2024-01-05T09:47:40Z', 'last_seen': '2024-01-05T09:47:42Z', 'management_url': None, 'non_subscriptions': {}, 'original_app_user_id': '235b8072dc694f61a9442cd126dd6c8c', 'original_application_version': '1.0', 'original_purchase_date': '2024-01-04T17:54:42Z', 'other_purchases': {}, 'subscriptions': {}}}I have checked the api_key as well and it is correct.
I currently have an app that costs $20 to download and then requires a simple account creation login process. I would like to move the app to be free, still require login, but then put certain screens behind a subscription paywall. I would also like the few hundred people who have already paid $20 to have lifetime access for free.Before I go ahead building out this - I want to check if this is possible with RevenueCat and how I should proceed. Thanks.
Hello all,I use a React Native SDK. I have several plans, all with free trial. When I change a plan, while in free trial, I use IMMEDIATE_WITHOUT_PRORATION prorationMode as recommended in https://www.revenuecat.com/docs/managing-subscriptions#google-play when upgrading, so that free trial is not expired.But this removes the TRIAL flag from the entitlement.When I subscribe for the first time with the free trial, I see that "periodType": TRIAL for the active entitlement. But when I change subscription with IMMEDIATE_WITHOUT_PRORATION mode, the periodType becomes NORMAL, even though trial is still going on Thank you!
Hello, my app is only targeting iOS, but appstore reviewer is tessting it on iPad and seeing product names are empty. I am using “Paywall” feature of RC. The products show up fine on iOS. Any idea what is causing this?
Hi, I just changed my whole app from native IOS to React Native, but it seems altough we have subscriptions in App Store, we can’t get the subscription status in React native app in testflight or locally. Is this something usual?
Hi RC team! First of all, many thanks for all hard work you have been doing developing such an amazing tool! We are happy with RC but we have some complains in our dev team about how the tool works in Unity. The main issue for us is not being able to see real prices of IAPs in the Unity Editor, you already makes this clear in your documentation here that the SDK is not supported in the Editor.So the question here, is there any plan or public roadmap to see if you will work on this feature and offer better support for Unity games in general in the mid-short term?I know that native apps are the main focus of RC and makes sense, but working on improving the Unity plugin will open a huge market for RC, almost all game dev community are tied to UnityIAP and I guess the developer experience by the time they try to integrate RC will stop them to using your tool.Many thanks in advance for your support.Kind Regards!
Hello and thanks for providing any insight. I am trying to setup a webhooks to my AWS dynamodb to store all events so I can keep them as a backup. I noticed that after resubscribing, multiple of the same webhook is being sent. The only thing that changes is the transaction_id. So in this case, I keep getting the same type “RENEWAL” webhooks every 5 or so minutes. Most recently I counted 7 webhooks including the last one which was type “CANCELLATION” before they stopped. Is there anything I missed? Is it because it is in a Sandbox environment that I get multiple renewal actions from Apple? All webhooks are getting the correct response code 200 and there is a green check mark next to them.
Hi,I have an application where users can have multiple subscriptions.I'm enabling Transfer flow in order to transfer one subscription from one user to another (same person with another account) but looking at the documentation it doesn't say anything that can be done for users who have multiple subscriptions. Is this possible to do?I would like to know how Revenuecat manages multiple subscriptions in the same user to get the one that interests me and transfer it to the other account.Thanks,Adria
Hi there,we have an one-time IAP in our app. Additionally we want to experiment with short-time (weekly) subscriptions. We thought that would make sense in our case, since some of our users are using the app just 1-2 weeks in a year.So we created and submitted a subsription on the store, but it got rejected, because it is not visible in the app. To attach it to an entitlement it has to be published in the store, which again not possible, because it is not visible. How do we solve this chicken-egg-situation? We have begun the review of your in-app purchases but aren't able to continue because your submitted in-app purchases indicate a change of business model for your app. Specifically, your existing Non-Consumable business model has changed to include a auto-renewable subscription in-app purchase business model type.Therefore, we need to verify the implementation of your submitted in-app purchases in the app to ensure your app, and its in-app purchases, are in compliance with the App S
Apologies if this post isn't directly related to RevenueCat. I'm aware that this community is highly interested in matters related to Google Billing, so I'd like to seek your valuable input on the following topic.Ever since the introduction of Google Play Billing Library 5, a concept of a 'base plan' has been included in Subscriptions.A single subscription can have multiple base plans. These base plans can be set up for either monthly or yearly billing.Currently, we have an existing monthly subscription plan.If we want to introduce a yearly subscription plan, here's what we need to consider."Add base plan" in existing subscription plan. Use ProductDetails to perform subscription. However, our legacy code haven't adopted ProductDetails. We are still using legacy SkuDetailsI was wondering, is it OK for us toAdd a completely new subscription plan for the yearly plan. Continue to use legacy SkuDetails to perform subscription.Is there any shortcoming, or pitfall for doing so?Thanks.
Hello everyone,The subscription method within my application provides certain benefits as soon as a user subscribes within the app. When a user subscribes, they gain specific advantages that set them apart from other users. The issue arises when a user requests a refund after using the subscription for 1-2 days, causing damage to my application. How can I prevent this?
Hello, I recently was having trouble handling the “Restore purchases” button that can be added to a RC Paywall.There is a native alert being presented each time the restore was successful, however the restoreCompleted closure only executes once. I see the purpose behind this was preventing unnecessary processing as the user has already indeed restored his stuff, nonetheless it’s completely intuitive.On a side note, the native alert showing up is prompt to conflict with some UI logic passed in restoreCompleted. i.e.: If you want to update the binding on a fullScreenCover(isPresented:) to dismiss the View it will not take effect, the binding will be updated but the View remain visible, un-syncing the binding hence making it unusable. This is the result of the native alert being shown and interfering with SwiftUI.I propose a boolean value to decide if an alert will be shown when the restoring process completes.
Hello, I’m developing app using flutter and revenucat for google and apple. btw, my app has been ok for several month in production.but suddenly from this month, google rejected my app due to Broken Feature Policy Violation.And they sent me screenshot from app.picture has my dialog describes there’s no package can fetch.it appear usually in emulator, not in production or internal test in real device.I think they consider not showing subscription option in emulator is Broken Feature. Can anyone help me to get approve?It really makes me frustrated :(
Hey,I am currently integrating the Facebook SDK with RevenueCat in my project and have followed the instructions as per documentation. I recently updated to the latest version of the Facebook SDK using the package manager. However, I encountered an issue while setting up the Facebook anonymous ID.Here is the snippet of the code I'm using:Purchases.shared.attribution.collectDeviceIdentifiers()Purchases.shared.attribution.setFBAnonymousID(FBSDKCoreKit.AppEvents.anonymousID)The compiler throws the following error:"Instance member 'anonymousID' cannot be used on type 'AppEvents'; did you mean to use a value of this type instead?"I'm wondering if there have been any changes in the SDK or RevenueCat's integration process that I might have missed. Could you please provide some guidance on how to resolve this error or suggest an alternative way to correctly implement this functionality?Regards
Hi all,I use a React Native SDK. I have several plans. When I want to downgrade to a cheaper plan, I use a DEFERRED proration mode. The change is successful on Google Play's side, but `purchasePackage` method hands forever.Also, when I use `restorePurchases` method, I do not get any update about a change in the plan.Similarly, I do not see any changes in my dashboard until the moment, when the plan actually changes (when the old plan expires). Thank you!
Hi, Do your app have to be in google play closed test track environment to do sandbox testing or is it enough to have it in the internal test track? Best Regards,Tomas
Making Purchases (revenuecat.com) Flutter section references “PurchaserInfo”. That’s been replaced by CustomerInfo. Can we get this updated? Thanks!
We have a triggered override for some users when they meet certain criteria to present them a sale offering. But when we changed the default offering, we want these customers to see the same default offering. It seems that those that are on the triggered offering maintain that offering, even when the default offering has been updated.
Hello,I want to use multi-quantity purchases in a Unity app on Android with RevenueCat. I've looked through the RevenueCat documentation, but I couldn't find any info on this.Can anyone clarify if RevenueCat supports multi-quantity purchases, particularly within Unity? Any guidance or additional resources on this topic would be greatly appreciated.For reference, here's the link to the Google documentation on handling multi-quantity purchases: https://developer.android.com/google/play/billing/integrate#mqThanks in advance.
One of our customers opted out of automatic renewal. She subscribed previously to a yearly subscription, and after a couple of days opted out of renewal. This means her entitlement to that yearly subscription should still be active, just the `willRenew` property of the entitlement should be false. However, the `isActive` property of the entitlement was false. Only after asking her to restore her purchases, the entitlement was isAcgive again. Code for checking if subscribed:Purchases.shared.getCustomerInfo { (customerInfo, error) in if let customerInfo = customerInfo { if let entitlement = customerInfo.entitlements[PurchasesManager.entitlementPremium] { if (!entitlement.isActive) { // Not subscribed, but was subscribed? if (premium.premiumFromAppStore) { // Logic for ubsubscribing user and informing they're unsubscribed } } } }} Code for restoring purchases:func restorePurchase() {
hi,is there a way to get the country of the subscriber with a api request like:https://api.revenuecat.com/v1/subscribers/$RCAnonymousID...
Just switched to RevenueCat and added some code (React Native) to sync past purchases. It works great, but synced customers don’t have all of the attributes I’ve set up for new purchases.First thought was to check if syncPurchases returns something, and use that to call Purchases.setAttributes.purchaseInfo = await Purchases.syncPurchases();if(purchaseInfo){ console.log(purchaseInfo); }For me, it’s only returning “undefined”. Does it return something if there’s a valid receipt? If not, can I just throw in a Purchases.setAttributes before or after calling syncPurchases, so that these synced users get the proper identifiers?
Hello, I’m looking to run an experiment that offers a free trial for the first time. I just released an update that includes verbiage on my paywall about the free trial if one exists on a package.What will users who don’t have my latest update experience when I start the experiment? Will the experiment be served to the non-latest version of the app? I do not want the offering with a trial served to existing users because it’s not a true experiment without the updates to my paywall.
I have setup a enterprise and team account system in my flutter ios and android app. I have used AWS Cognito for the user accounts and i am linking the enterprise accounts user_id to their purchased subscription in revenue cat. Now when an enterprise user creates a team account i have it so that a lambda function uses the rest api from revenue cat to add the team accounts user id as an alias of the enterprise accounts subscription. This all works correctly and gives the team account the same subscription as the enterprise account. Now here is where the problem comes in. If an enterprise user deletes a team account I can’t find a way to also delete that alias for the team account that I created from the lambda function that calls revenue cats rest api. Since there is a limit of 50 aliases on a subscription this means if the enterprise user created 50 team accounts and deleted all of them these aliases would still exist and they can’t link anymore accounts to there subscription anymore.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.