Discussion and help from anything related to RevenueCat.
Recently active
Directly after initializing the RevenueCat SDK in my AppDelegate.didFinishLaunchingWithOptions method, I call `Purchases.shared.appUserID`. I briefly looked into the implementation and saw that `IdentityManager.currentAppUserId` (which is used by `Purchases.shared.appUserID` to retrieve the actual id) uses a `fatalError` when no cached app user id is present:``` var currentAppUserID: String { guard let appUserID = self.deviceCache.cachedAppUserID else { fatalError(Strings.identity.null_currentappuserid.description) } return appUserID }```My setup:```Purchases.configure( with: Configuration.Builder(withAPIKey: "...") .build())Purchases.shared.delegate = selflet appUserId = Purchases.shared.appUserID // <- safe?```I assume, that the initialization process via `Purchases.configure` is synchronous and that I can safely call `Purchases.shared.appUserID` as shown in the code snippet above. Is this correct or are there any scenarios in which
Hello, I'm getting “something goes wrong error” on Android. It was working in the past but started not working suddenly. What I have and I have tried so far:My app is live, was released on Google Play Store I went through the Checklist I tried to set a new application on RevenueCat but it’s still the same. I can get all the products on the app I tried to buy a product both on development & live it gives the same error. I tried a different account (in case my account can be problematic), it’s the same When I run logcat, it gives me these two things I don’t know what to do now and I don’t get if the problem is on RevenueCat side, my Google Play Account or the code. I’d appreciate any help
Hello !I’m using Flutter & RevenueCat for my app since a few months, and I’m on my way to make my app available for multiple countries.I followed the docs to add localizations on both store, and everything seems to be good on my side.In my app, the device’s locale is used as default language but I leave the choice to the user to change it in the application settings.By doing that, I noticed that the informations fetched from revenue cat was still on the original language. I was wondering if it’s possible to change it on runtime ? How could I handle this scenario ? I found a related topic but I’m not sure if the answer is still up to date or relevant. If you have encounter the same situation, can you give me some hints ?Thank you for your time !
Currently react-native-purchases library works great for both iOS and Android. On the other hand whenever we implement react-native-purchases-ui, it will only work for iOS but fails in Android with this duplicate class error:com.atlassian.commonmark:commonmark:0.13.0) and jetified-commonmark-0.21.0 (org.commonmark:commonmark:0.21.0) Duplicate class org.commonmark.internal.HtmlBlockParser found in modules jetified-commonmark-0.13.0 (com.atlassian.commonmark:commonmark:0.13.0) and jetified-commonmark-0.21.0 (org.commonmark:commonmark:0.21.0) Duplicate class org.commonmark.internal.HtmlBlockParser$1 found in modules jetified-commonmark-0.13.0 (com.atlassian.commonmark:commonmark:0.13.0) and jetified-commonmark-0.21.0 (org.commonmark:commonmark:0.21.0) We’ve tried everything from downgrading libraries, upgrading our react builds, etc. That error just does not seem to go awayWe’ve searched our project and arent using any commonmark packages or anything anywhere. Has anyone had this issue?
Hi everyone,I'm currently experiencing two issues with my app while testing on TestFlight: sandbox transactions are not going through, and there's a looping problem during the transaction process. Despite having everything configured correctly, these problems persist. Here are the details of my setup, the steps I've taken so far, and some code snippets for reference:Setup Details:App Configuration:App ID and Bundle ID are correctly set up in App Store Connect. In-app purchase product IDs are configured and match those in the RevenueCat dashboard.RevenueCat Configuration:API keys are correctly set up and match the ones used in the app. RevenueCat is initialized early in the app lifecycle with Purchases.setLogLevel(Purchases.LOG_LEVEL.VERBOSE).Testing Environment:Testing on iOS devices through TestFlight internal testing. Using the latest version of the RevenueCat SDK.Steps Taken:Checked API Keys and Configuration: Verified that the API keys and configurations are correctly set up in the
Hello RevenueCat Team,I recently submitted my app to Apple, but it has been rejected twice because of Guideline 2.1. According to RevenueCat documentation, the steps that Apple cited as problematic are already automatically managed by RevenueCat, which makes the claims by Apple simply incorrect.I have thoroughly reviewed the specific error mentioned by Apple and, after a detailed examination, I can confirm that the issue does not exist in my app. Additionally, I am unable to place and test my app on TestFlight as it was previously removed for a different reason.Given this situation, I'm unsure how to proceed. Could you please advise on what steps I should take next? Best regards.
I have a Mixpanel event that tracks anytime a user has selected a plan and then presses the button to apply that plan or purchase it. The numbers for those events are much higher than the numbers I’m seeing in RC. Why would this be?I’m guessing it could be from when users cancel the action after they get their native UI element popping up to actually make the purchase. If this is the case, can I track that cancel event somehow? Or can I track the actual purchase event from that native UI element? Additionally, if this is the case, what would be an acceptable/expected rate of users backing out from this screen? I want to be sure that there isn’t something else happening here.
I am trying to use invoices api for my iOS app to verify payments.It’s unclear to me if the invoices api is in beta or not due to seemingly conflicting information.In the RevenueCat Documentation “RevenueCat Billing … currently in beta”: In the API V2 Documentation In the above screenshot we don’t see any warning for beta use. Is this api get request reliable for production use to verify how many invoices have been processed by a given customer? If yes, how long until after the payment is processed do the invoices updates (minutes/hours/days?). Also what is the lifetime of invoices. Do they never expire? Thanks
is there any way to check if the user already took the trial? I want to know this information to stop showing the ad for the trial because already took it one time
Hi. I'm still evaluating whether to use RevenueCat. I have a use case where I verify the subscription status of some user in my server. The REST API v2 docs mention fetch_token in the param. Is that required or is app_user_id sufficient on its own? It says fetch_token is the app store receipt file for iOS in API v1 docs but how do I get that in flutter SDK? Thanks!
Hello!I wonder what the best way is to show a discount to a user after they have canceled their subscription. I want to show a different paywall to the user. I am using the Capacitor Plugin and a custom paywall.Is there a good guide on this topic?Ist the preferred way to use the new targeting feature?Kind Regards,Marius
I am already using revenuecat with Google Play for one app. Now I am going to release a second one that also has inapp products.Do I need do create a second service account in Google Play? (https://docs.revenuecat.com/docs/creating-play-service-credentials 2.) 2. Create Service AccountNext we need to create a service account. This is done from the Google API Console. 2a. Select Create Service Account Or can I use the one I created for my first app also for the second one?There is no guidance whatsoever if you have several apps and the whole pricess seems very complicated at first glance. I don’t want to break anything in my actively selling app.
Sorry new here, can where i can get a Order form?
Here is a Paywall I created on the RevenueCat Paywall system. Then I created a localization string in my Xcode project: I also created other localization string, but in the app, only the “Full access just for ...” part not translate. Did I do some part wrong? In the simulator, as you can see other contents has been localized, except for the “full access ..” line.
Hi,I am looking to implement a PaywallFooterViewController is my UIKit based app. However I am unsure about a few things. I have the FooterView presenting over the top of a view, but the space above the FooterView is dimmed black and obscures the view behind it. How do I change it so the view isn’t black?And when I pull down on the FooterView to dismiss it, is there a way I can run a block of code that will dimiss the view behind it as well? Many thanks!Dan
Can RevenueCat track if a user has used up a consumable product? Let say a user bought a pack of 100 tokens and the user has used up 50 tokens already, can RevenueCat track that or it should be handled in my own Backend?
Do you plan to bring condensed footer in flutter too?
In subscription retention chart, I found the increase of subscribers count compared to previous month.As you can see the screenshot below, the number of subscribers who continues for 5 months is 4. But the one who continues for 6 months increases to 5. What happened here?I expect the number of subscribers is only decreasing, never increase.Thank you for any help in advance.
@kaitlin This is the second post related to the same issue: This time, I’m a 1000% sure there is an issue on the RevenueCat part of the integration.I did tests and when RevenueCat sends an event to MixPanel or update my users profile in MixPanel it also changes the User’s location to its servers location: Ashburn, Virginia, USA.The support team has not been able to help me fix it yet and that’s why I’m here again, to try to reach more people from RevenueCat’s team to help me escalate this.To all RevenueCat users, please if your source of truth is MixPanel and you need to know where are your users from, I suggest you to review correctly the information, compare your events location vs the user’s location in MixPanel, if they are different and the user’s location is Ashburn Virginia USA, I request you help me bump this post.Thanks all in advance.
I have added RevenueCat follow the guide with SPM in my project. But when I `import Purchases’, I got No such module 'Purchases' error.Follow this link to set up API keys in project.https://www.revenuecat.com/docs/platform-resources/apple-platform-resources/swiftui-helpers
We are using the RevenueCat Paywall feature and have populated the `Package details for an introductory offer` field thusly: `First month free, then {{ price_per_period }}`We have waited 24 hours to ensure propagation from Apple. We have used brand new Apple accounts for testing.We have completely removed the app from testing devices, reinstalled, and signed up fresh.We cannot get the Introductory Offer to display in the paywall as a Free Month as defined in the Apple Developer Portal.
Hi there, we are refactoring the way we do in-app purchases on Google Play, and from the RevenueCat documentation I see that we can use RevenueCat without creating products 1-1 for every Google Play product we have. The information is limited so I wonder: What are the downsides to not defining products in RevenueCat, when we are not using entitlements or offerings?
I am using RevenueCat's Flutter SDK to manage user subscriptions in my app. For associating user content in my database, I rely on the initial anonymous user ID generated by RevenueCat since i do not want to have to setup user accounts.There is an issue though when a user deletes the app and reinstalls it, or installs the app on a new device and restores their purchase, RevenueCat generates a new Alias instead of using the original anonymous id. This is a problem because there is a maximum limit of 50 aliases.Is there a way to make it so when the user restores a purchase it uses the original Anonymous App User ID instead of creating a new one? Here is the relevant portion of my code: class SubscriptionProvider with ChangeNotifier {bool _hasActiveSubscription = false;String _activeEntitlement = '';String _anonymousId = 'unpaidUser'; // Default to 'unpaidUser'bool get hasActiveSubscription => _hasActiveSubscription;String get activeEntitlement => _activeEntitlement;String get anon
Future<void> checkAndUpdateSubscriptionStatus() async { try { print("Fetching customer info..."); CustomerInfo customerInfo = await Purchases.getCustomerInfo(); print("Customer info fetched successfully."); print("Active entitlements: ${customerInfo.entitlements.active}"); if (customerInfo.entitlements.active.isNotEmpty) { // User has at least one active entitlement print("User has at least one active entitlement."); if (customerInfo.entitlements.all["50inquiries"]?.isActive ?? false) { // User has an active "50inquiries" subscription print("User has an active '50inquiries' subscription."); AppData.isVip = 1; } else if (customerInfo.entitlements.all["unlimited"]?.isActive ?? false) { // User has an active "unlimited" subscription print("User has an active 'unlimited' subscription."); AppData.isVip = 2; } else { print( "User does not
Hi,I'm creating a purchase history in one of my apps, I would like to use the RevenueCat transaction ID to trace the specific transaction to provide customer support.The problem is that this ID is not shown anywhere in the dashboard, not even in the details of individual purchases.How can I view it?
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.