Get help with your SDK implementation.
Recently active
My IAP Promotions were being held because my binary “did not include the SKPaymentTransactionObserver method” I haven’t seen anything like this before. I had presumed that this would be included in the Purchases package. Am I missing something, or did Apple? Thanks
Trying to add the RevenueCat SDK as a Swift Package on Xcode 12.3 for iOS on Catalina after specifying dependency rule as suggested the error “because purchases-ios >= 4.0.0-beta.9 contains incompatible tools version and root depends on purchases-ios 4.0.0..<5.0.0, version solving failed” appears . How can work around this?
I am hoping we can get some guidance on how to test billing errors in the sandbox. Specifically, we are never seeing billingIssueDetectedAt populated.As an example, we subscribe using a license tester on Android in our React Native app. The subscription goes through successfully, and afterwards, we set our payment source to “always decline” through Google Play. Because it’s a monthly subscription, we wait 5 min, and when the renewal charge is made, we get an email from Google saying the subscription was suspended because of a billing issue. However, there is no change on the customerInfo object when I call getPurchaserInfo().Fast forward another 5 min, and the subscription is cancelled. This time, if I call getPurchaserInfo(), I immediately see the purchase is no longer active. However, there is still no value for billingIssueDetectedAt, and the expirationDate has not changed either.I guess my questions are:should the above have generated a billingIssueDetected at value? I know the doc
We are going to publish our app with in-app purchases in Russia. Now we have a problem — Google Play is pausing it’s billing system for users in Russia. Can we publish our app with you SDK and solve the problem? Can users from Russia buy subscriptions this way?
Some of our iOS users have reported that nothing happens when when restoring purchases on iOS and I’ve been able to reproduce. From debugging my own account, I have an active subscription in App Store but when I restore purchase, I noticed my `PurchaserInfo` does not include active subscriptions when restoring. In case it’s relevant, the `appUserId` we pass in during initialization with `Purchases.setup()` can be a different id across installs (e.g., a fresh install creates a new user id).Any known issues or advice on how to debug this further? VersionsTested with the following and both had empty active subscription:Flutter v2.10.3 and purchases_flutter v3.8.0 Flutter v3.0.1 and purchases_flutter v3.10.0 Code: final PurchaserInfo restoredInfo = await Purchases.restoreTransactions(); The data in PurchaserInfo: My phone’s subscription on App Store:
Hi all, I want to find all purchases made by the user on IAP, in my app’s code. Actually due to some UX issues, some customers have bought both the lifetime and monthly subscription of the app. Now I want to identify such users while they run the app, and instruct them on how to claim refund for one of the purchase. What is the best way to do this, since I don’t have any email id identifier for the users, I was thinking of adding code to identify such users in the app itself, any pointers on what functions can I call from RevenueCat’s SDK for me to solve this issue. I am looking for iOS based solution 14.0+.
Have user A logged in Purchase a subscription Log out, log in as user B Purchase a consumable in-app purchaseExpected: no subscription for user B, subscription for user AActual: subscription for B, no subscription for AThis is extremely wrong, since user B is expecting to get a consumable in-app purchase effect, while they get an effect as if they bought a subscription. Subscriptions should only be transferred when explicitly asked by a user.
I am developing an app that gives access to a certain database for information lookup.The idea is to charge $2.99 for the app in the app store which gives access to the current version of the database for life.Then, whenever a new version of the database is available (happens annually), offer a non-consumable in-app purchase to get lifetime access to the new version.My problemIf a user buys the app in 2022 and uninstalls it when the in-app offer to upgrade to 2023 comes up (not purchasing the upgrade) and then reinstalls it, How can I figure out what version of the database they are entitled to? How can I determine when they first bought the app?
I have an existing Objective-C project that is already using CocoaPods.After adding the pod 'Purchases' to my podfile my project no longer runs.It quits with the error messages:__abort_with_payloaddyld[15384]: Library not loaded: @rpath/libswiftCore.dyliblibswiftCore.dylib' (no such file)I am on Xcode 13.0I checked the solutions on this page https://stackoverflow.com/questions/26024100/dyld-library-not-loaded-rpath-libswiftcore-dylib, and based on that, have confirmed the following:For both my project and target:Build Settings > Build Options > Always Embed Swift Standard Libraries is set to YesFor my target:Build Settings > Linking > Runpath Search Paths is set to @executable_path/FrameworksI also Cleaned the project and deleted all Derived Data.What else do I need to do to resolve this error?
When testing purchases on Sandbox with StoreKit config specifying a 30 second subscription interval I quite often get an entitlement that has equal latestPurchaseDate and expirationDate therefore rendering it invalid immediately and deadlocking my purchase flow. Logica::Store::update_state: entitlements: ["base_content_access": <EntitlementInfo: "identifier=base_content_access,isActive=false,willRenew=true,periodType=PeriodType(rawValue: 1),latestPurchaseDate=Optional(2022-05-21 13:58:39 +0000),originalPurchaseDate=Optional(2022-05-21 13:58:39 +0000),expirationDate=Optional(2022-05-21 13:58:39 +0000),store=Store(rawValue: 0),productIdentifier=fivesysdev.logica.renewable_subscription,isSandbox=true,unsubscribeDetectedAt=nil,billingIssueDetectedAt=nil,ownershipType=PurchaseOwnershipType(rawValue: 0)>]Sometimes happen for 5 minute intervals too, but significantly less often. I was fine with this but Apple rejected my app, most probably due to them testing my app on sandbox with low
Hi,A quick question.I’m using RevenueCat with the sandbox user. I have two same-level subscriptions, one is monthly and the other one is annual. I added them into one entitlement. When I try to purchase each of them separately, everything works as expected. But the issue is, I subscribe to the annual plan, after that I try to subscribe to the monthly plan, and its purchases monthly without any alert, like I have not subscribed to the annual plan. I’m expecting the alert which says, “Do you want to modify your subscription to monthly, and it will begin and you will be charged after x date...”. This alert pops up when I try with the StoreKit, but not popping up with the RevenueCat. Is this normal, will it work when it is in production? My app is v1.0 and has not been accepted yet.My purchase function like;Purchases.shared.purchasePackage(package) { transaction, info, error, userCancelled in …Any idea?Thank you.
Hiya, I’m looking to add trials to my existing in-app subscriptions, but had some questions regarding the webhook events. I noticed that when starting a trial in the sandbox, the INITIAL_PURCHASE event is triggered, which is great. I was wondering:If the user continues with the trial and the trial automatically converts to a paying subscription, is another webhook event sent? We have a trial status against users on our API, so we would be looking to update this status based on the data that comes from the webhook. Would the RENEWAL event be sent here? If the user cancels the trial, am I correct in saying the the CANCELLATION webhook event is triggered?Thanks in advance,Joe
What happens if my app exceeds $10k MTR in a month on the Free plan, and miss to upgrade to the Starter or Pro plan after period . the IAP feature will still work?
My react native app has been in production for over a year. Without submitting a new release, payments are failing on Android. This should mean that the issue is either on your side (RevenueCat) or Google Play. Already lost 40% off my subscribers in a couple of days. I haven’t changed anything, however this suddenly came up in development:“[Error: There was a credentials issue. Check the underlying error for more details.]”Doesn’t say anything more detailed than this. On Android payments go through, however, then there is no active subscriptions to be found when requesting in from the SDK.No issues on iOS. Would be great to sort this out ASAP, loosing subscribers as we speak:/
I noticed that even on a device running iOS15, Purchases.showManageSubscriptions() loads the subscriptions UI via Safari rather than a native action sheet. This seems to be because we have: SystemInfo.appleSubscriptionsURL = URL(string: "https://rev.cat/manage-apple-subscription")This url never passes the isAppleSubscription() test, therefore we always fallback to the openURL() method.Is this by design?
We are migrating from sdk v3.x for android (java).The isBillingSupported method is not marked as deprecated in the new sdk, it is just gone. What is the replacement for this functionality? from v3.1Purchases.isBillingSupported(this, new com.revenuecat.purchases.interfaces.Callback<Boolean>() { @Override public void onReceived(Boolean isSupported) { if (isSupported) { // Billing Services are available queryStoreInventory(); } else { openPurchasingOffDialog(); } } });
I just noticed the new docs have:If you are not using RevenueCat's anonymous IDs as described above, and are instead providing your own app user ID on configuration, do not call configure in application:didFinishLaunchingWithOptions:. Instead, call the configure method in your root view controller's initialization method.This is a fairly major change, since my app has a complex init sequence. It would be helpful to know more about what's going on here, so that I can correctly adjust my init sequence.I have read about the unavailability of the KeyChain during prewarming, but what exactly is requiring this change?
We’ve recently started developing a React Native app and are now at the stage of looking to configure IAP and integrate RevenueCat. However we’re running into the following issue when building the app with react-native-purchases to our Google Play testing track via fastlane:Google Api Error: Invalid request - Release uses an old version of Google Play Billing.I’m aware this is likely to be a result of the recent update to version 5 which isn’t currently supported with RevenueCat, but is there a workaround for this in the meantime? Or is it only possible if the app already had subscriptions under version 4 of the billing library?
How to check the status of a subscription suspended to block access to the application content because even when a subscription is suspended the right is still active. With the free plan.
I have a question about the StoreKit 2 isEligibleForIntroOffer behavior when testing with a sandbox user. On my iPhone I’m logged in with a sandbox user (via Settings > App Store > Sandbox Account) where I’ve cleared the purchase history via App Store Connect > Users.When I run my code on the device, the “StoreKit 1” way of determining if a user is eligible for a free trial for a renewable subscription (see “Determine Eligibility” section in Implementing Introductory Offers in Your App) works as expected. However, when I use the product.subscription.isEligibleForIntroOffer or Product.SubscriptionInfo.isEligibleForIntroOffer(for:) function with StoreKit 2, they both return false, even though this should be true since the receipt has been cleared. I was wondering if anyone has come across this too when testing with a Sandbox User...where isEligibleForIntroOffer doesn’t return the correct value.Code-wise, I’m using very similar logic found in RevenueCat’s project: TrialOrIntroPr
Hello, I have a case that I can’t seem to handle. Currently, if User1 with an alias logs in to the application from a device and buys a subscription he will get it just fine. Next, User1 does a logout and User2 will login on the same device and then something strange happens. The subscription is being transfered from User1 to User2. Is there any way to avoid that and link a subscription to the User ID alias?Also, is there any way to get a purchaseinfo by alias? Thank you
Latest Purchase Date of user a/c to the purchaser info library is: 2022-05-16I purchased the product today (17th) but still the last purchase is on 16th Why does the RevenueCat not updating the value when I am fetching latest purchase in code where as on the dashboard it shows all the information ?
Can I do in app purchase on WebGL?
I created a subscriber using the api https://api.revenuecat.com/v1/subscribers/app_user_idI can not find this subscriber in customer list, I checked in active,sandbox, non-subscribers and expired sections. But when I search for the user app_user_id, I can find the user. Why is that?
Hey there, I have looked online and in the forums but could not find a way to configure the HTTPClient with customable timeout.Basically from my code overview (iOS SDK - https://github.com/RevenueCat/purchases-ios) the HTTPClient is internal to the SDK and you cannot configure it - am I wrong?We suffered from long timeout today which caused our application to hang.It could be a nice addition to the Purchases singleton API to add additional configuration for different underlying services the default o60 seconds of NSURLSession is obsolete.I also encoutered this PR - https://github.com/RevenueCat/purchases-ios/pull/910 that enabled timeout for SKProductRequest - again allowing to configure it from outside of the SDK could be handy.
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.