Get help with your SDK implementation.
Recently active
Is it 30 days?
Hi guys.I am encountering a crash in my Expo React Native application when attempting to make a purchase using the RevenueCat Purchases module. The error occurs when calling the purchasePackage method. The error message is: Attempt to invoke interface method 'java.util.HashMap com.facebook.react.bridge.ReadableMap.toHashMap()' on a null object reference. This is how i built:1, eas build --profile development --platform android2, Copied the generated .apk onto my phone3, npx expo start --dev-clientThe package itself working, because i am getting back products, and i can display them on the screen. But when i click on a package, and want to make a purchase, i am getting this error, and the app collapse. import Purchases, { PurchasesOffering } from 'react-native-purchases';const ANDROID_API_KEY = 'my_key';const TokenScreen = () => { const { t } = useTranslation(); const { balance } = useBalance(); const [products, setProducts] = useState([]); useEffect(() => { Purchases.setL
We are using RevenueCat Paywalls (Android, ios) for our subscriptions.Upon a successful purchase, a "PaywallResult" response is returned, from which we can retrieve the "CustomerInfo".Since a customer can theoretically have multiple entitlements, is there an easy way to identify the currently purchased subscription?Background: We need to1. send this subscription_id to our backend after the purchase2. on backend: fetch the subscription details using the RevenueCat API v2 beta,3. on Backend: save the subscription in our database, and provide the user with access to the purchased product.4. Send response back to app
I'm new to RevenueCat and am currently using RevenueCat with Flutter.As the title says, the first time I make purchase in iOS, it asks for my email address and password.In other apps, they don’t ask for them and you can pay with one tap.Is it possible to implement the same functionality in RevenueCat?Regards
Hi, Why is free trial offer is not showing up? Previously I created a base plan without any offer. Now I created a free trial offer in the base plan but it is now showing up in my flutter app. I waited a day in order to propagate changes but still nothing showing up.
Google play won't let me download my app bundle. He writes that the unsupported version of billing We found that at least one App Bundle from this release uses the following versions of the Play Payments library:AIDL Unity 2022.3.15RevenueCat version: 6.9.7
Hello, I searched through the docs and can’t find if there’s a setting or prop to set a paywall to dark mode or light mode? Like how the web editor allows? (Or to overwrite the phone settings?)
Currently I’m using RC paywall, and my app was rejected, apparently because I have one offer that is “lifetime” is not a subscription, so I need to state that is one time purchase without free trial or something like that,so I haveSubscription 6 MonthsSubscription 1 yearLifetimebut for “introductory price I’m using`{{ price }} billed every {{ sub_duration }} after the {{ sub_offer_duration }} free trial`but I will see something like the photo attached Is anyway to setup this to have different approach for this case?
Swiftui / Xcode 15.4 / iOS 17.5.1When using the .presentPaywallIfNeeded modifier, I and not seeing any of the restore completion handlers called when that function is tapped. This includes restoreStarted, restoreCompleted or restoreFailed. The other completion handlers to include those around purchases and the onDismiss do fire correctly.In my case, I don’t have a subscription to restore. When restore is invoked “DEBUG: Restored purchases successfully with no subscriptions” is returned to the console. However, there is no alert shown to the user. Whether it should be from RevCat or not is another question. However, looking to use the completion handlers to provide our own alert is not possible due to the completion handlers not functioning around restore.The modifier is below., .presentPaywallIfNeeded( requiredEntitlementIdentifier: K.entitlementID, offering: nil, fonts: DefaultPaywallFontProvider(),
I’m using Unity3D 2021.3.27f1 and Revenue Cat Unity SDK 4.16.0 (also tried with 5.0.0-alpha.1). I have simple empty scene with single object called Revenue Cat with two components. 1st is the Purchases component and second is the implementation of Purchases.UpdatedCustomerInfoListener that I called RevenueCatListener. It’s just copy paste from SDK installation instructions on official docs.The problem is that on Start i’m getting two null references: 1st one when code reachs SetLogLevel function invoke and second when I try to fetch products. I debug it and found that _wrapper that created in Purchases component is null during thins invocations. And this is very logical, because bwrapper created at Start and SetLogLevel \ FetchProducts (Offers) in docs example are at Start. So because Unity Start invocation order isn't guaranteed by default, we have wrong invocation order and null references. My question is how it’s possible that there is SUCH big problem in default examples of SDK? M
I’m using the `await Purchases.shared.checkTrialOrIntroDiscountEligibility(product:)` method to check if a user is eligible for the intro offer of a product. I noticed that while the result of this method seems to be cached between calls, the cached values do not persist across app launches. This is problematic for us because we need to check intro discount eligibility on app launch, and this significantly slows down or app launch times. Since this value should rarely change, is there a way to tell the SDK to do more aggressive caching?
When a user has bought my product from the iOS app, when I try to restore the purchase on the companion Apple Watch app, it does not seem to get it right. I am facing the same issue as this other topic. If using a StoreKit file, there is no error but the entitlement obtained in the iOS app is not retrieved. When I am not using a StoreKit file, the Watch keeps asking to login into my Apple ID (which I'm already logged in) How is this flow supposed to work? Thanks in advance 😻
Opening file failedOpening file C:/ProjectName/Library/PackageCache/com.revenuecat. purchases- unity@5.3.0/Scripts/VerificationResult.cs.meta Cant find .meta file. What i need to do? I update revenuecat in my project
By reading the docs of Displaying Paywalls, it seems like Paywall Dialog is only available when using compose. Is there any non compose way of displaying it?Thanks.
When running my app, I show a paywall as activation for the app (similar to Netflix). Right when the app launches, on Thread 1, the app gives an EXC_BAD_ACCESS and the app terminates.This error happens in the core RevenueCat package, in RevenueCat > Sources > Paywalls > PaywallData.swiftUnder “extension PaywallData” in “public struct Configuration”, the exception is called on line 224 (line 3 in this codeblock):/// If set, the paywall will display a terms of service link.public var termsOfServiceURL: URL? { get { self._termsOfServiceURL } set { self._termsOfServiceURL = newValue }}The full error is: Thread 1: EXC_BAD_ACCESS (code=1, address=0xfffffffffffffff8)This is my console logs:10.27.0 - [GoogleUtilities/AppDelegateSwizzler][I-SWZ001014] App Delegate does not conform to UIApplicationDelegate protocol.DEBUG: ℹ️ Configuring SDK using RevenueCat's UserDefaults suite.DEBUG: 👤 Identifying App User IDDEBUG: ℹ️ Debug logging enabledDEBUG: ℹ️ SDK Version - 4.43.0DEBUG: ℹ️
A succeed purchase is complete, but when I re-launch the app again, the paywall page is displayed again. How to avoid it, meaning to check if a user already purchased before then if yes not pop up the paywall.``` .sheet(isPresented: $showPaywall) { MyPaywallView() }``` ```import SwiftUIimport RevenueCatimport RevenueCatUI struct MyPaywallView: View { var body: some View { PaywallView() }} #Preview { MyPaywallView()}```
Hello,i've found an issue in revenuecat API that i want report in order to have the possibility of get a bug bounty.i've search your company on HackerOne but didn't found it. how can i report that?thanks.
I am facing problems in the latest version of iOS.Xcode version: Version 14.2 (14C18)POD Target: 11.0 [!] CocoaPods could not find compatible versions for pod "PurchasesHybridCommon": In Podfile: purchases_flutter (from `.symlinks/plugins/purchases_flutter/ios`) was resolved to 4.10.0, which depends on PurchasesHybridCommon (= 4.13.1)None of your spec sources contain a spec satisfying the dependency: `PurchasesHybridCommon (= 4.13.1)`.You have either: * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`. * mistyped the name or version. * not added the source repo that hosts the Podspec to your Podfile. flutter doctorDoctor summary (to see all details, run flutter doctor -v):[✓] Flutter (Channel stable, 3.7.0, on macOS 13.1 22C65 darwin-arm64, locale tr-TR)[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)[✓] Xcode - develop for iOS and macOS (Xcode 14.2)[✓] Chrome - develop for the web[✓] Andro
I am using the revenuecat paywalls. I feel this is an error that should be fairly well known? But Under certain circumstances I have not been able to confirm which. A free trial maybe available to users, and maybe displayed correctly as such, but then when the user tries to purchase package, the introductory offer is not available?(I have tested this with every device I have, and attempting to ask international friends. but All the time it is just as expected. Free trial → Free Trial. But for the Google Play tester in India mostly India this occurs… I thought it was because of the override India has for prices over 5000 rupees, so I brought the price down to that and confirmed in the play console that the override wasnt occuring but the error still occurs for India tester(s)? I have no idea if its a bug in revenuecat integration or more likely a bug in the google side? (Am I doing something wrong?) Again everywhere but during the review tests does this bug appears…
I have followed all the steps for integration with react native to fetch subscription from google play. However the getOfferings method always returns the following{"current":null,"all":{}}Would appreciate some help. P.S. I have created subscription in Google Play Store and Revenuecat both
My app has two modes, offline and online. The offline mode (which doesn’t require users to log in) offers users a non-consumable, while the online mode (which requires users to log in) offers subscriptions. RevenueCat handles the subscriptions part well. However, for the non-consumable part it’s a bit confusing. I’ve read multiple posts here and saying that RC will always CONSUME the products. However, Google’s Billing Library offers two ways to handle non-subscriptions products, one is to acknowledge, another way is to consume (https://developer.android.com/google/play/billing/integrate#non-consumable-products and https://developer.android.com/google/play/billing/integrate#consumable-products). By calling ` BillingClient.acknowledgePurchase()`, it ensures that it’s treated as non-consumable so that when user tries to purchase this again, Google Play will prompt an error saying “You’ve already owned this item”. By calling `BillingClient.consumeAsync`, it will therefore be treated as
I seem to be getting an incorrect value for my free trial billingPeriod on Android.I thought it would be good to ask here whether I’m understanding this correctly and/or whether to open an issue on GitrHub.I’ve set the trial period to 90 days in the Play Console, but in the returned package I’m getting 86 days. Looking at the iso8601 value, 84 days corresponds to 12 weeks so it looks like it’s ignoring the 6D. I’ve just learned that iso8601-1 doesn’t allow any other values if W(eeks) is specified but iso8601-2 does. It seems like, although P12W6D is correct (84 days + 6 days = 90 days) the ‘value’ field is showing an iso8601-1 interpretation (84 days only) rather than iso8601-2.Could this be a bug?
I have setup the code for magic weather sample app provided by revenue cat, for Flutter.I followed the whole guide, creating the service account, adding license tester etc, providing all the required permissions in google play console to service account email etc.And the app is working fine in debug mode, even if I create a release apk and install it in my physical device, it works fine.But when I uploaded the aab on google play console, and downloaded it into my physical device, my offerings are not loading. The indicator just keeps loading and loading.I have tried internal testing and closed testing. Initially I was trying it in internal testing only, as I didn’t have to provide icon, description, screenshot etc for that, so it was easy, but when it didn’t work, I tried closed testing, but it still didn’t work. I didn’t submit the app for review, completed rest of the steps, and downloaded app using the link.
Hello, I use the revenuecat library to remove ads in my game (non-consumable) and buy coins (consumable). I don't use login, I make purchases anonymously.- Remove ads (cannot be consumed) When I buy, I check whether the purchase has been made by checking customer info -> entitlements. Is this method correct?- When I cancel/return my purchase to remove ads (which cannot be consumed), this situation is reflected very late in customer info -> entitlements. Is it because it is a test?- When I canceled/returned my purchase of removing ads (which is not consumable), I noticed that when I removed all offers (both non-consumable and consumable) with getOfferings, the product to remove ads (which is not consumable) did not arrive. Is it because of this test?- I check the Coin I purchased (consumable) in customer info -> entitlements and confirm my purchase. Is this method correct?- Where can I track this situation when I cancel/return my purchase of Coins (consumables)? Should I take b
I have this message on the Google Play dashboard Action required: Migrate to supported version of Google Play Billing LibraryWe are introducing changes to the lifecycle of Play Billing Library and its associated deprecation timelines. Because you currently use an older version of the library, we wanted you to be aware of new key dates you’ll need to adhere to:By Aug 31, 2024, all new apps and updates to existing apps must use Billing Library version 6 or newer. If you need more time to update your app, you will be able to request an extension until Nov 1, 2024.I am currently using "react-native-purchases": "^6.6.5", If I upgrade to the latest version would this be compatible with Billing Library version 6? Thank you for your assistance
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.