Get help with your SDK implementation.
Recently active
I am using the flutter SDK to integrate IAP to my app and i am using the non renewable subscription model. I want to get a unique transaction ID issued by apple to send to my server to store it if the user wants to refund his purchase in the future.
Hi, I am facing with this issue:Unable to load receipt, ensure you are logged in to a valid Apple account. The receipt is missing. I am able to get products and also able to able to see and buy them. But after I click OK, I got the error message. I don’t know why this is happening. Apple Store rejected my binary couple of times. With a physical device I can buy the product but with the simulator it works until the receipt error. Thank you.
Currently in CustomerInfo, there are properties like originalPurchaseDate and originalApplicationVersion for grandfathering users but I found originalTransactionID missing. originalTransactionID was useful to identify Spam users with shared Apple ID accounts. Is it possible for RevenueCat to expose this property so that we don’t need to add a duplicate logic to decode the App Store receipt?Thanks.
How to solve this missing lib on android?I have installed cordova and capacitor plugins for ionic by following this guide :https://ionicframework.com/docs/native/purchases$ npm install cordova-plugin-purchases@2.3.0 $ npm install @awesome-cordova-plugins/purchases $ ionic cap sync package.json I have those : "@awesome-cordova-plugins/core": "5.43.0","@awesome-cordova-plugins/purchases": "^5.44.0","cordova-annotated-plugin-android": "^1.0.4","cordova-plugin-purchases": "^2.3.0",
Fetched all offerings with accurate details Create a closed testing release with testers (Successfully published) Using a real device with logged in email in the play store that is included in the testersAll of the necessary steps to test the subscription feature have been done but still I’m getting : D/[Purchases] - DEBUG(10299): ℹ️ Vending Offerings from cacheD/[Purchases] - DEBUG(10299): ℹ️ Checking if cache is stale AppInBackground falseI/flutter (10299): PurchasesErrorCode.productNotAvailableForPurchaseErrorI/flutter (10299): The product is not available for purchase.
Hi there, so my app has a few options for subscriptions. A couple of those options have an introductory offer. When my app builds my paywall VC it fetches all my products from Revenuecat and uses them to fill in the regular price from the products respective .localizedPriceString. The setup function then passes through a guard which checks if the user has subscribed before by calling .getCustomerInfo and verifying if both .entitilments.all and .allPurchasedProductIdentifiers are empty. If they both come back empty then the introductory prices are added to my paywall vc as well to be presented to the user.In my own sandbox testing this seems to work fine. I submitted my app for review, and it has been rejected a few times now. The first couple were for other issues so assumed the paywall experience was fine. The Revenuecat customer sandbox account seemed to say so. However I have now been rejected a couple times in a row because my paywall is preseting the reviewer the intro pricing but
So we get rid of all AppStore/PlayStore integration for processing payment and rely fully on RevenueCat webHook.the main issue that we encounter so far is that when we have a restoreSubscription the RevenueCat webHook does't react also if user has a purchase already and he receive "You are currently subscribed to this" and press OK again the RevenueCat webHook does't react.How can we manage this 2 scenarios ?
I am migrating my Objective-C game project to V4 but can’t get past a ‘Module 'RevenueCat' not found’ build error.I have added the RevenueCat-Swift.h file and referenced it in the Bridging-Header.h file.I have upgraded Pods. @import RevenueCat; causes a build error. Completely stuck.
Hello. I'm interested in understanding how installing the app on a new device with the same app store id is handled when both devices are logged in with different anonymous revenue cat ids. Will the user have to restore purchases every time they switch devices, because of the "transfer purchase" behavior or are the two anonymous ids reconciled by revenue cat as belonging to the same App store id? Thanks!
Hello, I have been using the SDK pretty successfully during testing. Decided to take a break came back 2 weeks later and all of a sudden I am getting “Item not available in your country” error messages when trying to subscribe to any of the subscriptions I have up on my app(APK running on a physical machine at the mo for testing.)The base plan activated for all the products does include United Kingdom and the Google account I am using to make the purchase is also United Kingdom.I’d be more wary of this being my own introduced bug If I was actually changing the code over the last 2 weeks. - hence me reaching out. ScreensError message on display under every subscription available:Google account:Item availability in Google Play Console:Any advice would be greatly appreciated - thanks in advance. David
I integrated RevenueCat into an app written in Swift and SwiftUI. It worked all well until now.All of the sudden Xcode throws these two errors when building the app: Could not build Objective-C module 'RevenueCat'At the import RevenueCat statementHeader 'RevenueCat-Swift.h' not foundIn a modul.modulemapThe Content of the modulemap is as followed.framework module RevenueCat { umbrella header "RevenueCat-umbrella.h" export * module * { export * }} module RevenueCat.Swift { header "RevenueCat-Swift.h" requires objc} The weird thing is, that after rebuilding the app once or twice, the errors disappear.However, if I try to archive the app, they pop up every time and prevent Xcode from archiving the Build.I updated to the lates Xcode version some days ago, beside that there's nothing special that could point to the start of the problem.Any Ideas on that?
Hi,I’ve setup my App Store Connect with a test product and added to RevenueCat too. Also installed the latest version of RevenueCat in my iOS app - now I’m trying to do a test subscription purchase on a physical device from within my app but hitting a problem.I see all the initialisation debug messages from RevenueCat in the XCode debug window - however, when I’m making the call to Purchases.shared.getProducts([“my_product_id”]), RevenueCat is not returning any product back. The SwiftUI code I’m using is pretty much exactly the same as posted by @Michael Eovine in his post from a few weeks ago @ Note: I was hoping the RevenueCat documentation would help provide some useful details but surprisingly there’s only one single mention of ‘getProducts’ (see https://docs.revenuecat.com/docs/ios-native-3x-to-4x-migration#api-changes-1) and it’s in the context of it replacing the ‘products’ call. Can someone from the RevenueCat support team please assist in either suggesting troubleshooting st
I’m invoking Purchases.shared.purchase on a new iOS app I’m building and all is connected and configured properly (I think), this is what I get: 022-06-21 15:00:24.660227+0100 Mindworks[29422:726454] [Purchases] - DEBUG: ℹ️ API request completed: GET /v1/subscribers/$RCAnonymousID:1001512f67bb474d872e2adbe6ef3a22 3042022-06-21 15:00:24.664658+0100 Mindworks[29422:726454] [Purchases] - DEBUG: ℹ️ Sending latest CustomerInfo to delegate.2022-06-21 15:00:24.664755+0100 Mindworks[29422:726454] [Purchases] - DEBUG: 😻 CustomerInfo updated from network.2022-06-21 15:00:24.664820+0100 Mindworks[29422:726454] [Purchases] - DEBUG: ℹ️ GetCustomerInfoOperation: Finished2022-06-21 15:00:24.664994+0100 Mindworks[29422:726454] [Purchases] - DEBUG: ℹ️ Serial request done: GET subscribers/$RCAnonymousID%3A1001512f67bb474d872e2adbe6ef3a22, 0 requests left in the queue2022-06-21 15:00:24.665013+0100 Mindworks[29422:726540] [Purchases] - DEBUG: ℹ️ GetOfferingsOperation: Started2022-06-21 15:00:24.665164+0
At WWDC 22, Apple released a session video about proactive in-app purchase restore. From what I understand, this is a way for an app to automatically restore a user’s purchase (e.g. after a re-installation) without them having to use a “Restore Purchases” button.I’m not sure if this is new or if this was supported all along, so my question is: Does the RevenueCat iOS SDK have support for this? I already found the syncPurchases function but I’m not sure whether it is the right API for the task.
Our app has been approved & now in app store for almost a year without problem with app subscription.Today I tested a new version using sandbox environment, I got the following messages in the log:[BackgroundTask] Background Task 3 ("SKReceiptRefreshRequest"), was created over 30 seconds ago. In applications running in the background, this creates a risk of termination. Remember to call UIApplication.endBackgroundTask(_:) for your task in a timely manner to avoid this.After I got this message, the app is killed by iOS system & quit unexpectedly. The app purchase is never changed since it approved by Apple. The current new version in development hasn’t also been changed.The purchase SDK that I used is Purchases 3.13.1 Are there any leaks in this SDK version? or maybe Apple appstore has introducing new “mechanism” that this version of SDK can’t handle it? Thanks,Dann
Imagine that my app crashes just after a successful payment. I want to know purchase to finish when my app restarts.I don’t see in the docs how to do it using RevenueCat. I was using this code: SwiftyStoreKit.completeTransactions(atomically: true) { purchases in for purchase in purchases { switch purchase.transaction.transactionState { case .purchased, .restored: if purchase.needsFinishTransaction { // Deliver content from server, then: SwiftyStoreKit.finishTransaction(purchase.transaction) } // Unlock content case .failed, .purchasing, .deferred: break // do nothing } }} Thanks
Hi,I am able to buy some consumable (on iOS Sim & Device) using my Sandbox account. I see : [Purchases] - INFO: 😻💰 Purchased product - 'xxxxxx' 15:33:28 DEBUG Purchase succeeded. Optional({ "bundleId" : "xxx", "deviceVerification" : "w97BiaZOSrXxTrvrR6wTZuT44AL39rFO+V0gTIoE45eIjLCz6d4KmmemegmqFect", "deviceVerificationNonce" : "39520f62-1cba-4ef9-a348-6523a7baeb17", "inAppOwnershipType" : "PURCHASED", "originalPurchaseDate" : 1655494381866.502, "originalTransactionId" : "11", "productId" : "xxxxxx", "purchaseDate" : 1655494381866.502, "quantity" : 1, "signedDate" : 1655494381867.5581, "transactionId" : "11", "type" : "Consumable"}) But Dashboard is still empty & [5 - Make a test purchase] is still unchecked.I configured the sandbox endoint in the AppStore.So I am stuck.Do you have an idea?
I have setup a sandbox account to make purchases using the SDK.My products on AppStore Connect have multiple region prices setMy GBP price is £6.99My USD price is $7.49 (and is displayed correctly in app when I set the store locale as such) When I make a purchase in GBP (shown correctly by iOS SDK) the Event Data shows the correct price value (price_in_purchased_currency) for GBP but the ‘Currency’ is incorrectly in USD.{ "app_id": "app91a2d785de", "app_user_id": "$RCAnonymousID:5cb684d5429346688102439d2892be77", "country_code": "GB", "currency": "USD", "entitlement_ids": [ "Backstage" ], "environment": "SANDBOX", "event_timestamp_ms": 1655385097458, "expiration_at_ms": 1657977095000, "is_family_share": false, "offer_code": null, "period_type": "NORMAL", "price": 6.99, "price_in_purchased_currency": 6.99, "product_id": "backstage_monthly", "purchased_at_ms": 1655385095000, "store": "APP_STORE", "takehome_percentage": 0.7, "transaction_id": "StoreKitTest_Transactio
In Github https://github.com/RevenueCat/purchases-ios/tree/main/Examples That samples uses:Xcode 12.2 iOS 14 Swift 5There is a example for Xcode 13 or 14 beta working at last stable RevenueCat framework? All official documentation are obsolete at https://docs.revenuecat.com/docs - For example: Purchase module was rewrite to use RevenueCat and a lot of changes.
I switched from the “import Purchases” to import “RevenueCat” module today and am trying to simply call logOut() in my app when the user logs out but it isn’t working….(See images below)Why does the RevenueCat module not recognize logOut()? It is even gives me the option within auto-complete??import RevenueCatRevenueCat.Purchases.logOut() → Error "module 'RevenueCat' has no member named 'logOut'"???
I created a new in app product and add it to the offer list in reventcat, when trying to fetch the offerings list, I only can see the current offer: Is there something I can do to see it through revneucat? I’m using com.revenuecat.purchases:purchases:5.0.0-rc3 latest sdk
I have a question about the correct way to setup entitlements my app with only monthly recurring subscriptions.There are simply 10 different monthly recurring subscriptions, no yearly option, etc..Of these, the user can only have ONE active subscription and be “entitled” to; Either 1 Ball, 2 Balls, 3 Balls, etc depending on what they are paying for...1 ball = $0.99 per month2 balls = $1.99 per month3 balls = $2.99 per monthetc….10 balls = $9.99 per monthAll of my subscriptions are configured in the *same subscription group* in the App Store so a user can only be subscribed to *one subscriptions at any time*.If the user has NO subscription they can't "play the game" in the app, however the app is a free download.POTENTIAL ENTITlEMENT SETUP 1 (10 Different entitlements)Entitlement 1 = 1 ball $0.99 per monthEntitlement 2 = 2 balls $1.99 per monthetc….Entitlement 10 = 10 balls $9.99 per monthPOTENTIAL ENTITlEMENT SETUP 2 (1 Entitlement)Entitlement 1 = "Can play game" (since user has
I am following the ‘Magic Weather’ tutorial using Flutter on iOS. I’ve set up the RC project, app, entitlements, offerings and products. When I run the app, purchaserInfo appears to be valid but all of the lists and maps are blank.Any help is appreciated.
I have an application and I would like to integrate it with your API. But my app is old and is in Ionic 3 and Cordova. It is possible to integrate via this documentation (https://docs.revenuecat.com/docs/ionic) as I tried and some errors occurred on my deviceionic infoIonic: ionic (Ionic CLI) : 4.12.0 Ionic Framework : ionic-angular 3.9.9 @ionic/app-scripts : 3.2.3Cordova: cordova (Cordova CLI) : 10.0.0 Cordova Platforms : not available Cordova Plugins : not availableSystem: Android SDK Tools : 26.1.1 (/opt/Android) NodeJS : v10.22.0 (/home/alyson/.nvm/versions/node/v10.22.0/bin/node) npm : 6.14.6 OS : Linux 5.4One of the mistakes:
Good morning,We’re looking at the Firebase Integration documentation here : https://docs.revenuecat.com/docs/firebase-integration In the section about setting the Firebase User Identity in RevenueCat. Here: // Add state change listener for Firebase Authentication Auth.auth().addStateDidChangeListener { (auth, user) in if let uid = user?.uid { // identify Purchases SDK with new Firebase user Purchases.shared.logIn(uid, { (info, created, error) in if let e = error { print("Sign in error: \(e.localizedDescription)") } else { print("User \(uid) signed in") } }) } }It is clear that you call logIn when the user id is available. However, why don’t yo call logOut when it is not? Is there a reason? We just want to get our implementation right / complete and from an remote point of view, it feels incomplete. Thank you
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.