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
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?
Hello, I’ve added my Google Play Credentials 48hrs+, but still get this error, can you please help me?D/[Purchases] - DEBUG( 5434): ℹ️ API request started: GET /subscribers/%24RCAnonymousID%3A2d82a4e3f2fa46c49d3afc4701689e76D/[Purchases] - DEBUG( 5434): ℹ️ API request completed with status: GET /subscribers/%24RCAnonymousID%3A2d82a4e3f2fa46c49d3afc4701689e76 304D/[Purchases] - DEBUG( 5434): ℹ️ PurchaserInfo updated, sending to listener.D/TrafficStats( 5434): tagSocket(168) with statsTag=0xffffffff, statsUid=-1D/[Purchases] - DEBUG( 5434): ℹ️ Vending PurchaserInfo from cache.D/[Purchases] - DEBUG( 5434): ℹ️ Checking if cache is stale AppInBackground falseD/[Purchases] - DEBUG( 5434): ℹ️ API request started: GET /subscribers/%24RCAnonymousID%3A2d82a4e3f2fa46c49d3afc4701689e76/offeringsD/[Purchases] - DEBUG( 5434): ℹ️ API request completed with status: GET /subscribers/%24RCAnonymousID%3A2d82a4e3f2fa46c49d3afc4701689e76/offerings 304D/[Purchases] - DEBUG( 5434): ℹ️ Requesting products fro
I have added a scheduled change in the duration of my introductory offer in App Store. I have change the offer duration from 2 weeks to 1 week, and scheduled the change to happen in two days. But when I test my app, product.introductoryDiscount?.subscriptionPeriod returns 1 week which is the upcoming change and not 2 weeks as expected. When I click to buy the subscription the iOS subscribe page shows 2 weeks trial period. Am I missing something here?
React nativeOn make purchase getting errorError: There was a problem with the App Store. at Object.promiseMethodWrapper [as purchasePackage]
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.
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
I’m using the iOS SDK getOfferings API which provides the Offerings Data how we can get the Entitlement ID from the Offering or Package ? Purchases.shared.getOfferings { (offerings, error) in if let packages = offerings?.current?.availablePackages { // want to know the Entitlement ID from the Offering or Package }}
I am trying to migration to RevenueCat. I must use Client Side Migration due to not having app_user_id. The problem I have is that the documentation does not show how to use syncPurchases with React Native. The current example show the process in swift Swift example:Purchases.shared.syncPurchases { (customerInfo, error) in }How do we call the Client Side Migration “syncPurchases” in React Native?
I tested my app for payment on Test Flight and it works fine I submitted my app and I get the following error message. I am not sure on how to reproduce this issue. Any pointers much appreciated.Hello,Thank you for providing this information.Upon further review, we found that your app does not comply with the following guidelines:Guideline 2.1 - Performance - App CompletenessWe found that your in-app purchase products exhibited one or more bugs when reviewed on iPhone running iOS 15.3.1 on Wi-Fi.Specifically, when we tried to top up credit, we were receiving a message saying “Purchase cancelled”.Next StepsWhen validating receipts on your server, your server needs to be able to handle a production-signed app getting its receipts from Apple’s test environment. The recommended approach is for your production server to always validate receipts against the production App Store first. If validation fails with the error code "Sandbox receipt used in production," you should validate against th
Hi there.Can two different users subscribe from the same device?
Hi, I have a problem with restore transition on my MacOS simulator. A fave steeps to reproduce this issue:Buy a subscription on my iOS app in simulator Open my app’s MacOS version with the same iCloud account (debug mode) Try to restore transaction in my MacOS app and receive an error (Unexpected backend error when posting receipt)I am able to buy a subscription in my MacOS app, but can not restore it as well. Any suggestions?I use SDK release/4.0.0-rc.1
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’m trying to handle `TRANSFER` events from the webhooks.Unfortunately, the `TRANSFER` events don’t copy any of the users previous attributes, including aliases (there should be an option to do this automatically IMO), so now we’re trying to keep our user app IDs in sync with our backend/database.It seems that I cannot set aliases using the REST API though, only attributes. Is there a way for me to set aliases using the REST API?
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?
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
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
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
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
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'm not seeing my offerings show up when I try to fetch offerings through the RC Amazon SDK.The SDK is configured using AmazonConfiguration.Builder I've enabled the products in the Amazon Developer Console I've setup the Amazon Live App Testing I've added products to RevenueCat and add it to my Offering and Entitlement I've followed everything on this postEvery time I open the paywall I get: DEBUG: ℹ️ No cached Offerings, fetching from network. No errors, but no Offerings showing up either when querrying through Purchases.getSharedInstance().getOfferingsApp works fine in regular Google Play mode.Would it be possible to get step-by-step instructions on how to actually setup the Amazon SDK?
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.
We added RevenueCat to an existing application that already had in app purchases.We would like to hide some from RevenueCat as to avoid the MTR fee. Is there a way to do this?We are using RevenueCat for new In App subscriptions but would like to separate these from previously implemented purchases.
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.