Get help with your SDK implementation.
Recently active
I received this error when tried to build my app on EAS after installingnpx expo install react-native-purchasesnpx expo install react-native-purchases-ui Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build▸ ** ARCHIVE FAILED **▸ The following build commands failed:▸ SwiftCompile normal arm64 Compiling\ PurchasesPlugin.swift /Users/expo/workingdir/build/node_modules/react-native-purchases-ui/ios/PurchasesPlugin.swift (in target 'RNPaywalls' from project 'Pods')▸ SwiftCompile normal arm64 /Users/expo/workingdir/build/node_modules/react-native-purchases-ui/ios/PurchasesPlugin.swift (in target 'RNPaywalls' from project 'Pods')▸ (2 failures)** ARCHIVE FAILED **The following build commands failed: SwiftCompile normal arm64 Compiling\ PurchasesPlugin.swift /Users/expo/workingdir/build/node_modules/r
Hello 👋, In our app we show the a 30 day badge next to the offer we show to the user. We also keep that badge after the user has bought the subscription. The user is now allowed to subscribe a second time, so we found ourselves in this situation: - if a user never subscribed, show the period the offer object has, np here- if they subscribed to this offer, use the expiration date minus the last purchase date rounded to the day to show the 30 days. Our concern is now if a user cancels their subscription before the trial ends then resubscribe, will the expiration time and more importantly, the latest purchase date change? I'm not sure a user can purchase a subscription if he's on it's free trial, even if canceled. Didn't find info on this so I'd appreciate any insight that you have. Thank you.
Hi RevenueCat team!I know this issue has about 63 😵 questions posted by a community and they have different reasons, so I guess you could be biased not wanting to solve this annoying bug. However it affects to many users and I just can’t let it live, so I’m seeking for your support. The background:I’m using the latest version your Flutter package `purchases_flutter: ^4.10.0`. I’ve been seeing this issue since upgrade to 4.x.The issue appears only for some android users, the app has about 8000 DAU, and in Crashlitycs there are about 200 daily errors related to that issue. For the rest of android users it seems to work fine. I also never were able to reproduce it internally. The devices distribution is the following:72% - samsung 5% - HUAWEI 5% - TECNO MOBILE LIMITED 3% - Sony 15% - Other (11) The exception is the following:flutter_error_exceptionPlatformException(23, There is an issue with your configuration. Check the underlying error for more details., {code: 23, message: There is
I just made my first iOS sandbox purchase using the RevenueCat Flutter SDK. Then I went to my dashboard and could not find the fake purchase. I looked at the docs and it claims I need to toggle my view sandbox data ON. The issue is that this toggle is disabled. When I hover I get the “not-allowed” cursor. Why would this toggle ever be disabled?
I have the same problem as this post: but im using react native sdk, after completing the purchase onDismiss is called
I am facing an issue with my Flutter app. I have a subscription that includes two products: an annual and a monthly option. Both products are correctly set up in Apple and RevenueCat. However, in my Flutter App when I fetch the offerings the annual product appears, while the monthly product shows up as null. Why is this happening?
Is there a way to add a video to the existing fullscreen paywall in place of the image?
Within a local Xcode testing environment we sometimes run in to the following error (which is received from RevenueCat):Error Domain=RCBackendErrorDomain Code=7638 "There is another request in flight trying to perform the same action."This is the error that we receive back when we try and make a purchase (within the following code block): func purchase(package: Package, completion: @escaping (InAppPurchaseResult) -> Void) { purchasePackage(package) { _, purchaserInfo, error, userCanceled in if userCanceled { completion(.userCancelled) } else if let error = error { completion(.failure(error)) print(error) print(error.localizedDescription) } else if purchaserInfo?.entitlements.all["unlocked"]?.isActive == true { completion(.success) } else { // According to RevenueCat doc it should never happen } } }Even though we receive
Hi All,I have more than 15k active user and only handful of people having this issue. The customer created the account but we are unable to see his transaction history, upon further inspection we found out that the user is already paying for the subscription, it’s just RC don’t recognize it.After following the below doc, I realize that we might have to add restore Purchase functionality to overcome this issue. After testing in sandbox we got a weird issue which says :-“😿‼️ There is already another active subscriber using the same receipt.” which is coming from the API with endpoint “/v1/receipts”. NOTE:- Both the sandbox and app account are new so there is no way that the sandbox had an previous purchase history. Now I am a bit confused and really want to sync everything for these users, I am looking forward for a saluting from this community. Thanks & Regards Mayank Sharma
When I try to sync purchases on one of my devices, I get the following error:Error syncing purchases StoreTransaction(orderId=null, productIds=[plus_upgrade], type=INAPP, purchaseTime=1641997886514, purchaseToken=<redacted>, purchaseState=UNSPECIFIED_STATE, isAutoRenewing=null, signature=<redacted>, originalJson={"productId":"plus_upgrade","purchaseToken":"<redacted>","purchaseTime":1641997886514,"quantity":1,"developerPayload":null}, presentedOfferingIdentifier=null, storeUserID=null, purchaseType=GOOGLE_RESTORED_PURCHASE, marketplace=null, subscriptionOptionId=null, replacementMode=null). Error: PurchasesError(code=UnknownBackendError, underlyingErrorMessage=Backend Code: 7651 - The payment for this non-subscription product is not complete., message='There was an unknown backend error.')On the Play Console, I see that this in-app purchase has been refunded and it has a proper order ID.Any idea?
Hi, I’ve been using Paywall with React Native, and it’s been great so far, but it doesn’t handle subscription upgrades/downgrades for Google Play, which is a major issue.Without this essential feature, Paywall becomes almost unusable for managing multiple subscriptions on the Play Store.Are there any solutions to make RevenueCat Paywall work for upgrades/downgrades with Google subscriptions in React Native?
I am using Flutter, fyi.How do I check that the user is logged into their google account (and Play Services) on their device, so that I don’t get an error when I show the paywall?
offering] DEBUG: ℹ️ Skipping products request for these products because they were already cached: ["pinqin_10_skill_coins"][purchases] INFO: 💰 Purchasing Product 'pinqin_10_skill_coins'[error] ERROR: 😿‼️ The operation is already in progress for this product.[purchases] ERROR: 💰 Product purchase for 'pinqin_10_skill_coins' failed with error: Error Domain=RevenueCat.ErrorCode Code=15 "The operation is already in progress for this product." UserInfo={NSLocalizedDescription=The operation is already in progress for this product., readable_error_code=OPERATION_ALREADY_IN_PROGRESS_FOR_PRODUCT_ERROR, source_function=addPurchaseCompletedCallback(productIdentifier:completion:), source_file=RevenueCat/PurchasesOrchestrator.swift:986}along with this whenever I am restarting the project , it works fine without this error.
Hi RevenueCat Support,I'm encountering an issue with my app, which was recently released on the App Store. When making a conversion via a sandbox account, the entitlements are not activating, and the CustomerInfo object consistently shows no active entitlements. Here’s an excerpt from the debug log:[DEBUG] Transaction: Optional(<StoreTransaction: identifier="2000000720835399" product="XXXMONTHLY" date="2024-09-20 20:48:21 +0000" quantity=1 >) [DEBUG] PurchaserInfo: Optional(<CustomerInfo: originalApplicationVersion=1.0, latestExpirationDate=Optional(2024-09-20 20:53:21 +0000), activeEntitlements=[:], activeSubscriptions=[:], nonSubscriptions=[], requestDate=2024-09-20 20:53:49 +0000, firstSeen=2024-09-20 20:51:57 +0000, originalAppUserId=EF36029C-E740-4B3C-B14C-1E179B37FD8D, entitlements=["PRO": "<EntitlementInfo: \"\nidentifier=PRO,\nisActive=false,\nwillRenew=false,\nperiodType=PeriodType(rawValue: 0),\nlatestPurchaseDate=Optional(2024-09-20 20:48:21 +0000),\noriginalPurc
Is there a way to send customer data when you use presentPaywall? All of my customers are anonymous.App User ID$RCAnonymousID:dad1b19971024dfcbb968e83ac87e288I’m using the react node package,import RevenueCatUI from 'react-native-purchases-ui';await RevenueCatUI.presentPaywall({displayCloseButton: false,});
Hello,I’m using Revenuecat SDK in flutter (purchases_flutter 6.30.2).I have an app on Google Console with a free phase of 10 days.When I call Purchases.getOfferings(), I'm getting it, but the duration is expressed as below:period shows P1W3D = 10 days (ISO 8601), which is ok.periodNumberOfUnits = 7 days, which is wrong.Is there a problem in my interpretation or the data returned is inconsistent ? I found the same problem in freePhase.billingPeriod:Thanks for your supportChris
It was working fine a few weeks ago, but now it just crashes every time I try to configure RevenueCat. Issue goes away when I don’t configure it.What do I do?
Is there a way to set custom package name & details on paywalls? Currently, you can only set the same info across all packages. I have different packages that offer different levels of access (which need some description and can’t be purely forced into the name). I see the Siamese (tier) option allows this but the other paywall templates do not. Thanks.
Hello, I'm starting to test the platform and I came across a problem using the Purchases.setAttributes method in Flutter!When I create a customer with the ID: "teste_123", and put some information in the Purchases.setAttributes method, everything works normally. I can see this attribute information both in the webhook and in the platform.However, if I cancel this subscription and make a new one with the same customer, the information is no longer set in the attributes.My code looked like this:
I’ve set up a default paywall for my React Native app which updates and displays correctly on my main device (iPhone 15 Pro). However it was rejected from the App Store because when they open it, it shows a much earlier version of the paywall without all the features or formatting included. This is also the case on my Android test device. If the updated paywall is showing on one device, why wouldn’t it work on the others?I should mention that the updated paywall is still not showing correctly on all devices more than 12 hours after creating it (changes update instantly on my main device, though).
Purchases work fine, but I realised my users take no further steps as expected. So I debugged with a Appstoreconnect Sandbox user and real iPhone device.After the purchase in PaywallFooterView(), log shows both debugPrints from onPurchaseCompleted, but navigation inbetween gets ignored. A bit strange since not async. Navigation in onDismissed gets executed.I can probably workaround by settings flags in onPurchaseCompleted, and navigate to another page in onDismissed, but I think this is unexpected behaviour?Log:flutter: 🟩💰 onPurchaseCompleted msg[paywalls] DEBUG: ℹ️ Looking up localization but found no stringsflutter: 🟩💰 onPurchaseCompleted - Transaction: xyzflutter: 🟩💰 onDismissflutter: Page2 opened Code in PaywallFooterView():onPurchaseCompleted: (CustomerInfo customerInfo, StoreTransaction transaction) {debugPrint('🟩💰 onPurchaseCompleted msg);Navigator.of(context).push(MaterialPageRoute(builder: (context) => Page1()));debugPrint('🟩💰 onPurchaseCompleted - Transaction: ${
I’m playing around with releasing my mobile app as a web app, as it’s on the same codebase. The only thing is missing is being able to offer purchases.I know the JS SDK is in Beta, and I guess if I was not a solo-dev, I’d use the stripe integration instead as it seems more mature and stable.Is anyone else here using it in production? How is it working out for you all?
I’m look at the targeting logic to choose a different offering to show a user based on either custom attributes or placements sent from the app. I don’t see why you need placements, in terms of you could just create a custom attribute with a name like “paywall-opened-from” and have different values depending on where the user launched the paywall from e.g. “first-run”, “settings”, membership-page” etc. Why have this separate concept of a placement along side custom attributes, what are the benefits of using them vs. just creating an attribute to define that logic? Thanks.
Is the web sdk “@revenuecat/purchases-js” suitable for use on a node.js server or does it have browser specific dependencies? If it is not, is using an open-api client generator the preferred way to use the rest API?
Hi, My game is distributed via Steam on Windows Desktop Platform. I’ve already setup RevenueCat Store Page and Stripe as well. I need to use Stripe payments because my game is distributed only on Windows Plaftform. But in the Purchase script I see only Android/iOS and Amazon. But I don’t use none of these because my game is on Windows Desktop.So, How can I use RevenueCat with Stripe configuration in Purchase Script? Please help me!
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.