Discussion and help from anything related to RevenueCat.
Recently active
Hi. There are other posts about transferring apps, but they don’t have enough details and don’t answer my questions.I’m going to transfer my app to another App Store account and I’ll have access to it as a developer or even as an Admin. When should be a new App Specific Shared Secret created? How can I update the Shared Secret? What else should I do?Could you provide me with step by step guide? Thank you.
Hi,A quick question.I’m using RevenueCat with the sandbox user. I have two same-level subscriptions, one is monthly and the other one is annual. I added them into one entitlement. When I try to purchase each of them separately, everything works as expected. But the issue is, I subscribe to the annual plan, after that I try to subscribe to the monthly plan, and its purchases monthly without any alert, like I have not subscribed to the annual plan. I’m expecting the alert which says, “Do you want to modify your subscription to monthly, and it will begin and you will be charged after x date...”. This alert pops up when I try with the StoreKit, but not popping up with the RevenueCat. Is this normal, will it work when it is in production? My app is v1.0 and has not been accepted yet.My purchase function like;Purchases.shared.purchasePackage(package) { transaction, info, error, userCancelled in …Any idea?Thank you.
Hiya, I’m looking to add trials to my existing in-app subscriptions, but had some questions regarding the webhook events. I noticed that when starting a trial in the sandbox, the INITIAL_PURCHASE event is triggered, which is great. I was wondering:If the user continues with the trial and the trial automatically converts to a paying subscription, is another webhook event sent? We have a trial status against users on our API, so we would be looking to update this status based on the data that comes from the webhook. Would the RENEWAL event be sent here? If the user cancels the trial, am I correct in saying the the CANCELLATION webhook event is triggered?Thanks in advance,Joe
Hello,We have set up our apps perfectly with RevenueCat and are currently testing in the SANDBOX mode.A customer purchases an in-app subscription from the app andAfter sometime cancels it directly from the app store / play store. Re-subscribes it directly it from the appstore.In both the cases revenue cat is informed by S2S notifications but still these events are not updated in revenue cat.Are we missing something? How do we do this??
What happens if my app exceeds $10k MTR in a month on the Free plan, and miss to upgrade to the Starter or Pro plan after period . the IAP feature will still work?
Hello,I have a question.What is the difference between ‘total revenue’ and ‘proceeds’ in the revue chart?Why are there so many differences between the two? Thank you.
My react native app has been in production for over a year. Without submitting a new release, payments are failing on Android. This should mean that the issue is either on your side (RevenueCat) or Google Play. Already lost 40% off my subscribers in a couple of days. I haven’t changed anything, however this suddenly came up in development:“[Error: There was a credentials issue. Check the underlying error for more details.]”Doesn’t say anything more detailed than this. On Android payments go through, however, then there is no active subscriptions to be found when requesting in from the SDK.No issues on iOS. Would be great to sort this out ASAP, loosing subscribers as we speak:/
Hi all, I could not find much information regarding syncPurchases in SwiftUI.I am releasing a big upgrade to my app and have changed my RC SDK from V3 to V4 to take advantage of StoreKit2To make the transition smooth I wish to sync my users purchases and am doing so via my AppNameApp.swift file .onAppear method.is calling Purchases.shared.syncPurchases {} on the first launch of my upgraded version sufficient for this? Thanks so much
When I test the /subscribers/{app_user_id} endpoint on the API reference page using my public key, I get a 200 response.However, when I run the same code from my Node cloud function, I consistently get back a 401.Any ideas as to why this is?
I noticed that even on a device running iOS15, Purchases.showManageSubscriptions() loads the subscriptions UI via Safari rather than a native action sheet. This seems to be because we have: SystemInfo.appleSubscriptionsURL = URL(string: "https://rev.cat/manage-apple-subscription")This url never passes the isAppleSubscription() test, therefore we always fallback to the openURL() method.Is this by design?
We are migrating from sdk v3.x for android (java).The isBillingSupported method is not marked as deprecated in the new sdk, it is just gone. What is the replacement for this functionality? from v3.1Purchases.isBillingSupported(this, new com.revenuecat.purchases.interfaces.Callback<Boolean>() { @Override public void onReceived(Boolean isSupported) { if (isSupported) { // Billing Services are available queryStoreInventory(); } else { openPurchasingOffDialog(); } } });
I just noticed the new docs have:If you are not using RevenueCat's anonymous IDs as described above, and are instead providing your own app user ID on configuration, do not call configure in application:didFinishLaunchingWithOptions:. Instead, call the configure method in your root view controller's initialization method.This is a fairly major change, since my app has a complex init sequence. It would be helpful to know more about what's going on here, so that I can correctly adjust my init sequence.I have read about the unavailability of the KeyChain during prewarming, but what exactly is requiring this change?
Error 404 When I try to access the sample using android java
I’m submitting an update that add subscriptions. We offer full price, and sale price. A user only sees 1 at a time, controlled by our logic. So when Apple tests, they will only see full price.Do you have any advice how to get Apple to approve? I’m concerned that they will reject the subscription at the sale price that they won’t be able to see in the app. (This is an app that already has many approved IAPs.)Do I need to submit with 1 of the subscription IAPs, get approval, and then submit again with the other subscription IAP? (I can control server side which price point they see.)thanksMark J
Hello RevenueCat community!I work in a company where we are integrating RevenueCat in our React Native application. I have a scenario where a user are able to buy a monthly subscription, but also several products. At the moment a user adds items (can be consumables or subscriptions) in a cart and then does a checkout. This flow results in us looping over all items in the cart and using PurchasePackage(package) for each individual item in the cart, this flow causes one popup (on iOS) per item which in a UX world is quite annoying. My question is: Is there a way to do some kind of a bulk purchase so that the user only has to accept on the pop-up once instead of “times equal to products in cart”?Best regards,Emanuel
I’m building an iOS app with a backend providing user accounts. Not sure what the best practice to integrate it. Each user is supposed to have an active subscription (with a free trial in the beginning). I set this up in App Store Connect. The backend includes a webhook that is triggered by RevenueCat. When anything happens, I refresh the latest customer info and update the User table. In the iOS app, I use the RC API to retrieve the customer info and active subscriptions. I set the Transfer behavior to Block to make sure one subscription is good for one user account only. Whenever the user logs in, I updated the RC id with the proper user id. Do I miss something? How to properly handle Restore purchase?
We’ve recently started developing a React Native app and are now at the stage of looking to configure IAP and integrate RevenueCat. However we’re running into the following issue when building the app with react-native-purchases to our Google Play testing track via fastlane:Google Api Error: Invalid request - Release uses an old version of Google Play Billing.I’m aware this is likely to be a result of the recent update to version 5 which isn’t currently supported with RevenueCat, but is there a workaround for this in the meantime? Or is it only possible if the app already had subscriptions under version 4 of the billing library?
I’m running on a real device connected to Xcode, and I’m getting this error when first launching my app:Invalid Product Identifiers - ( "rw_beta_elite_19_1m_2w0", "rw_beta_elite_99_1y_2w0")2021-09-05 17:43:04.367091-0400 Rewire Beta[29316:9415860] [Purchases] - DEBUG: ℹ️ 2 completion handlers waiting on products2021-09-05 17:43:04.367210-0400 Rewire Beta[29316:9415594] [Purchases] - WARN: 🍎‼️ Could not find SKProduct for ( "rw_beta_elite_99_1y_2w0", "rw_beta_elite_19_1m_2w0")There is a problem with your configuration in App Store Connect. I’ve verified that my identifiers match up to what’s in App Store Connect:https://share.getcloudapp.com/04uxEz42 I’ve also verified API key is correct, iTunesConnect App-Specific Shared Secret is correct, etc. Made sure the in-app purchase capability it enabled in Xcode for my target. Any ideas?
How to check the status of a subscription suspended to block access to the application content because even when a subscription is suspended the right is still active. With the free plan.
I have a question about the StoreKit 2 isEligibleForIntroOffer behavior when testing with a sandbox user. On my iPhone I’m logged in with a sandbox user (via Settings > App Store > Sandbox Account) where I’ve cleared the purchase history via App Store Connect > Users.When I run my code on the device, the “StoreKit 1” way of determining if a user is eligible for a free trial for a renewable subscription (see “Determine Eligibility” section in Implementing Introductory Offers in Your App) works as expected. However, when I use the product.subscription.isEligibleForIntroOffer or Product.SubscriptionInfo.isEligibleForIntroOffer(for:) function with StoreKit 2, they both return false, even though this should be true since the receipt has been cleared. I was wondering if anyone has come across this too when testing with a Sandbox User...where isEligibleForIntroOffer doesn’t return the correct value.Code-wise, I’m using very similar logic found in RevenueCat’s project: TrialOrIntroPr
Hello, I have a case that I can’t seem to handle. Currently, if User1 with an alias logs in to the application from a device and buys a subscription he will get it just fine. Next, User1 does a logout and User2 will login on the same device and then something strange happens. The subscription is being transfered from User1 to User2. Is there any way to avoid that and link a subscription to the User ID alias?Also, is there any way to get a purchaseinfo by alias? Thank you
Hello,I would like to know how many in-app purchases have occurred on each Android and iOS markets.Is there a way in RevenueCat?
Hello everybody, How is handled the case where a user subscribe from platform A (i.e. iOS) and then login and subscribe from platform B (i.e. Android)? There’s any check we should do or recommendation we should consider to avoid that the same user subscribe and pay twice from 2 different platforms? Thank you.
I have an existing app (“Cameras”) with a subscription product and lifetime product that share the same entitlement. I’m creating a new app (“Lenses”) and I want to share subscriptions between them, but not lifetime purchases. I believe I can do this without having to make a new entitlement, and just checking the allPurchasedProductIdentifiers. For example, here’s what it might look like in the Cameras app:Purchases.shared.getCustomerInfo { (purchaserInfo, error) in if let allProducts = purchaserInfo?.allPurchasedProductIdentifiers { if allProducts.contains("com.grayhour.cameras.lifetimeaccess") { // lifetime access to Cameras was purchased at some point unlockContent = true } else if allProducts.contains("com.grayhour.cameras.monthlysubscription") && purchaserInfo?.entitlements["Full Access"]?.isActive == true { // subscription access to Cameras was purchased and is still active unlockContent = true } else if
Latest Purchase Date of user a/c to the purchaser info library is: 2022-05-16I purchased the product today (17th) but still the last purchase is on 16th Why does the RevenueCat not updating the value when I am fetching latest purchase in code where as on the dashboard it shows all the information ?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.