Get help with your SDK implementation.
Recently active
Hi, I’m going to outline my processes to easily create free trials and subscriptions for one device per google account. I am looking for advice on how to administer the subscription accounts and what pitfalls I may have, basically will my system work. Free TrialThe app is installed and on its first execute, RevenueCat creates an account for the app. Every time the app is executed the app will request the requestDate and check it against the current date, when the dates are more than 14 days apart the free trial will end. My trial time is currently hard coded in honesty I would not really change this time but I am aware I can grab this information from Google if required.I believe the requestDate does not change as its a static date when the account was created so it can be used for this process.Is there anything I need to know about using this date does it change at all ?Questions : I want to allow a one time only free trial unless I authorise a second trial but I don’t want the app
I have created multiple products within App Store Connect with the correct prices set in GBP. However when the IAP popup appears in the app the price is 10% greater that what I set in App Store Connect. For example one product has a price of £79.99 but when I try to pay for it in the app the price is £84.99. I am using the React Native SDK. IAP:App Store Connect:
At the moment I’m trying to read custom user attributes using the REST API.https://api.revenuecat.com/v1/subscribers/XXXXXXXXXXXXX'According to the following link this should be possible:https://docs.revenuecat.com/docs/subscriber-attributes#reading-attributesHowever; after a request I get the following data: without any attributes:{ "request_date":"2021-11-30T09":"16":09Z, "request_date_ms":1638263769288, "subscriber":{ "entitlements":{ "Pro":{ "expires_date":"2021-12-25T12":"38":30Z, "grace_period_expires_date":null, "product_identifier":XXXXXXXXXXXX, "purchase_date":"2021-11-25T12":"38":30Z } }, "first_seen":"2020-11-14T21":"10":39Z, "last_seen":"2021-11-29T15":"03":39Z, "management_url":null, "non_subscriptions":{ }, "original_app_user_id":XXXXXXXXXXXX, "original_application_version":1.0, "original_purchase_date":"2013-08-01T07":"00":00Z, "other_purchase
We’re seeing this issue when creating a subscription. I would think this is a RevenueCat Flutter SDK issue but not sure. Please let us know!
Hi, Atm we do not have the stripe subscription ID available in the Subscriber → subscription object. We want to be able to cancel them from our web funnel. Unless we’re missing something we’re not able to fetch the subscription ID directly through Revenuecat and we would have to save it somewhere in our backend. Is there a way to get the subscription ID through RevCat?
Hello,Offerings are not loading for our users.Some of our live users have been affected by this issue.This is what we are getting in the sentry dashboard. Also, Users who are affected by this issue have an active internet connection. So, that's not the case. This is what we are getting as logPlatformException(10, Error performing request., {code: 10, message: Error performing request., readableErrorCode: NetworkError, readable_error_code: NetworkError, underlyingErrorMessage: Unable to resolve host "api.revenuecat.com": No address associated with hostname}, null)Please help us ASAPThanks
I have followed all the instructions I can find, but I cannot get the Purchases framework to give me any offerings when running a debug build in the simulator against Xcode StoreKit testing.Offerings, entitlements, packages and products are set up I’ve set up my Xcode scheme to use the storekit configuration file (I also see three in the list, as mentioned elsewhere by another user - I’ve tried all three to no avail) RC product IDs match Xcode StoreKit config product IDs even though I’m just testing the Debug build that I don’t submit to Apple. I created an App ID for the debug bundle ID etc. in App Store Connect I’ve uploaded the StoreKit testing cert to RC I’ve set up an app-specific password on the IAPs for the debug build in App Store Connect and put that into RC My app has the In App Purchases entitlement in Xcode All my banking & agreements stuff is sorted out App Store ConnectThe things I am NOT doing:Running on a real device. Xcode StoreKit testing works in the simulator, d
We see that customers have a country associated. Is it possible to get customer country from RevenueCat information of the customer?
I have an iOS App using Purchases SDK version 3.13.0I have factory reset the iPad I am testing with.I am running a development build (debug)I have never made a purchase with this device after factory reset.On startup of the app I will present an onboarding screen to purchase subscription.My IAP has a 1 week free trial then a monthly subscription.I call the API checkTrialOrIntroductoryPriceEligibility to try and know whether I should inform them if the free 1 week trial is available to them.I was not expecting the dialog “Sign in with Apple ID to pop up” along with soft keyboard over the top of my onboarding screen.Is this expected behavior? I would prefer the Apple dialog “Sign in with Apple ID” be user initiated.I see the following Purchases Log in console if that helps.2021-11-19 11:16:08.928454-0700 Pick 3 Pro[582:34641] [Purchases] - DEBUG: ℹ️ Debug logging enabled2021-11-19 11:16:08.928736-0700 Pick 3 Pro[582:34641] [Purchases] - DEBUG: ℹ️ SDK Version - 3.13.02021-11-19 11:16:08.
Hello, When I purchase an in-app non renewable purchase, the Webhook will still trigger, with the old userID as an app_user_id. Details :I’m having an issue when I switch accounts (userID) but use the same Apple ID (in Sandbox)(I don’t know in production). I’m using of course, logOut then LogIn. And I verified that the new userID is well accepted by the SDK on iOS. PS: I’m using alias (legacy) for the userID management, should I switch to transfer ? maybe it’s causing the issue ? Thank you,Using Xcode / Purchase SDK Cocoapods
I have done some searching on this topic, but I haven’t found anywhere that addresses it directly. I have an iOS app with a renewing annual subscription. If I wanted to offer existing subscribers an incentive to share the app, such as giving them an addition month of service for every relevant action. I don’t see a way to do this without disrupting their existing subscription, even if I took care of the accounting of starting the one-month of free access and then tried to trigger their next month.The best I could think of was to offer them to renew with a different annual subscription that had a 1 month free trial. But that doesn’t necessarily scale well for different numbers of incentives.I hope that makes sense.
Hello,When talking to the RevenueCat API from the web, is there a way to mark those calls as intended for sandbox/staging? When using the mobile SDK, the system knows the IAPs are meant for sandbox because of the build environment on the iOS or Android side. Just wondering how to indicate the same when making web API calls?
Hi there, I am facing issue after making purchase with Play Store. After click on buy button, Play Store gives error “This product is already active for the user.” when i am already subscribed and after that i am refreshing purchaserInfo with await getPurchaserInfo() and getting empty entitlement and all data. Not getting data that i am already subscribed. Purchase history is also getting empty.Please help me.Thank you in advance.
On ios after a purchase succeeds a dialogue box saying “"You're all set your purchase was successful" pops up. Is there a way of preventing this?I want to ask the user to login right after the purchase in this dialogue gives the user an opportunity to blow past the login. I’d like to make that less likely if possible. thanks
Hey — We’re super excited to deeply integrate some of our support and workflow tools to use the new App Store APIs to extend subscriptions and issue refunds. Primarily this one: ExtendRenewalDateRequestThe request body containing subscription-renewal-extension data. But it requires to access the transaction ID, which the RC SDKs don’t expose easily. What’s the recommended way to get this done with RC?
When attempting to implement the PaywallView of the example SwiftUI project in my own project targeting iOS 15.0 I am receiving 2 errors. Referencing initializer 'init(_:content:)' on 'ForEach' requires that 'Purchases.Package' conform to 'Identifiable'ForEach(offering?.availablePackages ?? []) { package in PackageCellView(package: package) { (package) in /// - Set 'isPurchasing' state to `true` isPurchasing = true /// - Purchase a package Purchases.shared.purchase(package: package) { (transaction, info, error, userCancelled) in /// - Set 'isPurchasing' state to `false` isPurchasing = false /// - If the user didn't cancel and there wasn't an error with the purchase, close the paywall if !userCancelled, error == nil { isPresented = false } } }}https://github.com/RevenueCat/purchases-ios/blob/c63984004d09f1b131ffdb2b99cfb1c14eaaa76e/Examples/MagicWeatherSwiftUI/Shared/Sources/Vi
We’ve moved from using Unity IAP and RevenueCat in observer mode (unity 3.7.5) to using RevenueCat for full subscription management (unity 3.12.3). We haven’t faced any issues during testings updates, but after release we’ve noticed that some users have no access to their active subscriptions without pressing Restore button.We are using Aliased (legacy) restore behaviour and not using anonymous user id - user id is set up with app install with appUserID.Let me explain the difference found between users and information tracked for them. Both next cases have active subscriptions.Case 1 - subscription is still available after updateOn Customer profile we see that user has no updated Last Seen App Version and Last Seen SDK Version. But he has active subscription and smooth update experience.Case 2 - after update user has no info about active subscription and has to press restore buttonOn Customer profile we see that user has updated Last Seen App Version and Last Seen SDK Version (unity 3.
I have 2 rooted Android devices for testing, both with Google Play Services installed.When getting the offerings one returned “PurchaseNotAllowedError” and another one is ok.Is this error returned by Google Play or RevenueCat?Any more info could be given?
I'm starting to use the revenuecat SDK to push subscriptions to my apps. I have an app that is currently paid and I would like to convert to the subscription model.In IOS, I have implemented a check to verify the first version that the user was installed, and if this is paid, I can deduce that the user has already paid for the app.My problem comes with the android version, since in the sdk of this platform I cannot find an attribute similar to that of IOS that indicates the version or the date of the first installation of the app by this user. Is there any mechanism to be able to perform this check in android?
Hello,I am using flutter_inapp_purchase to manage in app purchase for my app. Now I migate old subscription that purchase by flutter_inapp_purchase to RC(RevenueCat) via Client Side Migration. But when I run drop release I got some crash:No virtual method getSku()Ljava/lang/String; in class Lcom/android/billingclient/api/Purchase; or its super classes (declaration of 'com.android.billingclient.api.Purchase' appears in /data/app/~~xCl5ZlazDyYqv4VPMsJnNg==/plant.identification.snap-HZYCA9GF94ar8lvpjvIVmQ==/base.apk) at com.dooboolab.flutterinapppurchase.AndroidInappPurchasePlugin$7.onPurchasesUpdated(AndroidInappPurchasePlugin.java:98)I have to use flutter_inapp_purchase to get subscription info then send it to RC. But flutter_inapp_purchase using Google Play Billing Library 3.0 and RC using Google Play Billing Library 4.0 that removed getSku() function.Do you have solution for this?Thank you
The entitlement identifier shows an purchase date of:While the user bought a new subscription at:It seems that the latest purchase date of the active entitlement is also returning the 2021-07-27 date from what I can see in the logs.My question is:Why isn’t the active entitlement date updating to the latest purchase?For full context: This user purchased a non-renewing IAP last year and now purchased my newest auto-renewing IAP.
Hi,The payment sheet is not displaying a free trial information even though everything is set up properly on App Store Connect. The issue that I have is very similar to this https://community.revenuecat.com/sdks-51/reactnative-payment-sheet-not-showing-trial-period-552 although I am using Flutter not React Native. Thanks,
Getting the following error on Play Console. We've detected this app uses an unsupported version of Play billing. Please upgrade to Billing Library version 3 or newer to publish this app. I am using the latest revenuecat library implementation 'com.revenuecat.purchases:purchases:4.3.1' FYI, we are using Dexguard .How to fix the error ?
Hi we rejected many times for this reason.I installed last version 3.12.8 Guideline 1.3 - Safety - Kids CategoryWe noticed that your Kids Category app includes analytics, advertising and collects, transmits, or has the ability to share personal information or device information with third parties. Specifically:- Your app includes third-party analytics or third-party advertising with the ability to collect, transmit or share identifiable information, including, for example, IDFA. We found that your app references the ASIdentifierManager API, which provides access to a user's IDFA, in the following location(s) in your binary:• /System/Library/Frameworks/AdSupport.framework/AdSupport• VodlyIt would be appropriate to remove all instances of “ASIdentifierManager” from your app, even if they are not utilized in your app's functionality.Next StepsTo resolve this issue, please remove this functionality or revise your app so that no personally identifiable information or device information is s
I get this warning in the console: “The value for FacebookAdvertiserIDCollectionEnabled is currently set to FALSE so you're sending app events without collecting Advertiser ID. This can affect the quality of your advertising and analytics results.” I believe I’m following the instructions for setting this stuff. On app load: await Purchases.setDebugLogsEnabled(true); await Purchases.setup(JumpspeakConfig.revenueCatApiKey); await Purchases.collectDeviceIdentifiers(); final facebookAppEvents = FacebookAppEvents(); await facebookAppEvents.setAutoLogAppEventsEnabled(false); final facebookAnonymousId = await facebookAppEvents.getAnonymousId(); if (facebookAnonymousId == null) { logError('Could not get anonymous Facebook ID'); } else { await Purchases.setFBAnonymousID(facebookAnonymousId); }FacebookAppEvents is a 3rd party library but I confirmed it gives me an anonymous ID (that error log does not get reached) I also confirmed the values we should see for the customer if thi
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.