Get help with your SDK implementation.
Recently active
Hi,I’m in a situation where I have to test on a simulator, but despite setting up my StoreKit Configuration, I continue to hit a brick wall. Note, testing on a device was working fine.I’ve scoured as many relevant help articles as I could find on the community, but I’m still stuck.Specifically, I get an error message saying the product identifier I’ve created in my StoreKit Configuration is invalid, and that an SKProduct could not be found.Invalid Product Identifiers - ( "com.gravy.dev.monthly_4.99")Could not find SKProduct for ( "com.gravy.dev.monthly_4.99") I’ve tried this in a few different ways, always making sure the product existed in RevenueCat, and was apart of a “current” offering. That, and I’ve made sure to attach the StoreKit Configuration in my run options on the current target - but still no luck.Also, fwiw, I tried mimicking a current App Store Connect setup in my StoreKit Configuration, but that didn’t work either. Upon checkout, I’d get an error saying there was
We have things working properly on iOS and Android, but the Amazon Store is not working, and we have no idea why. Here is the log from live app testing:2022-04-05 19:42:59.883 4959-4959/com.alltogether.Hellosaurus D/[Purchases] - DEBUG: App foregrounded2022-04-05 19:42:59.884 4959-4959/com.alltogether.Hellosaurus D/[Purchases] - DEBUG: Checking if cache is stale AppInBackground false2022-04-05 19:42:59.885 4959-4959/com.alltogether.Hellosaurus D/[Purchases] - DEBUG: CustomerInfo cache is stale, updating from network in foreground.2022-04-05 19:42:59.887 4959-4959/com.alltogether.Hellosaurus D/[Purchases] - DEBUG: Offerings cache is stale, updating from network in foreground2022-04-05 19:42:59.888 4959-4959/com.alltogether.Hellosaurus D/[Purchases] - DEBUG: Offerings updated from network.2022-04-05 19:42:59.888 4959-4959/com.alltogether.Hellosaurus D/[Purchases] - DEBUG: Updating pending purchase queue2022-04-05 19:42:59.898 4959-4959/com.alltogether.Hellosaurus D/[Purchases] - DE
React nativeOn make purchase getting errorError: There was a problem with the App Store. at Object.promiseMethodWrapper [as purchasePackage]
In our RN app we make a call to `Purchases.getOfferings()` in order to show the default offerings to our users. However we are getting far too many API error response’s back which is degrading our user experience. Below is an example of the error response:```{"code":"23","message":"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).\nThis could be due to a timeout, or a problem in your configuration```Do you have any suggestion’s on how to improve the stability of this API when calling it directly from the client?
Hi, Alankrit here, We are planning to move to RevenueCat from our existing subscription architecture, in which, we save Apple App Store user subscriptions, in our backend, and they have the “originalTransactionId” as the unique key. We do not store any App Store receipts. While reading the migration documentation here https://docs.revenuecat.com/docs/migrating-existing-subscriptions , I figured that it is required to have a record of all App Store receipts, in order to migrate existing user subscriptions to RevenueCat. Some answers :suggest we should do Client Side migration. But, another aspect of our current architecture is, we first ask users to subscribe and only then they log in / sign up, so it is possible that at the time of subscription we may not have any user info. Question: Will client side migration work in this case ? And if so, any guidance on how to implement it would be really appreciated.
I need the purchaseToken for our server. This field exsits in the Android API,/** * Token that uniquely identifies a purchase. */ val purchaseToken: String,And it is received upon purchase. But iOS API of the purchase function below doesn't send it backfunc purchase(package: Package) async throws -> PurchaseResultDataWhen I debug, I see a similar data inside this:purchaseResultData.customerInfo.allPurchases.first?.value["id"]But allPurchases is private so I can't get it this way.Any ideas?
Hi, quick easy question from a newbie. What I have to use to get the Appstore country used to fetch the Appstore purchases ? Is that in packages? if let packages = offerings?.current?.availablePackages { … Also I need to be able to show the price in the Appstore country Currency , not the locale country, how to achieve that? Thank you.
I am running react-native-purchases 4.5.3 on an m1 MacBook with xCode 14. Building works fine on a physical device but fails on emulator with this error: fatal error: module map file '/Users/xxxxxx/Library/Developer/Xcode/DerivedData/xxxxxxx-aypdoepholwfczhdoyntaygzhteb/Build/Products/Debug-iphonesimulator/PurchasesCoreSwift/PurchasesCoreSwift.modulemap' not found1 error generated.Has anyone experienced that problem?
Calls to -- customerInfo?.entitlements[ “myEntitlementID” ]?.isActive seems to be generating Debug message log noise.I’m unsure how to fix/quiet these messages, does anyone know if this is a problem or a way to resolve whatever might be casing this? I’m assuming this is a problem with the .json being returned by the RC rest endpoints as its being decoded… This is the console output:_____________________2022-03-31 20:12:40.544032-0400 astrx[50240:2136091] [Purchases] - DEBUG: 👤 Identifying App User ID2022-03-31 20:12:40.551928-0400 astrx[50240:2136091] [Purchases] - DEBUG: ℹ️ Debug logging enabled2022-03-31 20:12:40.552073-0400 astrx[50240:2136091] [Purchases] - INFO: ℹ️ StoreKit 2 support enabled2022-03-31 20:12:40.552118-0400 astrx[50240:2136091] [Purchases] - DEBUG: ℹ️ SDK Version - 4.1.02022-03-31 20:12:40.552159-0400 astrx[50240:2136091] [Purchases] - DEBUG: 👤 Initial App User ID set2022-03-31 20:12:40.572296-0400 astrx[50240:2136091] [Purchases] - DEBUG: ℹ️ Key 'CodingKeys(strin
A growing number of our Android users are experiencing unexpected subscription expirations due to the PurchaserInfo.getEntitlements() returning empty incorrectly. The user will then use the restore functionally and PurchaserInfo.getEntitlements() will return correctly with their entitlements on the restore callback. Within the the next couple sessions the user will get 0 entitlements returned again and be forced to restore once again. This behavior does not seem to stop and the users are stuck in this loop. Background information:- Android- Confirmed users own entitlements in rev cat dashboard- RevCat Version: v3.3- We call Purchases.getSharedInstance().getPurchaserInfo() to verify subscription on every session
I migrated my app to 4.0 of purchases-ios and released it on Testflight.When I install the app on a device with an active subscription, the subscription status is lost (with all the associated features).If I re-install the App Store version, the subscription status is back.Purchasing works correctly in Xcode / debug.Any idea what’s happening?Thanks
ENVreact-native 0.67.4yarn 1.22.10node v14.16.0 dependencies"dependencies": {"@openspacelabs/react-native-zoomable-view": "^2.0.0","@react-native-community/cameraroll": "^4.1.2","@react-native-community/segmented-control": "^2.2.2","@react-native-community/slider": "^4.2.1","@react-native-picker/picker": "^2.4.0","@react-navigation/bottom-tabs": "^6.2.0","@react-navigation/native": "^6.0.8","@react-navigation/stack": "^6.1.1","@rneui/base": "^4.0.0-rc.1","@rneui/themed": "^4.0.0-rc.1","react": "17.0.2","react-native": "0.67.4","react-native-gesture-handler": "^2.3.2","react-native-image-picker": "^4.7.3","react-native-safe-area-context": "^4.2.4","react-native-screens": "^3.13.1","react-native-vector-icons": "^9.1.0"},
I’m implementing Non-Subscription Purchases (in Flutter). While testing I discovered that the Google Play store offers an option to select a quantity. When I submit a quantity greater than 1 the webhook JSON and Subscriber Info retrieved by the REST API do not reflect the selected quantity. Am I missing something or is this something that needs to be added to RevenueCat.I’ve included a picture of the purchase screen and the webhook JSON. You’ll note that the ‘price’ shown in the JSON reflects the amount for a quantity of three, however, there is no other indication that multiple units were selected. Webhook:{ "event_timestamp_ms": 1648663628931, "product_id": "com_phonelynk_prepaid_phonenumber", "period_type": "NORMAL", "purchased_at_ms": 1648663624258, "expiration_at_ms": null, "environment": "SANDBOX", "entitlement_id": null, "entitlement_ids": [ "voice_calls", "texting" ], "presented_offering_id": "default_offering", "transaction_id": "GPA.3327-0411-9732-1xxxx",
Hello. I'm testing AppStore subscription via TestFlight.I started a subscription via my app.Then the first notification was "RENEWAL" view WebHook.I remember PlayStore is start with “INITIAL_PURCHASE". In case of AppStore, is this right? best regards.
I am integrating RevenueCat into a ‘mature’ UIKit Objective-C iOS app. @import RevenueCat; gives me build error Module 'RevenueCat' not foundI used swift package manager to bring in 4.1. I added RevenueCat package to all the targets that should need it. No end of cleans & restarts gets it working. I was using an old .pch file which can cause weird #include dependency problems. After hacking to remove the .pch hey presto it worked. So I went ahead and properly removed the .pch files from the whole app, touching 100+ files. Then I put back @import RevenueCat; and I get the same build error Module 'RevenueCat' not found. I have another target for Mac Catalyst that shares nearly all the same code. That builds fine!Can anyone help?
I migrated my app to RC, however old subscribed users are having a sync problem. Previously, I was using react-native-iap library for subscriptions and receipts validations in the client side. if ( isSubscribedInOldSystem // not able to get this information && !isSubscribedInRevenueCat) { Purchases.syncPurchases();}Because of RC, I had to remove react-native-iap from my packages.json to prevent crashes and libraries incompatibilities.I never stored any users subscriptions informations and I am now unable to get the isSubscribedInOldSystem to syncPurchases. I need your help. Is there any way to proceed? Thank you in advance,Paul
We are currently testing restore purchase behavior on the Test Flight version of our app. When evoking the restore purchase behavior the app was able to locate the current subscription and unlock pro level features, but we never received a TRANSFER webhook. Are TRANSFER events available in Sandbox/Test Flight environments.
I'm having a problem with Android users, they purchase the subscription, but does not receive the subscription, instead they are asked to open the App to confirm the subscriptionReact Nativereact-native-purchases: 4.5.2
Hi Guys!Our project uses revenuecat with react native. We noticed a problem with purchases on Android TV when a user doesn’t have the payment methods defined on his Google account. When a user tries to purchase an item google directs the user to a page where presents 2 options: complete the purchase on an Android device, or following a link on a desktop. When a user completes the payment on another device the app doesn't get the information about the purchase and the only option that the user has is to try to back to previous screen.and we get this error: 2022-03-24 11:37:42.025 18325-18325/? E/[Purchases] - ERROR: 🤖‼️ BillingWrapper purchases failed to update: DebugMessage: . ErrorCode: USER_CANCELED.null2022-03-24 11:37:42.029 18325-18325/? E/[Purchases] - ERROR: 🤖‼️ Purchase was cancelled.The purchase is completed by the user, but he can't access the app’s content because the app doesn't know that he has purchased the item.Anyone has experienced this? We really need some help he
We are trying to show an alert if the user is not eligible for the trial/offer on our paywall. It’s very important we test that for new users this alert does not show, because otherwise we’re going to start blocking valid payments. We tried testing this on Testflight using a sandbox account. Our sandbox user presses Reset Eligibility to clear out any old uses of the trials/offers.When we carry out this test, the status comes back “Unknown”. Is this common when using a sandbox tester? Are there any obvious reasons this could be? Is there a way of testing the new user path (i.e. one that has just signed up and has not taken out any trials) without having to repeatedly create new users or something? We’re using react-native-purchases: 4.5.2
I am testing purchases in sandbox. I have purchased a subscription before, and it has expired.When I go in to purchase again, `Purchases.purchasePackage` prints purchase successful immediately and returns nothing and stalls.
Hey All,We’re noticed a bug appear on devices running iOS 15.4 having issues when trying to present the store code redemption sheet using the RevenueCat iOS SDK (3.14.1).Purchases.shared.presentCodeRedemptionSheet()The presentation sheet appears, however the expected redeem code page is missing. Instead we’re presented with a “Cannot Connect” with the retry button not performing any action.This is repeatable on all devices running 15.4 and only appears after the update from 15.3.1.Does migrating to the the most recent 4.1.0 release fix this issue for devices on iOS 15.4?Thanks
My iOS SwiftUI app is in Testflight, everything seemed OK, but since this weekend, there is this strange behaviour. When the app is run for the first time, everything works fine. But on second run (and all subsequent runs), offerings are not shown.If the app is deleted from device and reinstalled, the issue repeats: first launch shows offerings, second launch does not.______ Console ____________2022-03-20 21:32:45.986445+0100 AppName[12345:1234567] [Purchases] - DEBUG: 👤 Identifying App User ID2022-03-20 21:32:45.988665+0100 AppName[12345:1234567] [Purchases] - DEBUG: ℹ️ Debug logging enabled2022-03-20 21:32:45.988708+0100 AppName[12345:1234567] [Purchases] - DEBUG: ℹ️ SDK Version - 4.2.0-SNAPSHOT2022-03-20 21:32:45.988732+0100 AppName[12345:1234567] [Purchases] - DEBUG: 👤 No initial App User ID2022-03-20 21:32:45.991893+0100 AppName[12345:1234567] [Purchases] - DEBUG: ℹ️ Sending latest CustomerInfo to delegate.2022-03-20 21:32:45.992082+0100 AppName[12345:1234567] [Purchases] - DEBU
Hi,The following issue (https://github.com/RevenueCat/react-native-purchases/issues/200) was closed but I am still experiencing the error when I do a release build of a new scheme (i.e. staging, prod etc) of my React Native app. This was fine until now as we had a workaround of removing the `build` and `pods` folders and reinstalling the pods i.e. `rm -rf ios/build && rm -rf ios/pods && yarn && cd ios && pod install` every time we switched schemes and wanted to do a new release build.However, in the last few days, we have added an Apple Watch Extension to our RN app which is built using SwiftUI. Anytime that we try to build the Watch App with preview mode enabled (https://developer.apple.com/documentation/swiftui/previews-in-xcode) it fails with the following errors.Declaration of 'RCPurchases' must be imported from module 'Purchases' before it is required Could not build Objective-C module 'PurchasesHybridCommon' Is there any workaround to this? It is
Hello, In my app I have Block Restores enabled and the following situation:2 auto renewable subscription options set up - monthly and annualUser A subscribes to an annual subscription User B logs in on the same device and tries to subscribe to annual - gets the `receiptAlreadyInUseError` and I show an error But if User B tries to subscribe to a monthly subscription - the subscription goes through, switching User A’s subscription to a monthly subscription instead of annual (user B still doesn’t have a subscription, as expected)How can I tell that the currently logged in Apple ID is already subscribed with a different user and show an error when another user tries to subscribe and inadvertently changes the original user’s subscription?`CustomerInfo` doesn’t seem to have that info, User B has no active subscriptions.
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.