Get help with your SDK implementation.
Recently active
In the past 2 weeks we have had 5 Google Play Pass users complain that they are not getting an unlocked version of our app upon install. When we look up their accounts in the Rev Cat portal we are not seeing any entitlements. Please check the following account ids:eccadc44-b852-49e3-9abd-98ca8caaa5793e02d09e-39af-4f3e-97e7-1202c5721a800bbacb64-3025-438d-9c97-e9072834ad3fff55917c-c849-4a1e-8a76-47055e13cf62 Normally we see the entitlements that are tied to purchase we provisioned for Google Play Pass on accounts like these in the portal
Hi guys, I'm trying to understand how to deal with "App User ID" and user accounts. All good if I have the next flow:A user downloads an app. The user register in the app Based on the registered user account, I can generate an "App User ID" and send it to RevenueCat. Then, based on the registered user account, I always have access to the user "App User ID" because it is stored in my database and mapped to the registered user account. Later on, users can restore purchases anytime after they log in to the app. Because again, I have his "App User ID" stored in my database.But what should I do if I have no user registration in the first place? Is it possible? For example:A user downloads an app. I generate some random "App User ID" based on the device UUIDD The user goes through onboarding screens with a PayWall in the end. The user makes a purchase. All that I have now, it's his "App User ID" mapped to his device UUID, and that is it. If the user changes the phone or tries to log in on
I'm currently using the revenucat webhook to manage the subscriptions (iOS works just fine) and while testing the Android purchase flow, I've been struggling with the following issues:The trial webhook is not being received as the documentation says, it's just coming as a normal initial purchase, it does not have the property "period_type": "TRIAL" but has the "period_type": "NORMAL" instead. This is making really hard to identify when a user is trialing or already has trialed.I created the offer just as the documentation explains: The other problem I've been facing is that a user is not doing an upgrade but another new subscription purchase is happening instead, why is this happening? example situation:Starts with a premium trial Decides to downgrade to a basic planSubscription should change to basic (even that the change is not being applied immediately, the plan should be changed (probably in the end of the trial with a renewal) and at least one PRODUCT_CHANGE event should be trigg
Working through setting up RC for the first time am using https://docs.revenuecat.com/reference/subscribers to grab a particular user’s entitlements and subscriptions information. Per the docs, I see that the subscriptions payload returns a mapping of product_id to the subscription itself. When testing with a Sandbox account, I see the is_sandbox populates as true which is to be expected. If a user has a sandbox subscription and I then subscribe the same user with a production subscription, what exactly happens? Is this allowed and, if so, how does this affect the final subscriptions payload?
I deleted a package identifier in an offering I was setting up. I then tried to add the identifier back in with the same ‘name’ and description and I get the message that the package identifier already exists. However, it is no longer in the list. Does this mean that I cannot delete package identifiers and then re-add them back in if I change my mind on an offering that is not current. What happens if I delete the complete offering? Will all package identifiers I used no longer be available to re-use in a new offer? Thanks
While working with on the app in my simulator everytime I remove and run the app revenue cat new customer data is increasing. I would like to filter this debug mode datas. Is there anyway to do that? some thing like this:#if DEBUG Purhcases.environment = .sandbox#endif
I have installed the lasted version of revenue cat in my expo app and all work fine in IOS but when I created a build to test on android it crashed with ```Your app just crashed. See the error below.com.amazon.a.a.o.a.b: Executing thread must be thread: 2, was: 206at com.amazon.a.a.o.a.a.a(Assert.java:59)at com.amazon.a.a.o.a.a.a(Assert.java:48)at com.amazon.a.a.o.a.a.a(Assert.java:31)at com.amazon.a.a.k.c.a(ResourceManagerImpl.java:50)at com.amazon.a.a.k.c.<init>(ResourceManagerImpl.java:34)at com.amazon.a.a.b(AppstoreSDK.java:171)at com.amazon.a.a.<init>(AppstoreSDK.java:155)at com.amazon.a.a.a(AppstoreSDK.java:234)at com.amazon.device.iap.PurchasingService.registerListener(PurchasingService.java:89)at com.onesignal.TrackAmazonPurchase.setListener(TrackAmazonPurchase.java:107)at com.onesignal.TrackAmazonPurchase.<init>(TrackAmazonPurchase.java:84)at com.onesignal.OneSignal.handleAmazonPurchase(OneSignal.java:978)at com.onesignal.OneSignal.init(OneSignal.java:855)at
I have 2 products in the AppStore: a monthly subscription and a yearly subscription, and I am testing the RevenueCat API in sandbox.the purchase function (Purchases.shared.purchase(package: package)) seems to be working fine, there’s no error.I’ve tested a scenario where I buy a monthly subscription, and then a yearly subscription right after, the purchase function returns the CustomerInfo with old info (still the productIdentifier pointing to the monthly subscription). However, Purchases.shared.restorePurchases actually return the up to date CustomerInfo with the yearly subscription.Here’s the code I’m using to purchase:static func purchase(package: Package, completion: @escaping (_ info: CustomerInfo?, _ error: Error?, _ usercancelled: Bool) -> Void) { Purchases.shared.purchase(package: package) { transaction, customerInfo, error, userCancelled in completion(customerInfo, error, userCancelled) } } Could it be a bug or is there something wrong wi
If there is an attempt to change the purchase (switch between subscriptions), while app is without internet we will get a response like this:`PurchasesError(code=StoreProblemError, underlyingErrorMessage=Error finding existing purchase for SKU: something, message='There was a problem with the store.')`All the next attempts (even if the internet is now available) will return the following response:`PurchasesError(code=OperationAlreadyInProgressError, underlyingErrorMessage=null, message='The operation is already in progress.')``This is happening until the app is killed and restarted.
I installed the expo managed workflow and also followed the revenuecat/react-native-purchases guide and trying a simple code to setDebugLogs I keep getting React.useEffect(() => { Purchases.setDebugLogsEnabled(true); }, []);null is not an object (evaluating 'RNPurchases.setDebugLogsEnabled') I also tried a simple configure and got similar issue React.useEffect(() => { Purchases.configure({apiKey:"xxxxxxxxx"}); }, []);null is not an object (evaluating 'RNPurchases.setPurchases') Any idea what could it be or how to debug this?I read other comments and issues but none of them had a working solution Note: I started trying this today so I have the latest versions of everything, expo, react native and react native purchases
Hello, If you get the error : TypeError: _reactNativePurchases.default.setup is not a functionThe getting started for RN is not up to date.The Purchases.setup("public_ios_sdk_key") is no more available.https://docs.revenuecat.com/docs/getting-started#7-configure-the-sdkYou should use Purchases.configure({ apiKey: "public_ios_sdk_key" }) instead.https://docs.revenuecat.com/docs/configuring-sdk#initialization
Hey RevenueCat,im getting ready to launching my subscription plan in my app, however, I do want to give my old users free access forever. Is that possible?
I'm using lib 4.1.2 purchases_flutter.My app requires login to be subscribed.Subscribe works correctly, the problem starts when I log out of the user and log in.When I login again the entitlements active comes empty, if I reopen the app it also comes with empty entitlements.I'm using test user on android with annual subscription renewed every 30 min.Any tips?
We would like to display something to the user before swapping the subscription to a different user ID. That would mean knowing, when possible, the subscription status of the AppleID or Google Play account.Is there a way to fetch the local subscription status with the SDK? Of course that information could be incomplete on iOS without a user-approved Restore, but it would still cover a large enough number of cases to help with the customer support.
I’m integrating RevenueCat into an app with a custom configuration and AB testing system. I can mirror some of what my app does in RevenueCat by setting up different offerings in RC. Then RC can report its transaction centric view segmented by the cohorts that my custom client side code creates. But to achieve this I need the client/app to call a RC API to set the users current offering. Is there a way to do this?
[React native IAP implementation]Hello! I’m implementing a redeem code button that will redeem discounted annual products in my app. The way i implemented to check it was add a purchasesListener when he clicks the redeem code button, the problem is I want to remove the listener when he goes from page A ( page with redeem code button ) to another page B ( meaning he did not reclaim the coupon ), or when he enters another specific page C in our app, that is se screen after the paywall if he did not claim any offer codesI don’t know if I agree with the interface of this purchases listener. Having to pass a function reference when i add and when i remove means i have to keep track of this function reference in some sort of global store or do some workarounds only to keep the exact reference i used to remove…Couldn’t the sdk accept a function and keep inside the sdk the reference to the function, making it immutable across app’s lifecycle?I thought it this way→ add purchasesListener ( cal
Hello, My app has 3 products, Monthly, Annual, and Lifetime packages in 1 offering. On launch I call getOfferings, take the current offering, and store the packages. My paywall is dynamically generated based on these packages. When I try and call purchase() on my Annual or Lifetime packages it works fine, but my Monthly fails with a weird error: 2022-08-23 11:00:18.932233+0930 Pestle[44020:4973217] [Purchases] - INFO: 💰 Purchasing Product 'mymonthlyoffering' from package in Offering 'Pro Upgrade'2022-08-23 11:00:23.562161+0930 Pestle[44020:4973974] [Default] [StoreKit] Received error that does not have a corresponding StoreKit Error:Error Domain=ASDServerErrorDomain Code=3502 "This item is not available." UserInfo={client-environment-type=Sandbox, storefront-country-code=AUS, NSLocalizedDescription=This item is not available.}2022-08-23 11:00:23.562331+0930 Pestle[44020:4973974] [Default] [StoreKit] Purchase did not return a transaction: Error Domain=ASDServerErrorDomain Code=3502 "Th
Is there a list of all the error code number? Ideally we could rely on an enum to decide what message to display or if we want to attempt a retry, but there is a code number in the SDK’s error that could be the next best thing:We could use that, but we can’t seem to be able to find a comprehensive list of all the errors with their codes, only this list of strings. Where can we find such a list? (We’re using RevenueCat SDK 4.0.0 and Unity 2021.3.8)
Hello,I’m using purchases-flutter 4.1.2 (latest at the moment). I’ve set up the entitlements, offerings, products as well as packages as guided in https://docs.revenuecat.com/docs/ios-productsI can get the offerrings and display the packages correctly.But when I make a call to `Purchases.purchasePackage()` to purchase a package, the call just hangs and doesn’t return at all.Here’s my dependency list:```environment: sdk: ">=2.17.5 <3.0.0"dependencies: another_flushbar: ^1.10.23 awesome_notifications: ^0.6.21 bloc: ^8.0.2 cached_network_image: ^3.1.0 cloud_firestore: ^3.4.4 easy_localization: ^3.0.0 easy_localization_loader: ^1.0.0 equatable: ^2.0.3 firebase_analytics: ^9.3.1 firebase_auth: ^3.6.3 firebase_core: ^1.20.1 firebase_messaging: ^12.0.2 flow_builder: ^0.0.2 flutter: sdk: flutter flutter_bloc: ^8.0.1 flutter_onboard: ^2.0.0 flutter_platform_widgets: ^2.0.0 flutter_svg: ^1.0.0 flutter_typeahead: ^4.0.0 formz: ^0.4.0 google_fonts: ^3.0.1 grouped_li
the problem is I get the web hooks on EXPIRATION, PRODUCT_CHANGE and CANCELLATION but I don’t get it on INITIAL_PURCHASE or RENEWAL so we can't update our database what am I missing, I set every thing right, I also set revenueCat web hooks on App Store Connect for Sandbox and production and I even get customer history in overview with sandbox checked
Sorry if it was asked before, I searched but couldn’t find anything :(What is the best way to calculate the price for annual subscription per month/week? I want to show user, how much he/she will pay for an annual subscription each month or week.I see that there is a pricePerMonth property on StoreProduct and it calculates correctly, but it shows only the numbers, without currency symbols such as $.Thank you!
There was a problem with the store.at node_modules\react-native\Libraries\BatchedBridge\NativeModules.js:null in promiseMethodWrapperat node_modules\react-native-purchases\dist\purchases.js:null in __generator$argument_1at node_modules\react-native-purchases\dist\purchases.js:null in stepat node_modules\react-native-purchases\dist\purchases.js:null in fulfilledat node_modules\react-native\node_modules\promise\setimmediate\core.js:null in tryCallOneat node_modules\react-native\node_modules\promise\setimmediate\core.js:null in setImmediate$argument_0at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:null in _allocateCallback$argument_0at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:null in _callTimerat node_modules\react-native\Libraries\Core\Timers\JSTimers.js:null in _callReactNativeMicrotasksPassat node_modules\react-native\Libraries\Core\Timers\JSTimers.js:null in callReactNativeMicrotasksat node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:
Hello,I came back to a Flutter project that was working fine few months ago. I’ve updated the purchases_flutter package and now I can’t fetch the offerings on iOS but works fine on Android.After reading the Why are offerings or products empty? post I’ve noticed that I had a new Paid Applications Agreement so I’ve accepted but after 2 I still getting the error.I’ve checked all the possibles causes mentioned in the post but I don’t understand what the solution 3 means: If you're trying to fetch products from the App Store, ensure you're not using a StoreKit Configuration file I don’t know where is the problem. Any suggestions? Thanks in advance! These are the errors I’m receiving:ERROR: 🍎‼️ Error fetching offerings - No se ha podido completar la operación. (Error de RevenueCat.OfferingsManager.Error 1.)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 Rev
Will the Unity SDK documentation be built out further? I feel it’s lacking information, especially on the 4.0 RC release.
We’re integrating RevenueCat to our Unity app, but we can’t seem to find the way to display the detailed logs I’ve seen around in the documentation and in this forum. Those described here. I’ve tried in both an Android and an iOS build.I am, of course, calling SetDebugLogsEnabled(true) before calling Configure(...), as prescribed in the docs. I can also correctly purchase sandbox subscriptions using the SDK, so the setup phase seems to be working fine. (We’re using RevenueCat SDK 4.0.0 and Unity 2021.3.8)
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.