Discussion and help from anything related to RevenueCat.
Recently active
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 everybody!we are new if revenueCat community 👋We don't understand the correct use case of CANCELLATION event.We handle the EXPIRATION event with user's subscription deletion for all cancellation_reason values.We are testing with sandbox environment and Google Play test subscription with auto-renew every 5 min and unsubscribe automatically at the 3th period.We’ve seen that the are this history for every subscription we’ve created:INITIAL_PURCHASE RENEWAL RENEWAL RENEWAL CANCELLATION ("cancel_reason": "BILLING_ERROR") EXPIRATION ("expiration_reason": "BILLING_ERROR")So, what should we do with the CANCELLATION event?Thank in advance
Coming from https://stackoverflow.com/questions/73762555/storekit-2-try-await-product-products-does-not-finish-and-does-not-throw-can I am unable to fetch any products with RevenueCat on watchOS 9 if I set the useStoreKit2IfAvailable flag in TestFlight. The call isPurchases.shared.getProducts …. { result in // this never gets called}I have also tried this with the native StoreKit 2 call (described in the StackOverflow thread) and I see a very similar behavior; essentially it doesn’t continue past the try await Product.productscall. This is all in TestFlight, I’m now afraid to push to production because I’m uncertain whether it will work in a public release. Now 2 things:is there any way for me to further debug this? RC, can you tell whether this issue will be lifted in production release? In both cases I think you really need to put a depreciation warning there for watchOS if you can reproduce the issue
Currently, one of my apps calls `getCustomerInfo` on app launch and after any purchase has been successfully processed. Is this sufficient or should it be called more frequently? I do not understand how it works, but if a user is not connected to the internet, does it assume that the entitlement (if one existed) is still valid? If that is the case, should we be worried that some users may simply disconnect from the internet whenever they launch our app? Furthermore, in the event that an error is thrown, how should we handle it in terms of whether or not an entitlement should be granted? Should we just inform the user to try again later? Thanks in advance!
Now this is the same that’s happened with (also watchOS) except that their problem has been solved. The documentation says that TestFlight installations won’t have a receipt until a purchase is made so you shouldn’t hit “Restore purchases” before making a purchase. However, we have seen this message now after trying to purchase an auto-renewing subscription. There isn’t much to read into the code, we basically only call Purchases.shared.purchase(product: subscriptionProduct) { storeTransaction, customerInfo, error, userCancelled in and `error.localizedDescription` says "The receipt is missing". Trying to purchase again loads for 3 seconds, then says “The receipt is missing” again. How likely is this an issue on our side, vs on RevenueCat’s side, vs on Apple’s (watchOS 9, Sandbox, TestFlight) side? I’d trust RC blindly if it wasn’t for the recent watchOS issue in their code discussed above because other than that you have a fairly well reputation among developers.
Hi all, I am planning to transfer my apps to the new developer accounts(Google&Apple)I will use the same RevenueCat account. I want to know which issues I have to handle after the transfer. 1-) Can my subscribers use the premium features that I provide with their purchases?2-) To be able to sell subscriptions again, do I need to create the credentials from the new developer accounts?3-) Is there anything else which I need to handle before, during or after the transfer? Thanks.
I’m trying to have 2 versions of my app on my iOS test device: one for development and one that is the production (released) version. To do that, I use a different product bundle ID when in development (source). But changing the bundle ID seems to prevent RevenueCat from syncing and getting products. Is there any way to connect to the same app with a different bundle ID? Thanks!
So I configured Webhooks and used the recommended approach of calling the RevenueCat API to handle logic.This works for all events tested so far. Except for the Cancellation event (I canceled Platinum):As shown in the image. The function is called at 11:38:35 with the cancellation event and after calling the RevenueCat API to check the expiration date, the platinum membership is not yet expired and thus my logic to remove the enitlement is not triggering as I am checking if the expiration date is in the past.Did I oversee something here?
Hitoday we are experiencing problems with our billing on sandbox at least.Not sure about live payment but only renewals came through there as well. whenever we try a test subscription we get something like “This item is currently being modified. Please try again later.” We did not change config of our products tn the last days thoughCheersKarl
I need to learn this. Because my users do not register with google :/ I have An API and my users have an ID. Can I use this ID for Identifying Customers?
Platform: AndroidStore: Google PlayProduct Type: Monthly SubscriptionRevenueCat Purchases Version: com.revenuecat.purchases:purchases:5.1.0 A customer of our app from Moldova (Republic of Moldova) reported today that the price displayed in the app (9.49 USD) was not the price that he ended up paying (11.39 USD). Looking at the email receipt he sent us from Google, the extra 1.90 USD is labeled as Tax. I went in the Google Play Console where we can set our price for each country, and the price there is 9.49 USD → no sign of any VAT. I did a Google Search and the default VAT for Moldova is 20%, which matches the extra Tax from the transaction.I then checked RevenueCat, including the webhook for that specific transaction, and there is no trace of tax. The price is 9.49 and also, in the webhook, the `tax_percentage` field is 0. Then I found out that this is the case for all transactions made from that country, RevenueCat doesn’t know about the tax there. The biggest problem now is that fo
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
I am using Webhooks to communicate with my MongoDB functions which is based on nodeJS.Now I have following problem:I do not know how to parse the data correctly. The payload arrives as object binary and I am unsure how to get the data out of it. Best regardsThomas
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.
Is there any way to use web hooks to tell when a subscription has expired and extend it to firebase?
I have different items using a particular product(non consumable), So users can purchase items under that product(price). But after the first purchase on an item. iand I try to initate a purchae on another item, I get You’ve already purchased this. Would you like to get it again for free?
Assuming that we have 2 (or more) apps, and each app has each own Firebase project, we have:Play Console Google Cloud Project (GCP) (auto-created for the Play Store Developer Account); 2 (or more) GCP (auto-created for each Firebase project)According to the guide (https://www.revenuecat.com/docs/creating-play-service-credentials), we have to create service account credentials in Play Console GCP.And according to the another guide (https://www.revenuecat.com/docs/google-server-notifications), Pub/Sub Topic ID is autogenerated.So, with this prerequisites, questions are:Is it allowed to use Service Account credentials for each app from the auto-created Firebase GCP? What are the drawbacks? Is it allowed to use a single Service Account credentials from the Play Console GCP? What are the drawbacks? Is it OK that in RevCat we are using the same Topic ID for all 2 (or more) apps? (i.e. is it safe to use a single auto-generated Pub/Sub Topic for multiple apps?) What are the key benefits of ena
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: ℹ
Suppose I have Starter plan and My MTR more than $10k. For Purchase status I set key in customer entitlement using SDK. Now I downgrade my plan to free. In this case, My App user will get the InApp status in application using RevanueCat SDK?
I use the latest version of purchase_flutter (4.2.1) in my Flutter app.I get an error in the Google Play Console that I have to use Billing Library version 4 or newer. I run the command gradlew “app:dependencies” to check the used version and found this in the result:+---com.android.billingclient:billig:4.1.0 The warning has a link to this site https://developer.android.com/google/play/billing/deprecation-faq with this relevant section:Make sure your AndroidManifest.xml contains an entry with name com.google.android.play.billingclient.version. If the entry isn't present, check your manifest merge settings to see if the manifest attribute is being dropped during manifest merging. Do I have to set this entry in the AndroidManifest? As I understood, this has to be set by the package purchases_flutter. But why do I get this warning and how I can solve it?
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.