Get help with your SDK implementation.
Recently active
I’m using Ionic with Capacitor.The RevenueCat documentation recommends using a cordova plugin, but Ionic has been in the process of migrating away from Capacitor for the past few years, and this is now the only Cordova plugin in my app.There’s already a capacitor plugin on github but I was wondering if there are any plans to release an official Capacitor plugin as well.
I use BugSnag to capture my errors and report them in a way that can be quanitfied. This last week my top 2 errors all came from `Purchases` errors:Seen in the last 7 days:Errors Events getOfferings Error in Paywall • src/features/Paywall/index.tsx:165 There is an issue with your configuration. Check the underlying error for more details. 140 Purchase Error in Paywall • src/features/Paywall/index.tsx:197 No Package available to purchase. 34 Now, the typical response from RevenueCat is:Do you have logging enabled? YES ``` Purchases.setLogLevel(Purchases.LOG_LEVEL.DEBUG); await Purchases.configure({ apiKey: APIKEY }); ``` Can I replicate? NO So I ask RevenueCat this: is there a way to uncover the underlying issue? 140 errors in 1 week related to configuration is concerning. 34 errors of “no package available to purchase” is concerning. How else can I report errors to you so we can figure this out?
Hi!Main Flow:My backend listens to Revenue Cat webhook events. I listen to renewal to mark old subscription as in active and create a new active subscription with full in-app balance.Currently if user clicks on product he already purchased, Revenue cat react native client throws error with code Purchases.PURCHASES_ERROR_CODE.PRODUCT_ALREADY_PURCHASED_ERROR which is correct. But then I get webhook event on purchase. Question:Why this happens if Apple doesn’t let to re-subscribe to plan which hasn’t expired yet. From my understanding after client PRODUCT_ALREADY_PURCHASED_ERROR was thrown no webhook event should come to backend.
I am trying to use RevenueCat for selling consumable products on my ReactNative mobile app. To start with, I configured a product in my revenuecat account, connected it with a in app product on Google Play. In revenuecat, I can see the two are connected properly. I do not have any offerings or entitlements, because these consumable products are open for all users.However, in my code, when I queryPurchases.getProducts(["productId"]) get an empty array. Struggling for two days, not able to guess what could be the issue? Can you please help?
Hello there. We developed an app that's for both platforms, iOS and Android, the app allows users to purchase a subscription. The iOS version is working fine, but I'm trying to implement same functionality on Android, using either purchaseStoreProduct or purchaseSubscriptionOption. The first one gives me message that the item to purchase is not found and the second got stuck forever and gives no error.Can you help me please? I'm using the 7.2.8 version of the lib.
As discussed in the post linked below which seems to have comments closed, the migration guide points to the Firebase docs for tracking StoreKit 2 transactions in Firebase.However, it’s not clear from the sample code provided by Google/Firebase how this would integrate with RevenueCat exactly.Does it matter if `await transaction.finish()` is called after `Analytics.logTransaction(transaction)`?Guidance appreciated. Thank you.func purchaseSomeProduct(_ product: Product) { // Purchase a Product. This is mostly standard boilerplate StoreKit 2 // code, except for the Analytics.logTransaction() call. let result = try await product.purchase() switch result { case .success(let verification): let transaction = try checkVerified(verification) // Call this Firebase API to log the in-app purchase event. // NOTE: How do we hook in to this specific point via RevenueCat? Analytics.logTransaction(transaction) await transaction.finish() ...}
Hi,When can I expect a RevenueCat Unity SDK update to include latest RevenueCat Android SDK changes?.Thanks
When a user logs in, it pulls their app user ID then performs the login() function on that ID.I have a real active subscription with my live app on the app store with my App User ID.When I run my app in TestFlight and login with the same App User Id, my entitlement is granted and it loads my CustomerInfo from my Live account. I thought this was an isolated environment?
“This method will send all the purchases to the RevenueCat backend. Call this when using your own implementation for subscriptions anytime a sync is needed, like after a successful purchase.”Source: https://sdk.revenuecat.com/android/5.0.0/purchases/com.revenuecat.purchases/-purchases/sync-purchases.htmlIf I understand correctly syncPurchases:1. upload the local device’s receipt to RevenueCat2. Transaction might under another app user id, so if needed transfer going to happen.3. The user access all entitlement based on the device’s receiptIs it correct? If yes, I don’t understand why need to call “like after a successful purchase.”.I assume purchaseProduct make a full sync with RevenueCat backend after the purchase, because the app should send the current receipt to the RC server, so why needed syncPurchases?
Hello, I’m having the following error on iOS platform in my Unity game. PurchasesHybridCommon/CommonFunctionality.swift:21: Fatal error: Purchases has not been configured. Please configure the SDK before calling this method.Not all my users face this error and I cannot reproduce it on my devices. I just can see them on Crashlytics.This is how I configure Purchases:
We are occasionally seeing cases where a user is able to start a subscription but their email is not associated with the user in the RC dashboard. Our code pretty straightforwardly should not allow this. The below snippet is the only place where we call `Purchases.configure()` and we immediately set the email attribute.fun initializeRevenueCat(user: User) { if (user.email.isEmpty()) { return } val config = PurchasesConfiguration.Builder(...).build() Purchases.configure(config).also { it.setEmail(user.email) }}Is this a bug in the RC Android SDK or are we missing something in usage?
Hello!Our app was rejected due to the same issue discussed here: It appears that the solution given in that thread was basically to not use the sandbox - but the App Store reviewer uses the sandbox to test and validate our app?We were able to get things working by restoring purchases prior to trying to view the introductory offer. However, as you can imagine, it is difficult to communicate this issue to the App Store reviewer.I have some follow-up questions on this:Is this an App Store Sandbox issue or is there an issue with the RevenueCat SDK? Has a bug report been filed with Apple that we can reference when responding to the reviewer? Is there some sort of additional functionality we should implement in our app to make sure we don’t experience this issue in the sandbox?
Flutter, iOSI’m able to subscribe through paywall, able to fetch offerings and products. But when deployed to testflight it doesn’t work. I get error that error with configuration and can’t fetch products. The subscription in applestore connect hasn’t been approved and is in the state “Waiting for Review”, if I submit a build it gets reviewed and rejected stating that they got an error when opening the paywall, the error is the same as above. Can anyone help me out?
Hi,Im using purchases_flutter: ^6.30.1 in my flutter app to handle downgrade and upgrade for subscriptions.im getting issue in android while downgrading await Purchases.purchasePackage call does not resolve when GoogleProrationMode.deferred is used.Expected behavior: The await Purchases.purchasePackage call should resolve, allowing subsequent code to execute Actual behavior: The await Purchases.purchasePackage call does not resolve any help regard this ?
Android is requiring all Appstore submissions target API Level 34 from 8/30 onwards. This involves moving from @capacitor/core 5.x to 6.x. The https://github.com/RevenueCat/purchases-capacitor SDK is currently set to require @capacitor/core 5.x. Will there be an update to target 6.x?
In my app, I want to display to an existing subscriber the date and the amount they will be charged next. From customerInfo.entitlements I can get the next charge date through expirationDate, but there's no "amount" in the entitlements object as far as I can see.I know I can get the subscription price from the offering/package, but here's my use-case:I set a subscription price Some users subscribe against that price I change subscription price in AppStoreConnect, but only for new subscribers (existing subscribers will stay at the price they always paid). So now the offering/package will contain the new price, which is not the price the existing subscriber will be charged.Any help is appreciated.Thanks & regards,Guido
Hi All,I’m trying to use Swift UI previews in order to develop my subscription screen, and I want to pass through the `CustomerInfo` object I have stored in my view model to do that (similar to the MagicWeather test app)But unfortunately, the CustomerInfo() initializer is not accessible outside the module - if I try to create example info, I get the message “'CustomerInfo' initializer is inaccessible due to 'internal' protection level”This similarly prevents me using a convenience init (since I can’t call the original init) which is what happens in the internal Revenue Cat tests (as far as I can tel)Has anyone got this working, or does everyone just develop on-device?Thanks!Nik
If I deactivate an in-app product (not a subscription) in the Google Play Console, will users who purchased that product before it was deactivated still be granted the associated entitlement by RevenueCat? Context:I created an expensive lifetime in-app product as part of a pricing A/B test which failed. The price of that product is displayed as the max purchase price on my Google Play listing. £1.39 – £100.00 if billed through Play I’d like to deactivate the £100 product so my app doesn’t look too expensive to potential users.
Hi everyone,I was looking to create a custom App User Id but somehow everything stopped working all of a sudden.I was using the account email plus a random uuid since email is said to be guessable.This was working fine until all of sudden I keep getting UNKNOWN_BACKEND_ERRORComplete error was this: {"error": {"code": 16, "message": "There was an unknown backend error. The provided app user id has been blocked. Please visit https://docs.revenuecat.com/docs/user-ids for more information. (7626)", "readableErrorCode": "UNKNOWN_BACKEND_ERROR", "readable_error_code": "UNKNOWN_BACKEND_ERROR", "underlyingErrorMessage": "The provided app user id has been blocked. Please visit https://docs.revenuecat.com/docs/user-ids for more information. (7626)"}, "target": 77}So, I am lost. It was working fine now it isn’t.Email alone is not advised. I can understand that.When I make it anonymous, I can not track who is paying subscribing.I would not know my customer accounts and if anything went wrong, I co
Good afternoon,Guys, please help me, I need an example code in Kotlin.I have the simplest option: no authorization, no subscriptions, no Compose.Only three products (Consumables), my own layout with three buttons (for each product).How can I get the price of a product and setOnClickListener so that the process of purchasing this product begins? val tv_Crystals_100: TextView = findViewById(R.id.tv_Crystals_100) val tv_Crystals_200: TextView = findViewById(R.id.tv_Crystals_200) val tv_Crystals_500: TextView = findViewById(R.id.tv_Crystals_500) tv_Crystals_100.text = "__price_" tv_Crystals_100.setOnClickListener { ... } tv_Crystals_200.text = "__price_" tv_Crystals_200.setOnClickListener { ... } tv_Crystals_500.text = "__price_" tv_Crystals_500.setOnClickListener { ... }Thanks a lot in advanceDenis
Purchasing the subscription in an iOS simulator works just fine.Tapping my purchase button gives me the following error:Error finishing transaction 0: Error Domain=ASDErrorDomain Code=500 "(null)" UserInfo={NSUnderlyingError=0x303593360 {Error Domain=AMSErrorDomain Code=301 "Invalid Status Code" UserInfo={NSLocalizedDescription=Invalid Status Code, AMSURL=http://localhost:49178/WebObjects/MZFinance.woa/wa/inAppTransactionDone?REDACTED, AMSStatusCode=404, AMSServerPayload={ error = "Transaction not found";}, NSLocalizedFailureReason=The response has an invalid status code}}, storefront-country-code=USA, client-environment-type=XcodeTest(file:///private/var/mobile/Containers/Shared/AppGroup/7FD3F64D-79A5-4487-ADED-F3BB2CF090CA/Documents/Persistence/Octane/com.bronsonmullens.JustFlipIt/)}My sandbox account does not have 2FA and no prior transactions (it’s brand new). Also tested this on another sandbox account I have an I’m getting the same result. Here’s some snippets of my implementa
We are using revenue cat in observer mode inside our Unity3d project (Unity 2021.3.29f1). Google requires to update to billing client 6. Unity already created InAppPurchasing plugin with BC 6 (4.12.0). But as I see in purchases-unity/VERSIONS.md at main · RevenueCat/purchases-unity (github.com) there is still no version that supports both billing client 6 and observer mode with Unity iAP?When new version will be released? We need it ASAP because our deadline is august 31 of this (2024) year.
In the <app_user_id>absence of anonymity, Apple Account 1 subscribes to a product, and at this time, exit Apple Account 1 and log in to Apple Account 2, at which time Apple Account 2 will inherit the product subscribed to by Apple Account 1. Resuming in-app purchases won't do anything either. I would like to ask how to solve this problem. If this is the case, an Apple account that has subscribed to the product can be used by other Apple accounts without a subscription. This is a very serious problem, please tell me how to do it, thank you!
The warning is as follows...TMS-90078: Missing Push Notification Entitlement - Your app appears to register with the Apple Push Notification service, but the app signature's entitlements do not include the 'aps-environment' entitlement. If your app uses the Apple Push Notification service, make sure your App ID is enabled for Push Notification in the Provisioning Portal, and resubmit after signing your app with a Distribution provisioning profile that includes the 'aps-environment' entitlement. Xcode does not automatically copy the aps-environment entitlement from provisioning profiles at build time. This behavior is intentional. To use this entitlement, either enable Push Notifications in the project editor's Capabilities pane, or manually add the entitlement to your entitlements file.Should I be worried? Does Revenuecat use Push Notifications for like billing issue detected?How can I stop these warnings?I am using Expo. 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.