Get help with your SDK implementation.
Recently active
This have been extremely frustrating, and I am in dire need for help or assistance. I created a app and added the RevenueCat code information to my project, and followed all the examples exactly. I watch countless videos. I finally got it to work on the simulator IOS 14 like explained. it works perfect. I triple checked my information both on RevenueCat platform and in apple developer. after being uploaded to apple developer, and I downloaded it from TestFlight. I try to make a purchase, and nothing happen. it is as if the screen is frozen. please help me with this issue. Thanks!!!!
Dear RevenueCat, Thank you for the Paywall functionality.How can I customise the close button color in Swift?
I set the light mode color of the close button to white, but it is always black on Android, how to fix this problem?
Is there any way of getting the FFI file for the revenue cat purcahse SDK?
Hi, I am implementing Revenue cat SDK 8.4.0 in my Android app. It works perfectly and everything is ok for most of users but lately I am receiving this crash on crashlytics java.lang.IllegalStateException: Attempting to launch an unregistered ActivityResultLauncher with contract com.revenuecat.purchases.ui.revenuecatui.activity.PaywallContract@81ad151 and input PaywallActivityArgs(requiredEntitlementIdentifier=flixunblocker_v5, offeringId=flixunblocker_offer_v5, fonts=null, shouldDisplayDismissButton=true). You must ensure the ActivityResultLauncher is registered before calling launch(). I tried to reproduce the crash but I didn’t succeed. The common thing that all the users receiving this crash are Android TV users. Do you have any idea how to fix this or how to reproduce this issue. Thanks
In my app once the user has successfully subscribed and has access to the app, I want to be able to display the current pricing that the user is on back to the user. This is fine if the user is not on an intro pricing plan, but I am having a hard time determining and then displaying this if the user is in an intro pricing period. I am able to find the correct intro pricing using the snippet below, but this does not help me figure out if the user is paying that price or the full price. packageInfo.product.introPrice?.priceString I am using React Native. Thanks
export const extFirestoreRevenueCatPurchasesHandler = onRequest( async (request, response) => { const {processUserCredits} = require("./functions/userCredits"); await processUserCredits(request); response.status(200).send('Webhook received'); });export interface RCEvent { api_version: string event: { aliases: string[] app_id: string app_user_id: string country_code: string currency: string entitlement_id: string entitlement_ids: string[] environment: string event_timestamp_ms: number expiration_at_ms: number id: string is_family_share: boolean offer_code?: string original_app_user_id: string original_transaction_id: string period_type: string presented_offering_id: string price: number price_in_purchased_currency: number product_id: string purchased_at_ms: number store: string subscriber_attributes: any takehome_percentage: number transaction_id: string type: string }}export async f
When i build my app on the new sdk i get a coiuple errors:Trying to purchase a plan: ERROR: 😿‼️ There is an issue with your configuration. Check the underlying error for more details. This StoreProduct represents an SK1 product, but SK2 was expected.
I’m seeing this error pop up in production only, through Sentry logs. It is intermittent -- it looks like most users are able to subscribe successfully. And, I know that in some cases this may be a legitimate situation where someone clicks purchase and then cancels out of it.However, I see this happening a lot more than I would expect if it were just that situation. In addition, I have specific reports of users trying to make the purchase and seeing an error message in my app. When I triangulate that back to the Sentry issue occurring on that device at that time, it’s the “Purchase was cancelled” error.So my question is, if the user is saying they are attempting to purchase and not canceling it, but they are still getting this error back from RC, how can I further debug?For additional context here is the complete error I get back from RC. Again, this happens intermittently when users attempt to make a purchase, even if they state that they did not cancel it:{ code: 1, message: Purcha
When I use the price string from the API, we see 12.99 like we have in the Apple app store. However, when I access the price itself in the Flutter client library, I see 12.989999771118164. I am not manipulating this price at all, I am printing it directly from Flutter lib. Do you think this is: 1) Apple weirdness 2) RevenueCat API bug OR 3) Flutter bug?
I have created a product in google play console, and I also created a revenuecat product with the same id, but the the following line of code returns an empty array.// Fetching all products by passing an array of their product_idconst products = await Purchases.getProducts(['product_id']);// Printing the list of products available.console.log(products); // Example response:[]Project info:Expo SDK version: 45 React native: 0.68.2 react-native-purchases: 4.6.1 Device tested: android
Now Apple requires privacy manifest for each third party SDK. We are using revenue cat 6.10.0 and there is no xcprivacy file inside this revenue cat for unity version. Where can I get xcprivacy for revenue cat to use it in unity3d project?
Hello, Team, hope you are doing well.I upgraded revenueCat module to latest one in my ionic/angular project.this is the module in package.json"@revenuecat/purchases-capacitor": "^7.3.1"it’s working on xCode without issue.but I can’t build android build on Android Studio.Execution failed for task ':revenuecat-purchases-capacitor:compileDebugKotlin'.> 'compileDebugJavaWithJavac' task (current target is 17) and 'compileDebugKotlin' task (current target is 19) jvm target compatibility should be set to the same Java version. Consider using JVM toolchain: https://kotl.in/gradle/jvm/toolchain* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.This is the error log when building. if I use old package, the android build will work without error."@awesome-cordova-plugins/purchases": "^6.4.0""cordova-plugin-purchases": "^5.5.1" Can anyone help me to resolve this issue?
Hi,While testing my subscriptions on IOS with a sandbox account i found a strange behaviour of getCustomerInfo(), needing to call it twice in order to get the correct data.The way i’ve set my app is to call getCustomerInfo on appLaunch and on appResume, to check for updates. The scenario is the following:I purchase a subscription and get back info that the entitlement is active and my expirationDate is 5min from now (because of the sandbox account). Then i minimize the app and wait 6 mins, after which i can see the sub renewal transaction appearing in rc dashboard and in the customer details screen. I open the app, which triggers getCustomerInfo, but it’s returning the same data i got from when i first purchased the sub. Then when i minimize the app and open it again, triggering getCustomerInfo for the 2nd time, it return the correct updated data with the new expirationDate.Is this the expected behaviour? Is this because of Sandbox? Or am i doing something wrong?P.S. it’s a flutter app
iOS purchases made using a promo code aren’t being recognised in my app. Initially I take a user to the URL below from my app. Once they come back Purchases.syncPurchases() is called. I also have a button in the same page that calls Purchases.restorePurchases(), but pressing that seems to have no effect as well. I do have a listener for any changes in the customer information using this Purchases.addCustomerInfoUpdateListener((info) {}), it starts when the app is opened. Once a promo code has been used successfully and the user comes back to the app and the syncPurchses method is called there is still no update in customer info. My app is in production (available on app store) and I already have in-app-purchses/subscriptions working and fully integrated. What is going wrong here? https://apps.apple.com/redeem?ctx=offercodes&id={apple_app_id}&code={code}
Hi all,I have an iOS app created by PWABuilder that Apple have rejected for not having in app purchases. Therefore I’m implementing RevenueCat. However I’m struggling to see where I would add and present the paywall within the code built by PWABuilder. I have 0 experience with Xcode and Swfit unfortunately.Does anyone have any experience of this at all please?https://www.revenuecat.com/docs/tools/paywalls/displaying-paywalls Thanks.
D/[Purchases] - DEBUG( 6814): Request already scheduled with jitter delay, adding existing callbacks to unjittered request with key: BackgroundAwareCallbackCacheKey(cacheKey=[/subscribers/%24RCAnonymousID%3A05155e0681644ad69dc66564531ea514/offerings], appInBackground=false)D/[Purchases] - DEBUG( 6814): Getting storefront from cache was null.D/EGL_emulation( 6814): app_time_stats: avg=9341.14ms min=3.54ms max=130723.25ms count=14D/[Purchases] - DEBUG( 6814): API request started: GET /subscribers/%24RCAnonymousID%3A05155e0681644ad69dc66564531ea514/offeringsD/[Purchases] - DEBUG( 6814): API request completed with status: GET /subscribers/%24RCAnonymousID%3A05155e0681644ad69dc66564531ea514/offerings 304D/[Purchases] - DEBUG( 6814): ℹ️ Requesting products from the store with identifiers: premium, elpa_1299_foreverW/BillingClient( 6814): getSkuDetails() failed for queryProductDetailsAsync. Response code: 2E/[Purchases] - ERROR( 6814): 🤖‼️ Billing is unavailable. App is in foreground. Won't
In the documentation for checking subscription status, it is said that for checking if a user has paid, we need to use the entitlement object like this:if (Object.entries(customerInfo.entitlements.active).length) { //user has access to some entitlement}However, this doesn’t work when a user has used a promo-code on Android. Instead we use:if (Object.entries(customerInfo.activeSubscriptions).length) {//user has access to some entitlement}Is that a correct way to check?
Hello,I’m having some difficulties with implementing Capacitor and Vue 3 for Android.Firstly, I want to figure out how to handle locked areas in my app upon boot. As I understand it, the app will send a request to the RevenueCat API to check the subscription status of each user IDs, which will return either a “subscribed” or “unsubscribed” response.I think the best approach would be to save this status in persistent storage and then develop the necessary logic to lock or unlock functions in my app.Could you please confirm if my understanding is correct?Additionally, regarding the Vue.js part: should I include this logic in the App.vue file?Thank you! if (Platform.is.android) {try {const revenuecat = await import('@revenuecat/purchases-capacitor');const Purchases = revenuecat.Purchases;const LOG_LEVEL = revenuecat.LOG_LEVEL;await Purchases.setLogLevel({ level: LOG_LEVEL.DEBUG });await Purchases.configure({ apiKey: process.env.REVENUECAT_API_KEY_ANDROID, appUserID: this.authSto
When do you plan to add flutter web support? There is a huge demand for it and it seems that you already have the tools to support it?
I recently received several iOS errors with error code 20 (PAYMENT_PENDING_ERROR). I read the documentation here, but am still unsure what’s causing this error and how to resolve it. The users don’t have parental controls on their devices.The RevenueCat docs mention “a user might choose to purchase your in-app product at a physical store using cash” - is this an option the user would have turned on somewhere in their device settings?Or is there a different reason this error could be occurring?
Hi all!We’re running an A/B-test with a monthly subscription and two pricings both pricings and have the same setup in the AppStore and RevCat but the second package has PACKAGE_TYPE CUSTOM or UNKNOWN whereas the first has MONTHLY as expected. What could be wrong with the setup?currentOffering.availablePackages.map((pkg) => {let priceTag = pkg.product.priceString;switch(pkg.packageType) { case Purchases.PACKAGE_TYPE.LIFETIME: priceTag += ' einmalig'; break; case Purchases.PACKAGE_TYPE.ANNUAL: priceTag += ' pro Jahr'; break; case Purchases.PACKAGE_TYPE.SIX_MONTH: priceTag += ' alle 6 Monate'; break; case Purchases.PACKAGE_TYPE.THREE_MONTH: priceTag += ' alle 3 Monate'; break; case Purchases.PACKAGE_TYPE.TWO_MONTH: priceTag += ' alle 2 Monate'; break; case Purchases.PACKAGE_TYPE.MONTHLY: priceTag += ' pro Monat'; break; case Purchases.PACKAGE_TYPE.WEEKLY: priceTag += ' pro Woche'; break; default: // UNKOWN und CUSTOM priceTag += ' pro Monat*'; break;}
Hello,We are currently using the React-Native SDK. The getCustomerInfo() method provides a PurchasesEntitlementInfo object that contains both the originalPurchaseDate and latestPurchaseDate.originalPurchaseDate: The first date this entitlement was purchased, in ISO8601 format. latestPurchaseDate: The latest purchase or renewal date for the entitlement, in ISO8601 format.Does the originalPurchaseDate refer to the start date of the current subscription cycle? Or does it represent the very first date the subscription was ever started?For example, if Customer A initially began a 1-month premium subscription on 2024-03-01, canceled in 2024-06, skipped payments in 2024-07 and 2024-08, and then resumed the same 1-month premium subscription on 2024-09-01, what would be considered the originalPurchaseDate?In this case:If the originalPurchaseDate is 2024-03-01, is there a way to identify the start date of the current subscription cycle? If the originalPurchaseDate is 2024-09-01, is there a way t
Hi all, I’m testing the possibility of extending a subscription.For Apple I managed to get it work by using the https://api.storekit.itunes.apple.com/inApps/v1/subscriptions/extend/ endpoint. This also produced a webhook event. For google I used the https://api.revenuecat.com/v1/subscribers/{app_user_id}/subscriptions/{product_identifier}/defer endpoint. Now, the subscription correctly got extended by the amount specified; using the https://api.revenuecat.com/v1/subscribers/{app_user_id} endpoint to fetch subscriber data I can see the updated expires_date, but I did not received any webhook events. I would like to receive that event so that the user transaction list is updated as well. Since I integrated ETL export so i can fetch all user transaction data and pour it in my database, missing this event information can produce inconsistent data. Is this normal?
I am using Unity version 2021.3.29f1 and I am making subscription purchases with IAP version 4.12.2. IAP version supports android payment library version 6.2.1. So I am using RevenueCat sdk 6.10.0. When I try to get a build after sdk installation, I get an error as “com.android.build.gradle.internal.tasks.Workers$ActionFacade”. When I uninstall the SDK, the problem is solved. What should I do?
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.