Get help with your SDK implementation.
Recently active
I would like to ask if its possible to use the StoreKit transaction observer while having the RevenueCat installed. I know that RevenueCat exposes this observer in the shape of of a delegate or a `AsyncStream` but due to the abstraction layer doesn’t return some of the data (transaction id) we require. Currently, we are planning on just using the StoreKit transaction observer to read the transaction id and send it to the backend and have the RevenueCat process the transaction and finish it. Will the transaction observer still work with StoreKit? What are the best practices? Any issues I should be aware of. Thanks
Hi team,Does purchasing a consumable (or any non-subscription) Product effectively trigger all purchases to be restored/synced?Example scenario:1. I subscribe to a paid tier in an app2. I sign out and log in as a separate user3. I purchase a consumable e.g. gems4. `CustomerInfo` contains the entitlements from step/user 1Just checking if this is expected behaviour i.e. purchasing a product causing all previous purchases being synced even if we have not called `syncPurchases` or `restorePurchases` explicitly.Thanks in advance!
ionic capacitor Hello, I am having a peculiar issue. First of, I do configure revenue cat right of the bat with user guid as appUserIdPurchases.configure({ apiKey: revenueCatApiKey, appUserID: userStore.tokenData.user_guid, observerMode: false, })then, before even finishing the purchase I do all the sync verification stuff to make sure the user guis is being used async purchasePackage() { const success = await this.syncRevenueCatUserId() if (!success) { this.status = revenueCatStates.FAILURE return } const response = await this.orderStore.purchaseOffering() this.status = response.state if (this.stateHalfSuccessful) await this.checkIfBackendSynced(response.paymentId) }, async syncRevenueCatUserId() { // Attach email as a subscriber attribute if (this.user.email) { await Purchases.setEmail({ email: this.user.email })
Hello,I would like to create a store system in Unity using RevenueCat. However, I couldn’t find exactly what I’m looking for in the documentation. My goal is to integrate RevenueCat into a game where I sell only consumable or non-consumable items, without including subscriptions or offers.Could you provide guidance or point me in the right direction to achieve this?Thank you!
I’m wanting to offer a non-renewing consumable unlock system for premium features in my app similar to Due and Working Copy. All features currently release and features for the next twelve months from the purchase date are unlocked. I read this thread which is similar to what I’m wanting to do: Because I’m wanting to do this as a consumable I know I will need to track the original purchase date of the consumable to ensure its not repurchased later. My main concern is related to restored purchases if the app is removed and downloaded again. I noticed in the support documentation this requires me to use a custom app user ID. My app does not have a login system but I noticed neither does Working Copy. I’m wondering if there’s a way to create this kind of custom app user ID, send it to RevenueCat and track it somehow without creating a login system?
We used to have an old format for handling user ids that we currently use to initialize RevenueCat with. What are the downstream implications if we need to change the user id format for all users? More specifically:Would there be a chance that the client gets out of sync from Google Play/App Store? What are the downstream implications in RevenueCat’s dashes/data reporting? Are there any other implications from changing the user id format? We are using Flutter so the code diff would be:# current codeawait Purchases.setup(_api, appUserId: oldUserIdString);# new codeawait Purchases.setup(_api, appUserId: newUserIdString);
Hi there,I am using Revenue Cat Paywalls to let my users purchase products. However if a consumable has been purchased before I am getting the error message:Ignoring purchase request for already subscribed packageThis is happening even though the purchase request is for a NON_RENEWING_PURCHASE which is not a subscription.My app is written in Flutter and I am currently testing on Android before moving on to iOS. I have rechecked my product set up on the Google Play Store and they are not set up as subscriptions. These products are not set up with entitlements in RC, they only have offerings attached.Can anyone help resolve this because at the moment my app doesn’t allow the repurchase of consumables which is obviously an issue.
Hello all. I was looking through using the Web beta SDK and trying to get it working. When I thought I was using the right API key I keep getting Invalid API key. Use your RevenueCat Billing API key. I have tried all of them that I see and am looking to find where that one is located.
I found this annoyingly difficult so I made a free gist… so you don’t have to be annoyed. Use at your own risk etc etc...https://gist.github.com/JavascriptMick/233358b6a00d6d733ed9a630db587c2d Using https://github.com/openapi-ts/openapi-typescript to talk to the RevenueCat Rest API in a typesafe wayHow I created the schema file download the OpenAPI Schema from https://www.revenuecat.com/docs/redocusaurus/plugin-redoc-0.yaml run the followingnpx openapi-typescript plugin-redoc-0.yaml -o ./revenuecat-api-v2.d.tsdependencies "openapi-fetch": "^0.13.4", "vitest": "^1.3.1"
Hi! I am setting up the new paywall for an android app, and I like how it goes so far, however one thing throws me off - Revenue Cat automatically shows AlertDialogs not styled accordingly and with non user-friendly error messages. I would want to be able to show completely custom dialogs for each needed usecase with my own styling and wording. (The one you see on the attached screenshot is for example when the internet connection is turned off).The listener provided to paywall is not invoked in any of the callbacks. i.e. onPurchaseError is not called etc. I would want to either pass custom dialogs to the paywall or just handle all these cases via callbacks myself.please let me know if it’s possible and i’m missing smth.Additionally as you can see on a screenshot I am using a custom overlay for the back button and “Redeem code” button. And I would want to disable these when there’s an operation in progress. However I don’t believe that the paywallexposes such isInProgress and isLoading
I want to display the amount based on the Product information obtained from Offerings. However, when I check it on the actual iOS device, "Price String" is displayed as "XXX 120.0" etc., and the currency part is not displayed well. Andorid's device will display "¥ 120" without any problem.AppStoreConnect information is set at ¥120 as shown in the screenshot.
Preface: Not sure if this is from the recent corrupt index issue. I’m running into an issue where when testing in testflight sandbox, when I go an purchase an in app subscription it says that I already have a subscription when I I don’t.The account/phone i’m testing with did have previous subscriptions of the same plan on both prod and test flight however, they are both expired, and previous testing, I would get a prompt to repurchase again. Would love some insight on this, and love to provide more information if needed. Thanks!
I'm stuck with this issue for 2days without any luck in solving it…## Environment- React Native (Expo)- iOS/App Store Connect- Development environment- Real-device “iPhone”## IssueGetting configuration error when fetching offerings:“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” What additional configuration steps might I be missing? Looking for a checklist to verify my setup.please check the attachments
I’m currently using Unity's IAP package for my in-app purchase system, but I’d like to use RevenueCat in Observer Mode.In the documentation, I found the following example: // Observer mode can be configured through the Unity Editor. // If you'd like to do it programmatically instead, // make sure to check "Use runtime setup" in the Unity Editor, and then: Purchases.PurchasesConfiguration.Builder builder = Purchases.PurchasesConfiguration.Builder.Init(<api_key>); Purchases.PurchasesConfiguration purchasesConfiguration = builder.SetUserDefaultsSuiteName("user_default") .SetObserverMode(true) .SetAppUserId(appUserId) .Build(); purchases.Configure(purchasesConfiguration); However, the method SetObserverMode(true) doesn't seem to exist, and I get an error saying the method is not found.Am I missing something? Is this method removed or replaced? And is this all I need to do to enable Observer Mode programmatically, or is there additional configuration required?Thanks in advance!
I have tried both “getOfferings” and “getProducts([“<productId>”])”. All i get are the consumable items, i can’t get my auto renewable subscriptions in the application code, even though i can see them in the revenue cat dashboard.P.S: currently my app is only setup for ios, i am testing on iOS 17.5 simulator.
I have 4 apps in production from the same source of code. they are different only in JSON files used as sources.two of the apps fails with the same error (BOTH production!!! and sandbox)failing apps is for BY (Belarus) and RU (Russia) regionstwo others works fine:they are for KZ (Kazakhstan) and UK (the Ukraine) regions.Is it some kind of sanctions from Revenue cat? this is so critical because people loosing money and customersUnhandled error happened: Error Domain=RevenueCat.ErrorCode Code=2 "There was a problem with the App Store." UserInfo={NSLocalizedDescription=There was a problem with the App Store., NSUnderlyingError=0x301b43060 {Error Domain=StoreKit.StoreKitError Code=2 "Не удается выполнить запрос"}, readable_error_code=STORE_PROBLEM, source_file=RevenueCat/StoreKitError+Extensions.swift:43, source_function=asPurchasesError}but the most crazies moment here is that the same builds works fine on other devices:it fails on my iPhone 13 Pro with 18.2.1 but it works on my iPad Pro
Hi,I have configured revenuecat in react native. I am able to call getCustomerInfo. But when I call const offerings = await Purchases.getOfferings(); it returns nothing. No error or no response at all.I have created products and offerings as well.Can someone help. thank you :)const offerings = await Purchases.getOfferings();
I followed the official tutorial for my app, however its been more than 36 hours and I can’t get past the Credentials need attention Permissions to call subscriptions API (working) Could not validate inappproducts API permissions (Not working) Could not validate monetization API permissions (Not working) I am not sure where do I check and what should I do next. ? Where can I follow up on this. ?
Hello, I am encountering an issue while setting up RevenueCat for my Expo app. I am stuck at step 5 of the process, which is “Make a Test Purchase.” I am using a physical iPhone 12 running iOS 18 for the test and have followed the documentation to test with a sandbox account. However, despite my efforts, the Apple ID for the sandbox account never appears in the relevant section. I’ve carefully followed all the steps in the documentation but still can’t make any progress. I’m feeling a bit lost at this point and unsure of what to try next. Could you please provide any advice or solutions to help me resolve this issue? Looking forward to your helpful response,Thank you in advance for your assistance!
I do use Expo but when I try to initialize revenue cat SDK, I got ‘LOG {"error": [TypeError: Cannot read property 'setupPurchases' of null]}’ error.my code just like that; await Purchases.configure({ apiKey: 'x' })I’m using andorid, in real device and emulator.
Hi, When I’m trying to build the project I’m getting this error, Tried to see if I can change it to @import to #import, but these are written in swift, so it won’t work, Almost tried every possible solution available on internet to solve this but no luck, Please help me with this.
Taken from this SO postFrom the docsIn certain cases, iOS may prewarm your app - this essentially means your app will be launched silently in the background to improve app launch times for your users.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.I am struggling to understand the implication of this for a flutter app. Is it alright if we initialize Purchases from the main method before runApp is executed or do we have to do it in the initialization method of the application.So would it work if we do something likeFuture<void> main() async { await Purchases.configure() runApp(MyApp(...)) }Or do we have to do this in MyApp initializer likeclass MyApp extends StatefulWidget { const MyApp({super.key}); @override State<MyApp> createS
Our testflight apps and local dev app works just fine. The android version of the app works without any issues. Apple approved the app but not the subscriptions yet and now our app bricks on production but works just fine on test flight. The app gets stuck at a white screen on load. What more information could I provide to help with troubleshooting?It appears the app bricks when Purchase.setup() fails, but I don’t know the exact reason for the error when I cannot get it to reproduce locally.
I have created a Paywall using the template editor, but when I have it display the introductory offer, it says it is “14 days” even though my actual introductory offer at the App Store is six months.It is displaying the monthly subscription price correctly ($4.99), so RevenueCat seems to be communicating with the app store, but it’s getting the introductory offer details wrong. I could just hard code the value, but there appears to be a deeper issue here. Can someone please advise? Screenshot of the template editor below showing the display of the incorrect value.
Hi. I use FlutterFlow for developing the app. I have a custom paywall. As I understand, prices get from Apple/Google Store. Why some prices has icons, but some texts, especially on local language? Is this managed by stores or by RC? USDUAHFF says its not on their side.Thanks!
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.