Get help with your SDK implementation.
Recently active
Hi, I’m working on an Expo/React Native project which is nearly completed. On iOS, everything has been working perfectly - I’m using a V2 paywall. On Android, opening the paywall crashes the app, with the following error:java.lang.IllegalArgumentException: Software rendering doesn't support hardware bitmaps android.graphics.BaseCanvas.throwIfHwBitmapInSwMode(BaseCanvas.java:726) android.graphics.BaseCanvas.throwIfCannotDraw(BaseCanvas.java:81) android.graphics.BaseCanvas.drawBitmap(BaseCanvas.java:139) android.graphics.Canvas.drawBitmap(Canvas.java:1604) androidx.compose.ui.graphics.AndroidCanvas.drawImageRect-HPBpro0(AndroidCanvas.android.kt:275) androidx.compose.ui.graphics.drawscope.CanvasDrawScope.drawImage-AZ2fEMs(CanvasDrawScope.kt:260) androidx.compose.ui.node.LayoutNodeDrawScope.drawImage-AZ2fEMs(Unknown Source:24) androidx.compose.ui.graphics.drawscope.DrawScope.drawImage-AZ2fEMs$default(DrawScope.kt:587) androidx.compose.ui.graphics.painter.BitmapPainter.onDraw(Bitma
Got a default paywall that is working well with a state for showing a sheet and a sheet modifier.sheet(isPresented: self.$displayPaywall) { PaywallView(displayCloseButton: true) } But I would like to have another paywall in select places. I’m unable to find documentation on this. The params available include “offering” for PaywallView and I’ve tried setting it with a string matching my other paywall offering id and also tried declaring it prior to the view.Does not work at all and makes the project not build.Is there any documentation available on this for paywall v2? This page has nothing on how to use the offering parameter - https://www.revenuecat.com/docs/tools/paywalls-v2/displaying-paywalls
Environment- react-native-purchases: "^8.9.1"- react-native-purchases-ui: "^8.9.1"- react-native: "0.76.7"IssueI tried integrating the customer as RevenueCat documented, and nothing appeared when I clicked the “Manage Subscription” button. It seems that the RevenueCatUI.presentCustomerCenter() is not working. What I've Doneawait RevenueCatUI.presentCustomerCenter({ callbacks: { onRestoreCompleted: ({ customerInfo }) => { setCustomerInfo(customerInfo); checkSubscriptionStatus(customerInfo); }, onFeedbackSurveyCompleted: ({ feedbackSurveyOptionId }) => { console.log('Feedback survey completed:', feedbackSurveyOptionId); }, }, });Expected BehaviorThe customer should have displayed it as it was configured perfectly, as instructed in the documentation. Actual BehaviorIt does not work at all when the button is clicked, and nothing shows up. Very importantly, there has been no response er
Hi team,I noticed that PaywallView is currently gated with #if !os(macOS) && !os(tvOS), which excludes macOS support. I was wondering if there are any plans to expand PaywallView to macOS in the future?As macOS apps continue to grow—especially with Catalyst and cross-platform development—it would be incredibly helpful to have native paywall support on macOS as well. I’d love to see this added to the roadmap if it’s not already on there!Thanks for all the great work you’re doing!
Contextual closure type '@MainActor @Sendable (CustomerInfo) -> Void' expects 1 argument, but 2 were used in closure body .onPurchaseCompleted { customerInfo, storeTransaction in print("Purchase Completed: \(customerInfo.entitlements)") I’m trying to get the original transaction ID from an ios subscription purchase using consumerInfo in revenue Cat but consumer info is found in the package. Need the original transaction ID to match to my backend. Any ideas on how to this?Thanks!
The documentation does not provide a way to check if a customer is subscribed. It shows how to for Kotlin, but not with KMP. I tried see if the Kotlin way would work but there is no getCustomerInfoWith(), but there is a getCustomerInfo() but it returns nothing.
onRestoreCompleted on iOS will not fire if a restore is attempted but the user doesn’t have any active subscriptionsThe thread on PaywallView callbacks not working includes this comment.I am trying to wrap up my app with both subs and a Lifetime purchase IAP.If someone buys the once-off Lifetime they should be able to restore that.Was the doesn’t have any active subscriptions just a mis-naming in passing or is this a missing feature?Apple expect us to be able to restore such.
I even try to purchase in debug sometime its successful sometime it fails and appstore reviewer raises same objection here is the error i get on macOS.Received error that does not have a corresponding StoreKit Error: Error Domain=AMSErrorDomain Code=305 "Purchase Failed Server canceled the purchase" UserInfo={AMSFailureReason=Server canceled the purchase, AMSURL=https://sandbox.itunes.apple.com/WebObjects/MZBuy.woa/wa/inAppBuy?guid=5CE91E9CB360, AMSDescription=Purchase Failed, AMSStatusCode=200, AMSServerPayload={ "cancel-purchase-batch" = 1; customerMessage = "Unauthorized_message"; failureType = ""; "m-allowed" = 0; pings = ( );}, NSDebugDescription=Purchase Failed Server canceled the purchase}Received error that does not have a corresponding StoreKit Error: Error Domain=ASDErrorDomain Code=500 "(null)" UserInfo={client-environment-type=Sandbox, NSUnderlyingError=0x6000026468b0 {Error Domain=AMSErrorDomain Code=305 "Purchase Failed Server canceled the purchase"
I just tried out the amazing Paywall v2 editor on my RC-Account. In the editor my Paywall looks fine but neither my native iOS nor Android-App are showing it correctly. On iOS I see a big red warning (see below).I have the latest SDK version iOS: 5.20.3 and Android: 8.15.1. I added a german localization to my Paywall.For iOS I’m using Xcode 16.3 and run the App on physical device or simulator with iOS version 18.3.2.Has anyone seen similar issues and has a solution.
I followed the instructions (as best I can tell) to integrate RC into my react-native app. I added the subscription group and product in Appstoreconnect console. I added the sample code in my react-native app, and am trying to just “get the current offerings”. I get the generic error:[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 the StoreKit Configuration file if one is being used). More information: https://rev.cat/why-are-offerings-empty] After following that link ^, RC gives me a Troubleshooting Guide with a list of items to check. (Great feature btw)The 3rd item in the list states:Ensure the products are in the 'Ready to Submit' or 'Approved' state in App Store Connect. If you're submitting your first in-app purchase or adding a new in-app purchase type to your app, you'll need to submit
I checked some other related issues (this, this) but seems different. I just made an SDK update and am running into issues:SDK and Versions:"react-native": "0.76.7", "react-native-purchases": "^8.5.3", "react-native-purchases-ui": "^8.5.3", "expo": "~52.0.32", Android Studio Ladybug Feature Drop | 2024.2.2 Build #AI-242.23726.103.2422.12816248, built on December 17, 2024 Runtime version: 21.0.4+-12422083-b607.1 aarch64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Toolkit: sun.lwawt.macosx.LWCToolkit macOS 15.3 GC: G1 Young Generation, G1 Concurrent GC, G1 Old Generation Memory: 2048M Cores: 12 Metal Rendering is ON Registry: ide.experimental.ui=true i18n.locale= Android Device: Samsung Galaxy S22, running Android 14 I have had the Paywall running for some time on Expo SDK51 as described in your docs with the custom font family:<RevenueCatUI.Paywall onDismiss={onPressDown} onPurchaseCompleted={handleContinue} onPurchaseError={handleError} onRe
Hi everyone, We are building web application in Flutter and wanted to ask if you can support it anyhow? I have checked official SDK and it seems to not be supported: https://pub.dev/packages/purchases_flutter/score. As of now, we have a great experience integrating your product on iOS and Android.Thanks in advance.Kind regards, Marcin
I’m trying to implement web billing on my site but the documentation is extremely sparse. As far as I can see it only outlines the javascript sdk calls but I can’t find anything on how to integrate it into my site. If someone is going to sign-up using a credit card how do I pass that information. The documentation completely skips over this. Do you have a clear example of how this whole thing works? How do I integrate stripe and apple pay and google pay to actually use Web Billing. It seems to only option at this point is to use the hosted page.
I’m creating a Flutter app with subscriptions. I’m using product priceString to get formatted price of the subscription. For some reason I get two different strings when I debug on device and on simulator (“4.99 USD” and “$3.99” respectively). 4.99 is the correct price for this subscription and I want it to be displayed with dollar sign ($) Instead of “USD”. How can resolve this issue?
Your OpenApi yaml files:www.revenuecat.com/docs/redocusaurus/plugin-redoc-0.yamlwww.revenuecat.com/docs/redocusaurus/plugin-redoc-1.yamlwww.revenuecat.com/docs/redocusaurus/plugin-redoc-2.yamlwww.revenuecat.com/docs/redocusaurus/plugin-redoc-3.yamllack format specifier for integers explained in OpenAPI standard:https://spec.openapis.org/oas/v3.1.0.html#data-typesThis causes problem for Auto-generation of API layer for languages like C# (ASP.NET). E.g. in file plugin-redoc-0is a field `purchased_at` specified as:purchased_at: description: The date when the purchase was made in ms since epoch nullable: false type: integer example: 1658399423658This field is too long for integer (int32). Please specify the missing `format` attribute: `int64` into fields like this. You already closed similar issue without any explanation and reasoning. Can you please keep this opened or ideally fix it ? Thank you. PS: I am maintainer of .NET MAUI RevenueCat library https://github.com/Kebechet/Maui.Reve
In our iOS app we have a RevenueCat paywall to allow purchasing a subscription.If a user has an active subscription with account A, logs out, logs into account B, and tries to purchase a new subscription → then the following “You are currently subscribed to this” alert pops up.We want to allow the user to transfer their account if they wish. Is there any way to change the copy of this alert to mention that they’re about to transfer their account? Right now it’s very unclear that pressing “OK” will transfer their subscription.Thank you!
In my Android app I have a hard paywall and I’m getting problems with app review.Given the hard paywall there is a requirement that the user is logged in to Google Play on the device, there is no login in the app itself. App review did not like this even though I display a descriptive error when a ConfigurationError occurs, saying that they need to login to a Google account on device. They only see this as a crash/non-working app.Even worse, the app is only targeted for Sweden and thus requires a Google account set to the Swedish region. I have however opened this up to all markets just to try to get through app review but they don’t seem to want to login to the Google account I’ve provided in the Google Play console. Is there a built-in way to properly check if the user is signed in to Google Play. When they are not, is there a built in prompt for this I can use? If not, how is this usually handled?
I have added an offer to my currently Active and Approved subscription in app store connect. But after 1 day when I go to purchase my subscription, that 3-Day Free Trial does not show up.I have another subscription that does show it but that was added when I created it and before importing it into RC, thus RC imported it with all that info. So my question: How long does it take to reflect to users if you add an Introductory/Promotional offer to an existing live and approved subscription?
I’m liking the new Paywall builder a lot but I am facing several issues:When adding a product that is only configured on iOS the Paywall display seems to fail on android and some very ugly fallback Paywall is being displayed. If I remove the product and only include products working on both Platforms it works fine. The desired behavior would be just to leave out the not supported package instead of having the paywall fail completely. I tried to duplicate a paywall that I have created and wanted to attach it to a different offering. This does not seem to work, it appears that the offering of the original paywall gets duplicated as well. This is a big drawback, since I would then have to create every Paywall from scratch (I intend to have similar looking Paywalls throughout the app but displaying a different selection of products depending on the customer journey). Am I missing something here or is this not implemented yet? I could not find any place to detach the paywall from the offeri
As you can see below, my paywall sheet comes up with a stubborn back-navigation chevron, which is non-functional. I’m using SwiftUI and my app is a document-browser based app, which I have read causes a particularly sticky nav bar. I have a hacky way to hide it, if I want to also hide the close button as well, that relies on my black-background in the hero image.Any other ideas? .sheet(isPresented: $isShowingPaywall) { PaywallView(displayCloseButton: true) .tint(.black) // horrible hack to hide back chevron but loses dismiss button as well }
Hey Everyone, The Problem: Paywall looks great, is super easy to implement, BUT seems easy to bypassThe issue is when you runContentView() .presentPaywallIfNeeded(requiredEntitlementIdentifier: "standard")you get a great UI on the iOS paywall, but the user can swipe down and go to ContentView() for free, or press the ‘close button’ x in the upper right hand corner and get to the ContentView for free. This issue was raised here a few months ago, but there does not seem to be a solution yet. An Idea of Workaround, but it’s not there yetOne way I like to add logic goes like thisif subscriptionManager.isSubscribed || subscriptionManager.isOnIntroductoryOffer { ContentView() } else { PaywallView() //But seems to have no way to send this to ContentView }above you can see that I just to the logical check myself. But the issue then is that even if I call the PaywallView() itself, you do get th
I am have flutter app(ios/android), usinng purchases-flutter 4.13.0(dev), 4.12.0(prod).The error appeared 4-5 days ago, it is in prod and dev. For android - this error does not appear every time but today very often. 4-5 days ago it was workingPlatformException(10, Error performing request., {code: 10, message: Error performing request., readableErrorCode: NetworkError, readable_error_code: NetworkError, underlyingErrorMessage: Unable to resolve host "api.revenuecat.com": No address associated with hostname}, null)For iOS - I tried this code final purchaserInfo = await Purchases.getCustomerInfo();and it is never completedit is logs: [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request POST receipts[Purchases] - DEBUG: ℹ️ API request started: POST /v1/receipts[Purchases] - DEBUG: ℹ️ SKReceiptRefreshRequest finished[Purchases] - DEBUG: ℹ️ Loaded receipt from url file:///private/var/mobile/Containers/Data/Application/D1593594-6743-4414-BC41-E34FC5560BEE/StoreK
In the app, I have an option to let the user change the language. This is due to my demographic not actually changing the language on their phone to match their native language.Due do this, the language itself is managed by my state system, rather than the localization of the phone or other resources. This is an issue, as there do not seem to be any options to change the localization of the paywall within the code.Will I have to ditch paywalls altogether? Or is there something I am not seeing here?
I have done all setup, my subscriptions are in Ready to Submit status. I have done the required configuration on revenucat as well. I tried it on my physical deviceBut still getting the below error: ERROR: 🍎‼️ Error fetching offerings - The operation couldn’t be completed. (RevenueCat.OfferingsManager.Error error 1.)There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used). More information: https://rev.cat/why-are-offerings-empty2025-03-26 19:11:36.691266+0530 pbgo_app-Stage[97115:6434967] [error] 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 the StoreKit Configuration file if one is being used). More information: https://rev.cat/why-are-offering
The new paywall feature looks amazing! Is it possible to use with capacitor (I think not but wanted to verify) and when might it be available? Any suggestions of workarounds for the interim? 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.