Discussion and help from anything related to RevenueCat.
Recently active
Just trying to understand how this is supposed to work. No matter how many times I may call getOfferings it returns asynchronously. Even if the debug messages say that it is vending from the cache, return is async. The doc says the following with regard to the completion block: “Called immediately if offerings are cached.” Is this just wrong or is the behavior I am seeing unexpected?
So we’ve been dealing with this issue being sent to us by the reviewer. We continue to find that your in-app purchase products exhibited one or more bugs when reviewed on iPad running iOS 15.7 on Wi-Fi. Specifically, the Subscribe button was unresponsive when tapped and we were unable to verify the purchasing process for your in app purchase items. Next Steps When validating receipts on your server, your server needs to be able to handle a production-signed app getting its receipts from Apple’s test environment. The recommended approach is for your production server to always validate receipts against the production App Store first. If validation fails with the error code "Sandbox receipt used in production," you should validate against the test environment instead. This is our first time releasing to app store. Should we ask the reviewer his/her appleID and add it as one of Sandbox testers?We appreciate all of your feedbacks.
We’re on the seemingly endless treadmill of missing receipts and offerings for our first iOS app store review and had a seemingly simple question that we struggled to find a good answer to.Should we remove our synced StoreKit Configuration File from our scheme before archiving to submit to the app store? Or is that file only used for xcode testing, so leaving it in the build is fine?Thanks.-nate
Background: I am sharing an entitlement across the App Store, Play Store and Stripe. Currently there is a single entitlement but I want to be able to add additional products and entitlements in the future.For my current issue:Entitlement identifier: “standard” is associated with 3 products (one on each platform)Offering identifier: “default” has one package “Monthly” which points to the same 3 productsProducts (3 of them) have unique identifiers (for example): ios_id, play_id and stripe_idSituation: A user buys a subscription in Stripe and I want to know if they have the same entitlement when I look at customerInfo in the App store or the Play store.Platform: React NativeSDK: "react-native-purchases": "^5.4.0"Issue: When I call Purchases.getOfferings(). I receive only the offerings for the platform I am on. Example on the App store the availablePackages array only contains the product I have associated with the App store: ios_id (which I would expect). With the package identifier as
Hi,Some of the users refunded our app’s subscription. Now, I'm not sure the RevenueCat dashboard is showing the correct revenue info, because revenue is not increasing despite new sales.We haven't had much refund-related Slack notifications in the past few hours, but revenue continues to drop: For example, we got two refund notifications, but revenue decreased more than that like 10 or more. I don’t know why.
We are getting Null discount from Revenuecat even though we have set up the discount in google play under offers (phase). SS of how Revenue cat is passing data. Structure we have set in Google play..In playstore the structure is like this:Subscription > Base Plan > Offer > Phase 1 ( Free trial) + Phase 2 (10/20/30% discount)
I see this question has been covered in more threads with no solutions I need help figuring this one out My AppleStore Subscription is ready for submission I am not using a sandbox account I am testing on device At this point I juts want to print my current packages Error: 2023-01-23 20:31:52.214271-0800 Recipe generator[6310:26159165] [Purchases] - ERROR: 🍎‼️ Error fetching offerings - The operation couldn’t be completed. (RevenueCat.OfferingsManager.Error error 1.)2023-01-23 20:31:52.214489-0800 Recipe generator[6310:26159165] [Purchases] - ERROR: 🍎‼️ Error fetching offerings - The operation couldn’t be completed. (RevenueCat.OfferingsManager.Error error 1.)2023-01-23 20:31:52.214532-0800 Recipe generator[6310:18871873] [Purchases] - ERROR: 😿‼️ There is an issue with your configuration. Check the underlying error for more details. There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or
I’d like to test if my app works better with subscription based or consumable based model.In subscription-based model, users will be presented a Paywall Screen to subscribe weekly to be a “premium” user, so they can play unlimited games.In consumable-based model, users will be presented a Paywall Screen to purchase X number of games. When they play X number of games, they will be presented another Paywall to top-up.Is RevenueCat Experiments suitable for this use case? Couple of points I’m curious are: Does Experiment Results work as expected with different monetisation models? Especially LTV is the concern point. With the nature of the Experiment, I need to show “Remaining Games”, “How To Get Refund”, “Current Subscription” etc. information in different screens. This means I need to know the bucketing value of the user. Does RevenueCat Experiments provide this? (I guess I can check current offering in different screens to get the experiment bucketing value and show correct UX)Thank yo
Hey, I'm using purchases_flutter dependency for a flutter app. When I'm testing to pay with iOS devices, the way to do it is by asking the user for AppleID and corresponding password. It should be working with iPhone biometrics instead. How can I do it?
Hello I have integrated revenuecat with appsflyer and some of my revenuecat events like: “trial cancel event”, “initial purchase event”, etc. not received in appsflyer.
We have a special business/premium model, and we need help migrating our model to a flutter app which uses IAP.Currently, our system works as follows:Users can purchase "packages" through Stripe. Each package contains one or more "digital accesses" and we send a package redemption ID via email. On our site, users can redeem the package (once they receive the email), and we credit the digital accesses to their account.Digital access has the following properties:moduleName - The user gets access to this moduledurationInDay - From the redemption, this will be the duration. I think the following would be the best way to extend our business model with IAP:We consider every successful subscription-related transaction as a package purchase, but this time the user does not need to redeem the package. Instead, we directly credit the package to their account. We set the appUserId to our user's unique identifier (UUID) for every user.There should be a Revenue Cat endpoint where we can query all p
We have a service where user could purchase multiple subscriptions.How do I set up a product so that a user could subscribe to the same product multiple times.Let me give you an example.When a user subscribe to one subscription which is for $100 a year.That user could create a group on our platform and use the pro features.Now, the same user could create multiple groups by subscribing to the same product multiple times. How do I achieve this with revenue cat on iOS?
Hi,import com.revenuecat.purchases.Entitlement throws Unresolved reference: Entitlement error in my Android app. The other imports are accepted.import com.android.billingclient.api.SkuDetailsimport com.revenuecat.purchases.Entitlementimport com.revenuecat.purchases.Offeringimport com.revenuecat.purchases.PurchaserInfoimport com.revenuecat.purchases.PurchasesAny suggestions?RegardsPeter
Hi!I decided to use the anonymous App User ID and add some reference into attributesThat way I can have IAP without a userlogin demand.In some cases end user want to just have a “nick” or other attribute. But it is impossible to search for the user using attributes. Could I suggest that search get a “attr” keyword addon?For example, if you search for; attr:secretstuff:infoaboutsomeone it will search for only attrib “secretstuff” and “infoaboutsomeone” as search text. I wonder also if it is not possible to search for order numbers, google for instances use GPA.3348-7181-1798-xxxxx number, that exists in the “transaction_id” for each event detail. Apple in same way too. Since the data exists, it could be straight forward adding that? Last feature request:I miss a “read attribute” feature in the SDK, so I can read these parameters without using a webhook and another third party to store that again.
We have several products defined in the App Store. Two include a free trial, the third does not.Depending on which is offered to the user, we dynamically want to control some messaging in the app. For the product without a free trial, we specifically want to suppress anything about “try for 3 days”.Unfortunately, debugging shows that the value for package.storeProduct.introductoryDiscount?.paymentMode is erroneously freeTrial.We are using SDK 4.17.2. I have verified that the product defined in the App Store has no introductory pricing set. I have also tried to verify that the product is setup in the RC dashboard without indicating any sort of trial period for it (although it doesn’t appear that the RC setup of products even asks for that info.)Either we’ve done something incorrectly on our end, or there seems to be a bug in the SDK.Before I file a bug report, I thought I would ask here.Thank you!
Hi,I have created a subscription and test it on device. I subscribed using my developer account as TestFlight what I see in customer history page is, multiple subscription after every few minutes. Please explain is it normal or I did something wrong in code or not setup properly ?. Look at the screenshot I hope you understand what I mean. I only done purchase once and close the app on device.
Can some one outline the workflow process for a subscription purchase on a website then redeeming it on an iOS app, for example unlocking a feature? I understand the purchase on iOS workfowiOS app initiate purchase > revenuecat > ios appstore to process payment > revenuecat > iOS app to unlock feature What is a web flow look like? , especially one with a stripe payment process? I know a user ID will have to be set on a website.
Hi, I have an iOS app with RevenueCat already implemented. I recently saw that `Purchases` is being deprecated for `RevenueCat` so I went ahead and updated our Podfile from `pod Purchases` to `pod RevenueCat`. I’m able to convert a lot of the code over to the new SDK, but there are a couple things that are missing. I am no longer able to get the currency symbol (eg. “$”) from this anymore. I used to be able to do something like `pack.storeProduct.priceLocale.currencySymbol` but `priceLocale` is no longer included in the SDK. My current work around is to do something like this: `pack.storeProduct.localizedPriceString.first(where: { !$0.isNumber }).map { String($0) }` which seems much less ideal. On the `StoreTransaction` object, the old version had a `original` field that allowed me to check whether it was first transaction or if purchases were being transferred over (transaction?.original == nil). However, the new version no longer has this. Is there a way I can see whether this is a f
In the docs it says:Subscriber attributes are only synced with RevenueCat servers on app launch, app backgrounded, and when purchases are made or restored.https://www.revenuecat.com/docs/subscriber-attributes Is “App launch” meant literally or do they mean once `Purchases.configure(‘SDK_KEY’);` is called?When exactly should I call `Purchases.setAttributes({ "age" : "24", "custom_group_id" : "abc123" });` then? Before `Purchases.configure();`, or after, or does it not matter because the app has already “launched” and the attributes will only be synced later?
Hi, I use both Branch and RevenueCat in my app. I’m setting up Branch to talk with the SkAdnetwork. In the Branch Docs it says the following: In the SKAdNetwork Config section of the Branch dashboard, select the YES radio button to have the Branch SDK handle all calls to SKAdNetwork.Do NOT opt-in if you decide to:Integrate directly with SKAdNetwork and call the SKAdNetwork functions natively. Use another 3rd party library to handle your app's interactions with SKAdNetwork. Before I opt in, I wanted to make sure this wouldn’t interfere with any RevenueCat Features.
I want to call iOS UIKit or StoreKit functions that would bring up the “Manage my subscription” sheet.As suggested here:https://stackoverflow.com/a/51127481/166612UIKit: Use StoreKits showManageSubscriptions(in:) (Documentation).SwiftUI: Use SwiftUIs modifier manageSubscriptionsSheet(isPresented:) (Documentation).Is there a built-in way in RevenueCat (I’m using the React Native version) to bring that sheet up?Otherwise I would suggest to implement this as it would be a really useful and simple thing to introduce.Any idea?Thanks!
So I am able to see the transaction id in revenue cat but for google the order id starts with GPA.1234-5678-9012-34567 (Paid apps and in-app purchases)GPA.1234-5678-9012-34567..0 (Subscriptions)but my transaction Id looks like this "transaction_id": "momccgonamhibjgoineacklf.AO-J1OwDsqdYk6v87sEv9MLdsuQPfo0y2-UfQe1FJvRpye5QIi7MThjIZyKk_7Yzyyr6SDRxTy1PzbQUZj3hIirzCKE3I56bf0BBeRMK9qVyB-MZh7ZablM"I need the order id the format provided by google how to do that.
Hello everyone. I am facing this issue, I have connected my huawei phone to Vscode and has installed my flutter app,When i try to fetch products, it throws this error. I/flutter (26282): Instance of 'Future<dynamic>'V/AudioManager(26282): querySoundEffectsEnabled...D/[Purchases] - DEBUG(26282): ℹ️ Vending Offerings from cacheD/[Purchases] - DEBUG(26282): ℹ️ Checking if cache is stale AppInBackground false does anyone know why is that, what am i missing?
I would like to have different buttons depending on the type of subscription (monthly, yearly) to be able to customize them individually. For the moment my setup works with a For Each (as below) and therefore does not allow me to distinguish between the different products by varying the design of the buttons. ForEach(currentOffering!.availablePackages) { pkg in Button { // BUY Purchases.shared.purchase(package: pkg) { (transaction, customerInfo, error, userCancelled) in if customerInfo?.entitlements.all["pro"]?.isActive == true { // Unlock that great "pro" content userViewModel.isSubscriptionActive = true } } } label: { Text("\(pkg.storeProduct.subscriptionPeriod!.periodTitle) \(pkg.storeProduct.localizedPriceString)") }
Hello.How can I access the "product ID" of the purchased product when the user makes a purchase? I want to add as many keys as product purchased with firebase using this product id.Eg:Product ID = ak_20_key -> I will add 20 keys to Firebase.Product ID = ak_10_key-> I will add 10 keys to Firebase.
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.