Get help with your SDK implementation.
Recently active
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!
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
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.
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!
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() {
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?
I have an offering containing a monthly and a weekly subscription option.I want to test replacing weekly with yearly so I created yearly products with Apple and Google and attached them to RevenueCat.Then I created a new offering with my existing monthly and added my new annual. However, the annual product is not showing up as a part of my offering from the client (both by checking `.yearly` and `.availablePackages`.The store status is listed as “Ok” for the associated product.
Dear RevenueCat Support,I am currently developing a React Native application that uses the react-native-purchases library for handling in-app purchases. I have encountered an issue where the session related to the purchases remains active even after a user logs out.I am using Firebase to authenticate, and the SDK is not generating anonymous ID like (RC: …). But the same ID stored in (originalAppUserId: '8NG2...') which is the same as the firebase User, is forever stored in the cache unless the app is deleted and redownloaded. I am wondering what the best practice is that is not .logOut, due to creating anonymous ID. I am aware of restorePurchases but I am gearing away from a button to pass the conditional renders. Also, is it appropriate to leave the .logIn in the authStateChange function for logging in with saved authentication data or to use the login just during the initial login part of the code. Thanks for your guys help. I hope to hear back soon! APP.js function onAuthStateChang
Hi all,Hi all,Today, I installed an SDK in my brand new project. After receiving the app API, I configured the instance of Purchases:Purchases.logLevel = .verbose Purchases.configure(withAPIKey: "my app api here")During my first few runs, I noticed that the console outputted a lot of information, which was good. However, after I added the following code, the console stopped outputting anything:// Using Swift Concurrencydo { let offerings = try await Purchases.shared.offerings() // Display current offering with offerings.current} catch let error { // handle error}// Using Completion BlocksPurchases.shared.getOfferings { (offerings, error) in if let offerings { // Display current offering with offerings.current }}I added print functions in all brackets as a test to see if they would output anything, but they did not. Additionally, all the output that I had seen at the beginning was absent as well. I removed the second block of code (the one with concurrency) to see if
purchased_at_ms The time is not accurate We found a problem and ask if the value purchased_at_ms is correct. We tested purchases-ios SDK version 3.14.4 and found the problem. We tested an iPhone 13 Pro Max, iOS 15.1, without a SIM card. With iOS 17.1, purchases-ios SDK 4.31.6 has the same problem ”event_timestamp_ms": 1704269598747, "expiration_at_ms": 1737447173000, "purchased_at_ms": 1705824773000, three times are incorrect. Test Procedure Set the system time to 2024-1-21. A subscription purchase succeeds. purchased_at_ms's time is 2024-01-21 16:12:53 Using version 3.14.2 purchased_at_ms is 2024-01-03 15:35:06 Would you like to ask what is the problem caused by this? This one uses version 3.14.4This one uses version 3.14.2
We have been using RevenuCat Paywall 4.31.5. Not able to see Close button on Paywall.Please help on it. It happens only on Landscape mode. Portrait is good.
Hi guys, I'm trying to understand how to deal with "App User ID" and user accounts. All good if I have the next flow:A user downloads an app. The user register in the app Based on the registered user account, I can generate an "App User ID" and send it to RevenueCat. Then, based on the registered user account, I always have access to the user "App User ID" because it is stored in my database and mapped to the registered user account. Later on, users can restore purchases anytime after they log in to the app. Because again, I have his "App User ID" stored in my database.But what should I do if I have no user registration in the first place? Is it possible? For example:A user downloads an app. I generate some random "App User ID" based on the device UUIDD The user goes through onboarding screens with a PayWall in the end. The user makes a purchase. All that I have now, it's his "App User ID" mapped to his device UUID, and that is it. If the user changes the phone or tries to log in on
Hello,I am using revenuecat sdk for flutter, and i configure the sdk using the android and ios public sdk keys and the user id corresponding to the user.I am trying to understand what will be the impact if someone decompiles my app and gets hold of the public/private keys? Could they connect to the revenuecat on my behalf and make operations like cancel subscription or request refunds..etc? From my understanding there is nothing holding them back to perform these operations.Also I am interested to know, if in our systems we identify the user with a standard auto increment primary key like 1,2,3...etc, could this be an issue for someone to mess with us if they also have the private/public keys? I am thinking decompile the app, retrieve the public keys, initialise the sdk with random ints that represent the app users ids and try to cancel, refund their subscriptions. Is this something that would be possible?Thanks!
I want to discuss strategies for enhancing the trial conversion rate of my Android app.Recently, I've noticed a trend in our dashboard where a significant number of users are opting to cancel their trials. This observation has led me to consider the importance of understanding the reasons behind these cancellations.To gain better insights, I am interested in exploring methods to solicit feedback from users at the point of trial cancellation. Could someone advise if there is a mechanism within Revenue Cat’s SDK that triggers a callback when a user cancels their trial? If such a feature exists, it would be beneficial to implement a dialog box or a feedback form that prompts the user to share their reasons for cancellation.Understanding the factors contributing to trial cancellations is crucial for us to address any underlying issues and improve the user experience. Your guidance on how to effectively implement this feedback collection process would be greatly appreciated.
I'm relative new to revenue, and I moved from Google play because I have some issues with people not get the purchases recognized, that's why I decided to go with revenuecat, however I have some issues now, some users seems that they don't have "premium" or the purchases are not recognized, then if they go to restore purchase, everything works, and seems that this is only for some users, apparently in some headunit, tablets and made Xiaomi/Chinese brand, probably the play store is doing something weird but they can restore the purchases without a problem, so I'm wondering if there is something that revenuecat can do, or any suggestion?I initialize RC in the main application, and it doesn't seems like a sdk setup issue since this only happens to some users, what else I can try? Thanks a lot
after I setup the dynamic paywall from revenuewCat dashboard I could not display it in my android app ,I read the document but the PaywallActivityLauncher not found in the sdk,is it not release yet ?
Hi, My app update was recently rejected in the iOS app store due to a mismatch in the introductory offer. Our paywall and product shows a 7 day free trial, however, when the Apple Store confirmation sheet is shown, no introductory trial period is shown. App reviewers are testing the paywall in Sandbox mode. In our live app, which uses the same product and introductory offer, the introductory offer does show the free trial period correctly. What gives? I tried everything from upgrading the SDK, trying other products with introductory offers, new sandbox users, etc. with no success. Is this a bug on Apple’s sandbox system? Testflight with new sandbox user shows no introductory offerProduction shows confirmation screen with free trial
In the Launch Party, one of the presenters was discussing adopting the latest RevenueCat StoreKit 2 APIs. If I remember correctly, a modifier to the Purchases configuration was used. However, I can’t find that in documentation, and the Launch Party video does not seem to be available. Can someone point me in the right direction?
Hi, I'm currently working on implementing RevenueCat in my Unity game. I used the Subtester Project as a reference, modified my code, and simplified the options. I'm currently running the Subtester Project with my modified code, but I encountered an error stating, "There is an issue with your configuration." I have shared screenshots of the error message and the modified script. I would appreciate it if someone in the community could guide me through this issue. Screen Shot of my Modified Ui and Error message
Hello, it would be very nice to have a parameter in the paywall ui builder to redirect in reat-native (react-navigation and expo router). I am very excited because of the new paywall feature. GreetzTobi
I have an Android app in production (Play Store only) and I have no idea what the issue is. One of my users messaged me that the offerings does not show up and the Toast shows the message above. (I don’t have a stacktrace right now, because Crashlytics does not de-obfuscate properly.) I’ve checked similar issues around here, but most issues revolve either around Amazon Store or Emulators, so the issue is not fitting. One similar comment was this: This only happens with some users (some of them have already subscribed). Can anyone help me how to solve this or to get more info about this? I don’t know how many users are experiencing this issue either
Hello!I’m using the revenue cat for my game to handle all purchasing process…RevenueCat is working perfectly on iOS but not on Android… I added all products for both store and revenue cat dashboard but in android, offers are returning null… Here are the errors I got:Error: Code: 23Message: There is an issue with your configuration. Check the underlying error for more details.ReadableErrorCode: ConfigurationErrorMyRevenueCatManager:GetOfferingsCallback(Offerings, Error)Purchases:_getOfferings(String)Exception: NullReferenceException: Object reference not set to an instance of an object.MyRevenueCatManager.GetOfferingsCallback (Purchases+Offerings offerings, Purchases+Error error) (at <00000000000000000000000000000000>:0)Purchases._getOfferings (System.String offeringsJson) (at <00000000000000000000000000000000>:0)Is there is a possible reason for this?Thanks for help, in advance...
I am building an App in Flutter, previously I was using official In app purchase package for iOS and Android. There after purchase we were getting transaction Ids/OrderId but there’s no var available n PurchaserInfo object after purchase has been made.
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.