Discussion and help from anything related to RevenueCat.
Recently active
Good day… I am trying to ensure that when a user cancels their transaction (ie. is shown the iOS wallet / purchase sceen, clicks cancel) they are not provided with benefits of a subscribed user. At this time, I am following the suggestion of the example weather app which uses the below method… @Published var customerInfo: CustomerInfo? { didSet subscriptionActive = customerInfo?.entitlements[entitlementID]?.isActive == true }}How is a subscription active if they have cancelled the transaction and the transaction is nil? (lldb) po customerInfo?.entitlements["hb-2022-premium"]?.isActive▿ Optional<Bool> - some : true (lldb) po transactionCancelledtrue (lldb) po transactionnil
Is there a way to turn off sandbox in a build with debugger attached to it? I have an app that had in app purchases before I have added revenue cat. I wanna test upgrading user from the old purchase to new one. However this is not possible in sandbox because I could not think of way to get the receipt working. (replicate the old purchase)I have a subscription that is approved by apple and should work in prod and I also bought the old purchase that I am upgrading from. Currently I get an error saying:App running in sandbox without a receipt file. Restoring transactions won't work until a purchase is made to generate a receipt. This should not happen in production unless user is logged out of Apple account I would like to test this (as in production) before I actually release this to production. Any idea how could I go about it?
I have promo codes that I created on google play for my user. With this code, the user can use 3 months free of charge. When the user logs in on another device, I can't get the information that the user is in the trial period. Therefore, the purchase screen appears again. how can i solve this. I understand from the code below that the user is a premium member. Future updatePurchaseStatus() async {final purchaserInfo = await Purchases.getCustomerInfo();final entitlements = purchaserInfo.entitlements.active.values.toList();_entitlement = entitlements.isEmpty ? Entitlement.free : Entitlement.premium;if (entitlements.isNotEmpty) { _entitlementInfo = purchaserInfo.entitlements.active.values.last;}notifyListeners();}
Hi, I'm trying to use this endpoint but it always returns the same error. {"code":7227,"message":"Content-Type not application/json"}I tried a few options of the Content-Type but nothing changed. curl --request POST \ --url https://api.revenuecat.com/v1/subscribers/****/subscriptions/****/revoke \ --header 'Accept: text/plain' \ --header 'Authorization: Bearer *****' \ --header 'Content-Type: text/plain'Thanks in advance.
I was testing my app tonight making sure changes were working and I went to test my subscription button in iOS. When I click it, it pops up an error that I have a problem with my configuration. I haven’t changed anything in the code. I did, however, set my prices to increase today (March 1st). Does this cause problems with RevenueCat? Is it something that will resolve on its own? I have found nothing to help me. Everything has been working great for the past week and it just tanked tonight.I have verified that everything works great with Google. My Apple products are not found for some reason. I even deleted my project and set it back up. Nothing. I have nothing to sign for Apple in my App Store Connect account.
According to the docs (https://www.revenuecat.com/docs/creating-offerings-to-test) it’s best to “use distinct Subscription Groups on the App Store for each RevenueCat Offering when testing”.This seems like things would get out of hand? Here are the issues I see:Each subscription in a subscription group has a unique product_id. RevenueCat suggests we use the following format: rc_2999_1y_1w0. These ids can’t be duplicated across subscription groups. So you would never be able to test the same setup in a new group. Should I be adding a new annotation to product ids if I want to use experiments? Something like: rc_2999_1y_1w0_exp1 Apple doesn’t seem too keen on you offering multiple Subscription Groups as there is a warning that pops up. I guess RC makes sure that a single user never sees multiple offerings… but what if that person were to sign out and back in with a new email? And they see the other offering? Couldn’t they end up purchasing a subscription from the other group at that po
The [docs](https://www.revenuecat.com/docs/webhooks#webhook-events) don’t mention about the event type when a promo code is used for a subscription. As soon as the user redeems a code, I want to get a webhook event so that I can update user’s data on my backend. How can I then do it?
Hi,I am adding revenueCat into my app and have copied parts of the purchase product code into a new form. I am using flutter 3.3.10 and it is not compiling the example without a lot of exceptions. I think I have addressed most issues, however I am stumped on the customerInfo.In the example its declaired at the start of the class as:CustomerInfo _customerInfo;However flutter will not accept this and requires it to be either initialise or marked as late. If you mark it as late then you get an exception error as soon as you try and run the code long before its set.How do you initialise _customerInfo?Is there example code that works with the latest release of flutter?many thanks
I used an offer code to purchase a monthly subscription. However, RevenueCat is showing the value as 0 as opposed to £3.99. { "app_id": “removed", "app_user_id": "removed", "currency": "GBP", "entitlement_ids": [ "fullaccess" ], "environment": "PRODUCTION", "event_timestamp_ms": 1628613642804, "expiration_at_ms": 1631292033000, "is_family_share": false, "is_trial_conversion": false, "price": 0, "price_in_purchased_currency": 0, "product_id": “removed", "purchased_at_ms": 1628613633000, "store": "APP_STORE", "takehome_percentage": removed, "transaction_id": “removed"}
Sorry for the basic question, maybe it’s trivial, but I promise that I tried to find solutions online before posting. :) So I have created subscriptions in both Android and Apple stores, setup the entitlements, offerings and products in RevenueCat for both platforms. The subscriptions show up on the Android emulator and also a real device, but they for some reason don’t load on my TestFlight builds on iOS. The status of the subscriptions is “Ready to Submit” on the app store connect page, but I don’t want to submit an actual “live” version yet on the app store, only test it first in TestFlight. What am I missing? I also read somewhere that I need to upload a debug build to TestFlight, not a release build to have the subscriptions show up. How do I go about it? THanks a lot in advance!
My Flutter app is released on iOS but I’m looking to add macOS support. My app builds, installs, and runs on my M1 Macbook Pro.System:Flutter 3.7.3 (channel stable)Dart 2.19.2DevTools 2.20.1RevenueCat Flutter package (purchases_flutter) 4.10.0Ventura 13.2.1XCode 14.2Flutter doctor has not errorsThe following error:<...> [Purchases] - ERROR: 😿‼️ Error performing request.<...> [Purchases] - DEBUG: ℹ️ API request failed: GET /v1/subscribers/$RCAnonymousID:<...>/offerings: Error performing request.<...> [Purchases] - ERROR: 🍎‼️ Error fetching offerings - The operation couldn’t be completed. (RevenueCat.OfferingsManager.Error error 0.)Underlying error: The operation couldn’t be completed. (RevenueCat.NetworkError error 2.)<...> [Purchases] - DEBUG: ℹ️ GetOfferingsOperation: Finished<...> [Purchases] - ERROR: 😿‼️ Error performing request.<...> [Purchases] - DEBUG: ℹ️ Serial request done: GET subscribers/$RCAnonymousID%<...>/offerings, 0 requ
I have the following code, essentially straight from the documentation using react-native-purchases const PackageItem = ({ purchasePackage, setIsPurchasing, styles }) => {const {product: { title, description, priceString },} = purchasePackage; const navigation = useNavigation(); const onSelection = async () => {setIsPurchasing(true);console.log('being Purchase');try {const { purchaserInfo } = await Purchases.purchasePackage(purchasePackage);console.log('try purchase...');if (typeof purchaserInfo.entitlements.active['Pro'] !== 'undefined') {console.log('User has All Access');// navigation.goBack();}} catch (e) {if (!e.userCancelled) {console.log('error: ', e);Alert.alert('Error purchasing package', e.message);}} finally {setIsPurchasing(false);}};``` When I click on the subscribe button, I go through the dialogue and sign in and the subscription starts to process. However, once it begins to finish the transaction, it stops at the ```if (typeof purchaserInfo.entitlements.active['P
When attempting to purchase a product I’m receiving an alert from Apple that says "You are not authorised to make purchases of this InApp in Sandbox at this time." (image below). Has anyone encountered this before and has a solution?
I have tested non-subscription purchases in the sandbox, but I am having difficulty deleting user data. Is this the same as when running the app in production version? Also, I'm concerned about the possibility of users requesting a refund and the app not returning to its regular version. I hope my questions can be answered quickly since I'm new to using this service
My my app got approved on the App Store 36 hours ago and was released to the public at that time. Subscriptions work perfectly in TestFlight, but when using the app downloaded from the App Store I get a message saying “None of the productions registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if tone is being used). More information: https://rev.cat/why-are-offerings-empty”. I took at the site and everything checks out - all necessary agreements have been signed on app store connect, the subscriptions are in an “approved” state, the product identifiers match, and I’ve waited longer than 24 hours. Has anyone been in a situation similar to this? Do I just need to wait a little while longer?
I’ve waited for over 24 hours (36 hours now), the productIDs all match, and everything works in testflight, all the subscriptions are approved in App Store Connect. However i still can’t collect any subscriptions on the app store build.I did recently change the reference names, but can see nowhere in revenue cat where the reference names are even mentioned, so doubt that would be the issue. Is there any further advice or information anyone can spare us? Struggling to see what we could be missing as everything looks to be in good shape based on the tests, sandbox and logs.
Skipping products request for these products because they were already cached: ["company.product.id"] INFO: ℹ️ Receipt parsed successfully2023-02-16 21:00:14.398595+0200 MyAPP[96563:5580791] [Purchases] - DEBUG: ℹ️ PostReceiptDataOperation: Posting receipt: {This is what I see in the log. When testing consumable purchases according to this guide https://www.revenuecat.com/docs/non-subscriptionsis it expected behaviour on sandbox which won’t happen in production or I have error in my setup? My Expected result is that payment form shows up on each consumable purchase
We’d like to get purchase information about all the users we have in our database. For that, we need to join on the app_user_id. In some cases, it appears as an Alias on RevenueCat. Is there a way to export those aliases, either in the ETL or in the csv exports?
The context is TRANSFER webhook event. I assume the two lists always have the same length. So we have a one-to-one transfer map, like transferred_from[k] to transferred_to[k]. Is my assumption correct?
Hello, Platform: iOS (Swift). Based on: https://www.revenuecat.com/blog/engineering/implement-apple-family-sharing and https://www.revenuecat.com/docs/apple-family-sharing We’ve enabled Family Sharing: set up in App Store Connect ✅ Initialize the SDK as early as possible in your app flow so that transactions in the queue are detected right away. ✅ On the sandbox we tested the following with correct result: Purchase a subscription. Let it expire naturally. Go to Settings > App Store > Sandbox Account > Manage Subscriptions > and subscribe again. This will generate a new transaction that shows up in the queue as soon as you re-open the app. Paywall disappeared as expected ✅We also implemented Restore purchase. ✅ Yet on App Store family members who access the app see the paywall and restore purchase doesn’t help. ❌ We are looking for an advice about what we may be missing here?
Several days ago out App Store Payment Agreement Renewal has expired and we created new one.After this changes purchases works fine in released in store builds.But the same version in testflight or in connected iphone doesnt work.I alredy tried everything.Someone help me pls
Hey community, I ran into a problem that I can't solve.When i execute Purchases.shared.purchase(package: Package) as async throws function, i cant really stop the Task { } higher in the call hierarchy and because of that, when user tap subscribe/buy → Task with Purchases.shared.purchase starts to execute → then user close VC or navigate to another → Task is still continues to execute and shows a system bottom sheet with purchase description, price and buy button, but I'm doing everything to cancel task. But nothing works.Is there any way to cancel a Task that has already started a RevenueCat system call to the StoreKit system ???
We’d like to implement per-seat Stripe subscriptions with RevenueCat. I saw the documentation on the topic and I have a few questions. Our goal is to create a per-seat billing system similar to what you would find on Figma or Loom. The system would imply that:users are able to create teams and add members to the team using emails when adding a new seat/user in the team, the admin’s subscription will be billed accordingly (price x number of seats/users) members of the team would appear as paid subscribers in the Stripe SDK Revenue is counted only onceA few questions:What would be the best setup to integrate this with RevenueCat? I saw the Stripe Integration page, but it seems to imply a user-to-subscription link. Would a workaround be to link multiple users to a single Stripe subscription?
Hey,We are building products with an unusual subscription model. I would be interested to know if someone successfully implemented such a subscription model with RevenueCat. I'm also interested to hear about suggestions. We are building apps for iOS and Android where an ‘admin’ user could purchase multiple subscriptions with his AppleID/GoogleID and assign each subscription to a managed user (i.e. with a different AppleID). So we are trying to implement a subscription model with 2 unusual characteristics:Multi-quantity subscriptions Assigning subscriptions to other usersNote that most of our users would only want to purchase 1 or 2 subscriptions, so we can fake multi-quantity subscriptions by creating multiple products/packages/entitlements.Here is how we imagine the flow:The admin user signs in in our app. The app has a custom App User ID to identify this user that we will use it with RevenueCat. The app fetches the packages from RevenueCat. The app receives 6 packages in a single off
I realize I’m using beta versions of macOS Ventura and Xcode so this may be an Apple bug, but I was wondering if anyone has had troubles with subscribing recently?I even created a new testing email address in App Store Connect, but I still have problems. I can go through the subscription process, but when it gets to the end and displays the “Your all set” alert, I get an “unknown error” appear after that and the subscription doesn’t take.Here’s some of the error messages I’m seeing in the log:[Purchases] - DEBUG: ℹ️ StoreKit1Wrapper (0x0000600002515d40) removedTransaction: tf_annual_sub_1 (Couldn’t communicate with a helper a2023-02-20 14:59:45.422071-0700 Tap Forms Pro[25049:318385] [Purchases] - ERROR: 💰 Product purchase for 'tf_annual_sub_1' failed with error: Error Domain=RevenueCat.ErrorCode Code=0 "Unknown error." UserInfo={source_function=handleFailedTransaction(_:), NSUnderlyingError=0x600000c00f00 {Error Domain=NSCocoaErrorDomain Code=4097 "Couldn’t communicate with a helper
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.