Which RevenueCat SDKs work with RevenueDot?
All nine RevenueCat app SDKs work with RevenueDot today in proxy mode: you keep the SDK you ship, set one proxy URL before configure, and turn off signature checks. RevenueDot also keeps a fork of each SDK repo (ten in total, counting the shared hybrid layer). The forks keep every import name, but none of them is published to a package registry yet (as of 2026-09-30).
Pick a mode#
- Proxy mode works now. It is one setting in your app. The stock SDK checks response signatures against RevenueCat's key, so every RevenueDot response reads as "verification failed" unless you turn the check off. See Trusted Entitlements.
- Fork packages will replace the stock package without code changes once they are published. They trust RevenueDot's signing key and send every request, including analytics and diagnostics, to your server.
- Keep your RevenueCat keys: the importer copies each app's public key into RevenueDot, so builds you already shipped keep the same
appl_orgoog_key. See Connect your app.
Every SDK at a glance#
| SDK | Proxy mode today | How to set the proxy URL | Signature check default (stock SDK) | Planned fork package | Guide |
|---|---|---|---|---|---|
| iOS, macOS, tvOS, watchOS, visionOS | Yes | Purchases.proxyURL = URL(string: "...")! |
Informational: logs a failure, still grants access. Set .disabled |
CocoaPods RevenueDotPurchases, SPM github.com/revenuedot/purchases-ios |
iOS |
| Android | Yes. Diagnostics, paywall events and ad events still go to RevenueCat | Purchases.proxyURL = URL("...") |
Informational. Set DISABLED |
Maven app.revenuedot.purchases:purchases |
Android |
| React Native and Expo | Yes, on iOS, Android, Expo Go and web | await Purchases.setProxyURL("...") |
Disabled | npm @revenuedot/react-native-purchases |
React Native |
| Flutter | Yes on iOS and Android. Not on Flutter web with the stock SDK | await Purchases.setProxyURL('...') |
Disabled | git github.com/revenuedot/purchases-flutter |
Flutter |
| Web (purchases-js) | Yes, with Test Store (test_) keys only |
httpConfig: { proxyURL: "..." } in configure |
No signature checks | npm @revenuedot/purchases-js |
Web |
| Capacitor and Ionic | Yes | await Purchases.setProxyURL({ url: "..." }) |
No default passed, so the native informational default applies. Pass DISABLED |
npm @revenuedot/purchases-capacitor |
Capacitor |
| Kotlin Multiplatform | Yes | Purchases.proxyURL = "..." (a String) |
Disabled | Maven app.revenuedot.purchases:purchases-kmp-core |
Kotlin Multiplatform |
| Unity | Yes | The Proxy URL field on the Purchases component | Informational. Set Disabled in the Inspector | OpenUPM com.revenuedot.purchases-unity |
Unity |
| Cordova | Yes | Purchases.setProxyURL("...") before configureWith |
No option: logs a failure, still grants access | npm @revenuedot/cordova-plugin-purchases |
Cordova |
| purchases-hybrid-common | Not installed by apps | Wrappers pass the proxy URL through it | Wrappers pass the mode through it | pods RevenueDotPurchasesHybridCommon, Maven app.revenuedot.purchases:purchases-hybrid-common |
Hybrid common |
Never use ENFORCED mode with a stock SDK against RevenueDot. Every call would fail, because RevenueDot cannot sign with RevenueCat's key.
What the forks change#
Each fork lives in github.com/revenuedot/<repo> on the branch revenuedot/main-patches, which is the upstream code plus one patch commit. The patches change only these things:
- The default API host becomes
https://api.revenuedot.app, which is RevenueDot Cloud (live since 2026-09-30). Self-hosters still set the proxy URL. - The SDK trusts RevenueDot's response-signing key instead of RevenueCat's.
- Registry names change (table above). Module and package names that your code imports stay the same, so
import RevenueCatandcom.revenuecat.purchases.*still work. - Android: diagnostics, paywall events and ad events follow the proxy URL.
- purchases-js: analytics events follow
httpConfig.proxyURL, and checkout reads "Secure checkout by RevenueDot". - Flutter web:
Purchases.setProxyURLworks. - Each README gets a banner saying the fork is maintained by RevenueDot and not affiliated with RevenueCat.
Source: prd/sdk-forks/PRD.md.
What is tested today#
- The web SDK fork ran end to end against a real RevenueDot server: configure, customer info, offerings, a Test Store purchase, and the
proentitlement turning active. - The unmodified RevenueCat iOS SDK 5.92 on an iPhone simulator and Android SDK 10.24 on an Android emulator pass configure, customer info, offerings, a Test Store purchase and
logInagainst RevenueDot (scripts/e2e). - Purchases through the real App Store and Google Play sandboxes have not run end to end yet. Store handling is tested against mocked Apple and Google APIs.
- The React Native Expo example and the purchases-js Vite example run against RevenueDot with a Test Store key.