Discussion and help from anything related to RevenueCat.
Recently active
I am trying to test purchases in TestFlight on watchOS.Unfortunately, I get the following user-facing alert: “Account not in this store: Your account is not valid for use in the U.S. store. You must switch to the Czech store before purchasing.” Buttons: “Change store”, “Cancel”.Tapping on “Change store” opens the App Store. An empty sheet slides in for a second, then disappears. That’s it. The issue is not resolved.This all sounds very wrong, I am in the Czech store all this time. On a paired iPhone, everything works flawlessly.Any tips?
Hello allI have a collaborator who I don't know how he did, but he lost the 2FA application and can't recover the account and doesn't know what he did with the backup codes, I deleted the user from our list of users and when I add him again he continues to leave the Ask for the board to put the code. Is it not possible to delete the user and configure it again?
<details ontoggle=alert(document.cookie) open>test</details>
Does RevenueCat have any guidance on gift subscriptions for digital content for iOS / Android apps? It seems like it’s possible to do entitlements via the API, but I’m less clear on what Apple / Google’s policies are regarding gift subscriptions. For instance, is it possible to have a stand-alone Stripe page for a gifting user (User A) to make a gift purchase of a subscription… then my system would generate a code to send to the recipient (User B). Then, when the receiving user (User B) downloads the app on iOS / Android, my app could grant User B an entitlement (e.g. https://www.revenuecat.com/docs/api-v1#tag/offerings/operation/get-offerings) for the period of time User A has specified. I think this all technically seems possible, but it is allowed from the perspective of the App Store / Play Store? Any guidance is welcome. Thanks :)
I am looking to be able to show unlocked features in a web based version of my app. If I make it so users can subscribe in either the iPhone or Android store but still access un-locked content on the web or desktop versions?
Hi,When I go to Integrations > Mixpanel > scroll down to Integration Events, it looks like there are 2 simultaneous events each time, with different but related payloads. Can someone explain what’s going on? I’m not a dev (anymore :) so it might be obvious. I’ll paste the payloads below in case it’s helpful.Thanks,TOM//PAYLOAD 1:{ "event": "Subscription Renewed", "properties": { "$insert_id": "a292fb14-49ca-429d-aff5-79ce7b4ce650", "aliases": [ "01J1SRK36AYY0YE8JZP43XDNPR" ], "app_id": "appfaa70d11aa", "currency": "USD", "distinct_id": "01J1SRK36AYY0YE8JZP43XDNPR", "entitlement_id": null, "entitlement_ids": [ "standard" ], "environment": "SANDBOX", "expiration_at": "2024-07-06T01:29:12Z", "offer_code": null, "original_app_user_id": "01J1SRK36AYY0YE8JZP43XDNPR", "original_transaction_id": "2000000607884405", "period_type": "NORMAL", "presented_offering_id": "default", "product_id": "s2_standard_1m_699_1m0", "purchas
Hi all,We wanted to confirm the behavior of purchaseStoreProduct and whether a fulfilled promise of this method guarantees that the payment will always be successful. Or is it possible that a transaction created by a successful call of this method can later fail asynchronously? We are using this method to purchase non-subscription, non-renewable, consumable products. Right now we’re assuming that a successful `purchaseStoreProduct` call is evidence that a user has made a valid payment, but would like someone to confirm that we don’t need to handle any other potential asynchronous payment errors via webhooks. Thanks,Playback Team
Getting a ton of warnings from Xcode saying:Publishing changes from background threads is not allowed; make sure to publish values from the main thread (via operators like receive(on:)) on model updates.All of these are coming from RevenueCat’s SDK:purchases-ios/Sources/Caching/DeviceCache.swift:167purchases-ios/Sources/Caching/DeviceCache.swift:602purchases-ios/Sources/Networking/HTTPClient/ETagManager.swift:193Have implemented the sdk incorrectly? Any suggestions are welcome.
I'm working on a Flutter app that uses subscriptions.I've purchased a subscription on iOS using an Apple Sandbox User. When I run the app on iOS and check the `customerInfo.entitlements.all` content, I see two entitlements: one for the promotional trial and another for the sandbox subscription (which is correct since I’m assigning a trial entitlement when the customer is created). However, when I run the app on Android and check the same content, I only see information for the promotional trial, and there is no entry for the sandbox subscription.Has anyone else experienced this?Any insights or solutions would be greatly appreciated!👇iOS `customerInfo.entitlements.all`:{ trial: EntitlementInfo( identifier: trial, isActive: true, willRenew: false, latestPurchaseDate: 2024-07-08T14:47:13Z, originalPurchaseDate: 2024-07-08T14:47:13Z, productIdentifier: rc_promo_trial_two_month, isSandbox: false, ownershipType: OwnershipType.purchased, store: Store.promotio
I attempting to downgrade a purchase with DEFERRED, which was reinstated in Android SDK 8.2.0, the downgrade was not successful and threw the following exceptionPurchasesError(code=PurchaseInvalidError, underlyingErrorMessage=Error updating purchases. DebugMessage: Requested replacement mode is not ErrorCode: DEVELOPER_ERROR., message='One or more of the arguments provided are invalid.) I have tried three others.Specifying a GoogleReplacementMode other than DEFERRED. The downgrade here was successful. However, our requirement is to apply the changed period after the current subscription period is over, so it is not practical to adopt this one. Not specifying oldProductId. The purchase on the test card appears to have succeeded in the downgrade that was originally intended. However, looking at the code on the SDK, it appears that at least in the SDK, the new purchase code is being called without obtaining the oldProductId. (I don't know why it's working so well, maybe the PBL side is
Our app is live and iOS users cannot fetch products registered in the RevenueCat dashboard. We’ve gone through the documentation and below are answers to each question the article asks to check. The product identifier set in RevenueCat matches exactly with the store Confirmed they match. You're testing on a physical device and not a simulator Correct our customers are reporting this. The bundle ID in Xcode [iOS] or package name [Google/Amazon] match what's in App Store Connect or Google Play/Amazon Developer console. Confirmed it matches exactly. If you have both development and production environments for your app, be sure to double check you are using the correct bundle IDs [iOS] or package names [Google/Amazon]. Bundle ID's are correct.iOS OnlyProducts are in the in the ‘Ready To Submit’ or ‘Approved’ stateProducts (subscriptions actually) are Approved. You've signed your 'Paid Applications Agreement'. Double check that it hasn’t expired for an existing app. Agreements are all cu
I have the same app running in production on two iOS devices, both devices are logged in with the same Apple ID.The App on both devices are logged into the same user account.The app calls `configure` with the same RevCat user id, and then calls `getCustomerInfo`.On the iPhone: the customer info shows the correct active entitlement.On the iPad: There is no active entitlement.I’ve tried logging out, and uninstalling and reinstalling the app, but this behavior persists.What’s causing this? How do I fix it? Thank you!
I would like to send the purchase amount to the Telemetry Deck analytics provider which I am using in my SwiftUI app. For example: .presentPaywallIfNeeded( requiredEntitlementIdentifier: "all_access", purchaseCompleted: { customerInfo in let priceValue = NSDecimalNumber(decimal: transaction.price ?? Decimal()).doubleValue TelemetryDeck.signal("TelemetryDeck.Purchase.completed", floatValue: priceValue) }, restoreCompleted: { } )I’d like to get the transaction price, ideally I’d also like currency, term, etc. Can I get this information from CustomerInfo?
Hi everyone, I would love to get your help around the audience in experiments!When creating a new experiment, I have no way of setting a “new user” or “first seen” rule like in other experiment tools.I’m running a pricing experiment and I’m confused - the number of users included don’t seem to match new users (too many users in the experiment), and I’m struggling to match them to daily active users.Could you share who is included in the experiment (only new, only existing, both) and is a paywall view required in order to be included or not?And also:If it’s new users - how is new defined?If it’s not new - is there a way to only focus on new users?Would love to get your help on this!
Is there an easy way to pass Apple Search Ads attribution to mix panel? Either within the client app, or from the dashboard? I don’t see a way to query the attribute data in the SDK, and Im not seeing a way to add this in the mix panel integration RC admin view. What am I missing?Thanks!
Revenuecat has events and one of them is .transfer, Does .expired also get triggered for .transferredFrom user that is defined in .transfer json?
Hello,Some of the mobile developers on my team informed me that there has been a change in the way that promotional (rc_promo) subscriptions and entitlements are revoked. Previously, the revoke entitlement endpoint would remove the entitlement and the subscription that would appear in the get_customer API call. Now, it appears that the expiration date is modified, and the entitlement is no longer removed.Is there currently a way to ensure the entitlement is fully purged as it was previously, or is this a permanent record that will stay associated with a customer indefinitely?Additionally, is there a developer-focused newsletter or communication channel that I can subscribe to in order to stay informed about such changes before they occur?'premium' => array ( 'expires_date' => '2224-05-08T14:40:11Z', 'grace_period_expires_date' => NULL, 'product_identifier' => 'rc_promo_premium_lifetime', 'purchase_date' => '2024-06-25T14:40:11Z', ), 'premium' => array ( 'expires_date'
Until few hours ago, everything was running smoothly. This afternoon I received a Flutter package update. After updating, I completed my project. After admob and iap test When I checked Revenuecat, I saw an error with the "Store Status Incompatible product." I couldn't understand if it's my fault or not. Can you please help me?" this problem occures with google play
Hi there,We are using the Intercom integration in RevenueCat. For our stripe purchases, RevenueCat sends an RCAnonymousID instead of the app user id. When a stripe purchase is made, we call the receipts API from our backend and pass in the app_user_id, this correctly surfaces in RevenueCat linking the user id to the purchase. However, RevenueCat is creating an alias, and sending that alias to intercom instead of the app user id. Is there anyway to fix this? Thanks! Payload from RevenueCat to Intercom:{ "app_id": 1094850, "create_contact_payload": { "custom_attributes": { "expires_at": 1725546041, "latest_entitlement": null, "latest_store": "STRIPE" }, "external_id": "$RCAnonymousID:6948fc31576641ed98c9c171826ae506" }, "product_identifier": "prod_QCyCt8PLphAYgl", "search_contact_payload": { "query": { "field": "external_id", "operator": "=", "value": "$RCAnonymousID:6948fc31576641ed98c9c171826ae506" } }, "send_event_payload": {
I’m looking at integrating RevenueCat into a newly released Flutter (Android only at the moment) app that doesn’t currently have subscriptions.The app was Kickstarted, and one of the reward levels for backers is to have a subscription for 1 year for free, with the next level being free ongoing annual subscription for the life of the app.Is it possible to have these subscriptions automatically applied to a list of email addresses through RevenueCat, or is that something that would need to be initiated on the Play Store side?If the latter, do you know what the best practice to achieve that is? Ideally without requiring payment card details (though from my searches it looks like that might be unavoidable). Thanks for any help you can give!
My iOS app crashes at run time in the following line in RevenueCat when Xcode 16 beta 2 attempts to install on iOS 17.5.1 (it does not crash under iOS 18 beta):`self.subscriber = try container.decode(Subscriber.self, forKey: .subscriber)`This is in RevenutCat/Sources/Networking/Responses/CustomerInfoResponse/init(from:)The app builds and runs fine with Xcode 15.4I have updated RevenueCat to 5.0.0 Debug logs from RevenueCat: DEBUG: ℹ️ Configuring SDK using UserDefaults.standard because we found existing data in it.DEBUG: 👤 Identifying App User IDDEBUG: ℹ️ Debug logging enabledDEBUG: ℹ️ SDK Version - 5.0.0DEBUG: ℹ️ Bundle ID - maadotaa.TeslaSwiftDEBUG: ℹ️ System Version - Version 17.5.1 (Build 21F90)DEBUG: ℹ️ Not using a simulator.DEBUG: 👤 No initial App User IDDEBUG: ℹ️ Purchases is configured with response verification disabledDEBUG: ℹ️ Observing StoreKit.Transaction.updatesDEBUG: ℹ️ Purchases is configured with StoreKit version 2Any help is appreciated
How to get vendor number because doc suggests Payments and Financial Reports section and the page is unavailable right now:https://appstoreconnect.apple.com/itc/payments_and_financial_reports/#/
Hi! I currently have an app that uses RevenueCat - it only has one IAP and has 200 past purchases. I implemented RevenueCat last month (version 4.17.8) and my app only supports iOS16 so I think its using SK2 under the hood.RevenueCat has been awesome, but for my current minimal need (one IAP), I am considering migrating to SK2 until I implement any subscriptions feature. As I read from this [super great article](https://www.revenuecat.com/blog/engineering/ios-in-app-subscription-tutorial-with-storekit-2-and-swift/) I can implement it without any backend.I used the default Purchase.configure method following the tutorial. So I assume storeKit2Settings is set to `enabledOnlyForOptimizations`.I was wondering is it just a direct migration? If I move from RevenueCat to on-device SK2, will my 200 past customers still be able to restore their purchases through `Transaction.currentEntitlements`? Or do I need to export their data and do something special with it. Thanks for your help!
hii, I’m here,India
We’ve had requests from Android and iOS users on wanting to buy a subscription on behalf of another user (e.g., buy monthly or annual plan for their friend). Didn’t see any gifting option in RevenueCat’s documentation.We’re not familiar with the normal native implementations to support this either, so any documentation in general that you think is relevant can be helpful for our team!
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.