Get help with your SDK implementation.
Recently active
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.
How can i set the FirebaseAppInstanceID in flutter, there is no method for it in the flutter SDK
We recently migrated from the legacy version (aliases) to transfer purchases. Will this behavior take effect immediately or will there be a lag time till this behavior takes effect?
Hi,I followed your tutorial to convert our Paid app to Subscriptions - https://www.revenuecat.com/blog/converting-a-paid-ios-app-to-subscriptions.In sandbox mode everything works as expected, but in production it seems that ‘CompatibilityAccessManager’ cannot convert old users without reopening the app. So my guess is that ‘func isActive(entitlement: String, result: @escaping ((Bool, Purchases.PurchaserInfo?) -> Void))’works only after some delay or 2nd time in production.I configure entitlements on ‘appDidFinishLaunch’ to grand access with this method:‘func configure(entitlements: [BackwardsCompatibilityEntitlement], completion: ((Purchases.PurchaserInfo?) -> Void)? = nil)’. Also I set ‘PurchasesDelegate’ to catch updates and configure UI.When should I check ‘isActive’ state with CompatibilityAccessManager? Can I rely on ‘PurchasesDelegate’ or it’s better to use some timers to recheck again ‘isActive’ state?Can we test this problem on production with promo-codes?
Problem: from my app’s perspective purchases seem to be working, but I see no record of them anywhere on the RC website (recent transactions, customers in sandbox, etc).Package: RevenueCat 4.11.0, Xcode 14 beta 6I used RC for my last app and was very happy with the experience. I want to use it again for my next app, which is for iOS 16 only. It’s the same scenario as the last app: no subscriptions, one non-consumable “pro” upgrade, three consumable “tips”. I used the same code as in my last app, with obviously a different public key. I went through the same setup steps as last time on ASC and RC websites. When I start the app (with debug logging on) I see the new product names I created for this app being pulled down. My tips View is being properly populated with my tip names and prices. When delete the app, reinstall it, and I purchase the non-consumable Pro it properly warns be that I’ve bought it already. I’m making purchases with a valid Apple account. I’m testing from an iPhone
We just migrated from the old Purchases pod (version 3.13.1) to the new RevenueCat (version 4.11.0).In didFinishLaunchingWithOptions method we are configuring RevenueCat as follows:let purchases = Purchases.configure( with: Configuration.Builder(withAPIKey: "???") .with(observerMode: true) .build())let instanceID = Analytics.appInstanceID()purchases.attribution.setFirebaseAppInstanceID(instanceID)if instanceID == nil { // Track error}Until now, 5% of our users using iOS 12/iPadOS 12 are getting this crash Crashed: com.apple.main-thread0 libswiftCore.dylib 0x204ba0 specialized _assertionFailure(_:_:file:line:flags:) + 3601 libswiftCore.dylib 0x282bc _assertionFailure(_:_:file:line:flags:) + 322 libswiftFoundation.dylib 0xa3d10 @objc static NSObject.__old_unswizzled_keyPathsForValuesAffectingValue(forKey:) + 843 libswiftFoundation.dylib 0xa436c static __KVOKeyPathBridgeMachinery.keyPathsForValuesAffectingValue(forKey:) + 2724 l
I just updated my xcode and my computer with the new apple updates that just came out and now RevenueCat is making my project not build correctly because i keep getting this error in one of their files “Stored properties cannot be marked potentially unavailable with '@available'” What should I do to fix this?
I noticed when testing that my subscription expires pretty quickly. Subscription acceleration is vaguely explained in the docs (more details would be super helpful). The odd thing is that if I go through with the purchase again, it appears to succeed (it does not throw a PlatformException) but then when I print the entitlements right after the purchase code (await Purchases.purchasePackage(package)) I see this:{premium: EntitlementInfo{identifier: premium, isActive: false, willRenew: false, periodType: PeriodType.normal, latestPurchaseDate: 2021-09-22T01:58:04Z, originalPurchaseDate: 2021-09-21T20:58:05Z, expirationDate: 2021-09-22T02:58:04Z, store: Store.appStore, productIdentifier: jsdev_59_1y_1w0, isSandbox: true, unsubscribeDetectedAt: 2021-09-22T02:59:55Z, billingIssueDetectedAt: null}}If going through with a purchase does not renew an expired subscription, what does?(sorry for the mediocre formatting, your code formatter for this forum doesn’t support markdown and doesn’t support
Hi, Just checked today, my app in the Apple app store is not fetching subscriptions. It is showing ‘No subscriptions found’. I have not updated app recently, nor made any changes in apple store connect account. Not sure what is the problem here. I quickly checked on my local setup, I am able to see subscriptions while running the app in simulator. Could you help me in debugging this further. Thanks
Hi,I just started using RC and I have some problems regarding renewals. I’m using React Native SDK and primarily targeting Android. I only have 1 subscription offer for my app. After the user successfully completes a purchase, I can see that he is given 7 minutes of access, I receive emails from Google Play Store about the purchase. After 7 minutes ( first renewal ) I receive another email from Play Store about successfull renewal. But when I refresh my app and make a request to customerInfo, the response is empty. Next time I open the app, I can see another event is added to customer history page in RC panel: “Opted out of renewal for ….”I identify to RC after firebase login with user email. Users must login to purchase something. I tried with both an old subscription before Play Store changes, and new subscription. Results are same.Am I missing something?
Well, I manage to test my app in the sandbox and buy a subscription plan for a month, it work like expected, it auto-renew 3 times and then “Opted-out of renewal” and “Had their subscription expire” after that, I load again the app and it show me that I have not current any active subscription what is great, but here the problem, when I try to renew the subscription, I do the same process using “purchasePackage”, sending the same package that the user previous subscribe, I don’t get any error the call work but the return “purchaserInfo” do not have any new active subscription. the debug info after I call purchasePackage: 2022-01-11 20:55:07.209981-0500 LoosidApp[26462:18273130] [Purchases] - DEBUG: ℹ️ Vending Offerings from cache2022-01-11 20:55:07.211967-0500 LoosidApp[26462:18273130] [Purchases] - DEBUG: ℹ️ makePurchase2022-01-11 20:55:07.213718-0500 LoosidApp[26462:18273130] [Purchases] - DEBUG: 💰 Purchasing product from package - soberplus_month_1 in Offering Default2022-01-11 20
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
API request completed with status: POST /receipts 503.Subscription purchases successfully but not working on android side.Even i received google play receipts by email.We are facing this issue since two weeks.
Hello,There have been some similar reports about GetOfferings callback not being called on Fire OS (and some other on Android and iOS, but looks like iOS one has been fixes). I’ve setup everything and was able to get my offering for Android. When I setup the app for Amazon Store the GetOfferings doesn’t call the callback (neither success nor error). I’ve tried the other offerings API that registers a listener, but that one is also not firing events.Here are the logs of the call:DEBUG: ℹ️ Debug logging enabledDEBUG: ℹ️ SDK Version - 5.6.0DEBUG: 👤 Initial App User ID - nullDEBUG: 👤 Identifying App User ID: $RCAnonymousID:602c1ecc192b4d6b9bf2d776a95b0564DEBUG: ℹ️ Deleting old synced subscriber attributes that don't belong to $RCAnonymousID:602c1ecc192b4d6b9bf2d776a95b0564DEBUG: ℹ️ No cached Offerings, fetching from networkDEBUG: ℹ️ App foregroundedDEBUG: ℹ️ CustomerInfo cache is stale, updating from network in foreground.DEBUG: Retrieving customer info with policy: FETCH_CURRENTDEBUG: ℹ
I am testing revenue cat 4.0 with Unity 2020.3.8f1 on fire tablet amazon but the callback of Purchases.GetOfferings is never called. With other platforms (iOS and google play) it works correctly.I’ve already configured amazon revenuecat key, shared amazon key,set useAmazon=true and enable sandbox mode as write here: https://developer.amazon.com/docs/in-app-purchasing/drm-sample-app.html#step-6-enter-sandbox-modeI have created a scene empty with your script “PurchasesListener.cs” (and Purchases.cs) to replicated the issue.The callback in GetOfferings is never called either on PurchasesListener.Start() or when you pressed on the UI Button “GetOfferings”
I have followed instructions from the official documentation (https://docs.revenuecat.com/docs/ios-subscription-offers) but I can’t get promotional offers to appear.I’m using a sandbox user, which has an expired annual subscription. When I call any of these methods, I either get 0 offers or it says that the user is not eligible for the promo offer (pay up front, x% off first year).let d = package.storeProduct.discounts (returns 0)let e = await Purchases.shared.checkTrialOrIntroDiscountEligibility(product: package.storeProduct) (returns ineligible)let promoOffers = await package.storeProduct.getEligiblePromotionalOffers() (returns 0) Here are the entitlements for the user:identifier=pro,isActive=false,willRenew=false,periodType=Normal,latestPurchaseDate=Optional(2022-05-28 12:36:19 +0000),originalPurchaseDate=Optional(2022-05-27 16:03:13 +0000),expirationDate=Optional(2022-05-28 13:36:19 +0000),store=Store(rawValue: 0),productIdentifier=com.mycompany.myapp.pro.yearly,isSandbox=true,unsu
After a few re-purchases of the same product (after it expired normally) it becomes impossible to re-purchase it again. The Apple native purchase dialog is not displayed, PurchaseProduct callback is called with no errors, but the CustomerInfo does not include any active Entitlement or any ActiveSubscription.(We are using RevenueCat SDK 4.0.0 and Unity 2021.3.8)Of course, those purchases are in sandbox. But it's impossible for us to determine if this is a sandbox-only issue. We never had a similar issue with in our current implementation of Unity IAP, so answering this is actually an important for us as we are currently trying to assess if the SDK is stable enough to transition to.Here are the [Purchases] logs from one of those failed purchase: 2022-09-01 12:06:22.334218-0400 AppName[18946:594262] [Purchases] - DEBUG: ℹ️ Skipping products request because products were already cached. products: ["com.company.app.subscription_one_month_01"]2022-09-01 12:06:22.337390-0400 AppName[18946:593
I have two products (weekly, monthly) and two entitlement attached to them. In sandbox, when I purchase the first weekly, the entitlement is right. But when I upgrade to the monthly when weekly entitlement is active, active entitlement seems to be be still the weekly. I expect it to entitled to only monthly. Upon purchase of monthly debug logs show the purchased product as monthly but I can’t get its entitlement as active entitlement.purchaseInfo.entitlements.active seems to have only one entitlement and it’s weekly. The product definitions are in the same subscription group. The sandbox data also shows the latest purchase as weekly and user’s entitlement to monthly. What could be the problem here?I’m checking it like shown below: Purchases.shared.purchase(package:selectedPackage) { transaction, purchaseInfo, error, userCancelled in if let error = error { print(error.localizedDescription) self.purchaseFailed(purchaseInfo, error, userCanc
Hello, I’m trying to to handle the error thrown when the transaction is interrupted ( Accept terms and conditions, update payment info ). All the clue I have is “ Error: There was a problem with the App Store.”Can i rely on this message to identify this type of error? This seem too generic to me, and i fear that by handling this message some errors could stop being monitoredI’m testing with the enable interrupted purchases in store kit
This is the behavior I’m seeing (tested on iOS) when setting the Restore behavior to Block Restores.App store userA logs into our app as user1 user1 purhcases a monthly subscription user1 eventually cancels monthly subscription and it expires user2 logs in on the same device (i.e. still app store userA) user2 purchases monthly subscription, gets the ‘receiptAlreadyInUse’ error, HOWEVER, the purchase still went through successfully and user1’s purchase was restored.This feels like a bug that the purchase made it through even though the SDK returned an error.Also, the link to the documentation on restores is currently pointed to here which gives a 404.
As per the title:I always get the ‘Receipt is missing error’ when testing via TestFlight.In Xcode, when configured with a StoreKit file, it works fine. Without StoreKit and TestFlight it does not work, the app review is also always getting rejected.I cannot see why it does not work. The products and offerings are configured correctly (and they are shown in the app), it’s just the receipt that is always missing when purchasing.
Hi, I have searched and read many posts regarding to my problem.Many users encountered the same issue as mine. However, none of them received a solution or clear confirmation about this issue.A new sandbox user works fine with the first purchase of a subscription item. But after expiration, if we want to resubscribe, it sometimes just fails.More specifically, we are using https://github.com/RevenueCat/purchases-unity/releases/download/4.1.0/Purchases-UnityIAP.unitypackage with a Unity app.When we click on a subscription button for a resubscription, the function PurchasePackage works fine without an error, but in the callback, we check customerInfo.Entitlements.Active.ContainsKey(entitlementId) and it is still false.I think at least there should be a confirmation whether it only happens in TestFlight/sandbox environment or not?Thanks!
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
HelloI want to use billing client v4(Google) with purchases_flutter over 3.4.0 and flutter 3.1.1.but “java.lang.NoSuchMethodError: No virtual method queryPurchases" occured at this code.await Purchases.setup(publickey);and stack trace is this.D/[Purchases] - DEBUG(21733): ℹ️ API request started: GET /subscribers/oDNEWTpax9Xkz0FVC3tdoRzdPbh1/offeringsD/[Purchases] - DEBUG(21733): ℹ️ API request completed with status: GET /subscribers/oDNEWTpax9Xkz0FVC3tdoRzdPbh1/offerings 304D/[Purchases] - DEBUG(21733): ℹ️ Requesting products from the store with identifiers: jp.kazushige.sato.suudoku.month1, jp.kazushige.sato.suudoku.month6, jp.kazushige.sato.suudoku.month12D/[Purchases] - DEBUG(21733): ℹ️ Requesting products from the store with identifiers: jp.kazushige.sato.suudoku.month1, jp.kazushige.sato.suudoku.month6, jp.kazushige.sato.suudoku.month12D/[Purchases] - DEBUG(21733): ℹ️ Querying purchasesE/AndroidRuntime(21733): FATAL EXCEPTION: Thread-11E/AndroidRuntime(21733): Process: jp.kazushig
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
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.