MsbSvg.RevenueCat.Maui.Android.PaywallUI
9.2.0.1
See the version list below for details.
dotnet add package MsbSvg.RevenueCat.Maui.Android.PaywallUI --version 9.2.0.1
NuGet\Install-Package MsbSvg.RevenueCat.Maui.Android.PaywallUI -Version 9.2.0.1
<PackageReference Include="MsbSvg.RevenueCat.Maui.Android.PaywallUI" Version="9.2.0.1" />
<PackageVersion Include="MsbSvg.RevenueCat.Maui.Android.PaywallUI" Version="9.2.0.1" />
<PackageReference Include="MsbSvg.RevenueCat.Maui.Android.PaywallUI" />
paket add MsbSvg.RevenueCat.Maui.Android.PaywallUI --version 9.2.0.1
#r "nuget: MsbSvg.RevenueCat.Maui.Android.PaywallUI, 9.2.0.1"
#:package MsbSvg.RevenueCat.Maui.Android.PaywallUI@9.2.0.1
#addin nuget:?package=MsbSvg.RevenueCat.Maui.Android.PaywallUI&version=9.2.0.1
#tool nuget:?package=MsbSvg.RevenueCat.Maui.Android.PaywallUI&version=9.2.0.1
MsbSvg.RevenueCat.Maui.Android.PaywallUI
RevenueCat Android Paywall UI bindings for .NET MAUI.
Show RevenueCat's native Paywall UI — including V2 component-based paywalls designed in the RevenueCat Dashboard — on Android in your .NET MAUI app. No official MAUI binding exists for the RevenueCat UI layer; this package fills that gap.
Why this package?
RevenueCat provides purchases-ui for Android, built entirely with Jetpack Compose. Binding 50+ Compose dependencies directly into MAUI is impractical. This package takes a different approach:
| Layer | What it does |
|---|---|
| Thin Java bridge AAR | Wraps PaywallActivity launch via PaywallContract — no Compose binding needed on the C# side |
purchases-ui-9.2.0.aar |
RevenueCat's official Paywall UI |
| ~50 native AAR/JAR files | All required Jetpack Compose, Coil, OkHttp, Material 3 and other transitive dependencies |
| C# wrapper | Clean RevenueCatPaywallUI static API — configure once, show with one line |
Prerequisites
Your MAUI project must already have the RevenueCat core SDK configured. Use one of these NuGet packages:
Kebechet.Maui.RevenueCat.Android(9.2.0+)Tonestro.Maui.RevenueCat.Android(9.x+)
Note: This package provides only the UI layer. The core
purchasesSDK must come from one of the packages above.
Installation
dotnet add package MsbSvg.RevenueCat.Maui.Android.PaywallUI
That's it — the bundled .targets file automatically injects the native AAR/JAR files into your Android build.
Quick Start
1. Configure RevenueCat SDK (Platforms/Android/MainApplication.cs)
using MsbSvg.RevenueCat.Maui.Android.PaywallUI;
[Application]
public class MainApplication : MauiApplication
{
public MainApplication(IntPtr handle, JniHandleOwnership ownership)
: base(handle, ownership) { }
protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
public override void OnCreate()
{
base.OnCreate();
RevenueCatPaywallUI.Configure(this, "your_google_api_key");
}
}
2. Show the Paywall
private void OnShowPaywallClicked(object sender, EventArgs e)
{
#if ANDROID
var activity = Platform.CurrentActivity;
if (activity != null)
{
RevenueCatPaywallUI.ShowPaywall(activity);
}
#endif
}
3. Show a specific offering
RevenueCatPaywallUI.ShowPaywall(activity, offeringId: "premium_offering");
4. One-shot: configure + show
RevenueCatPaywallUI.ConfigureAndShowPaywall(activity, "your_google_api_key");
API Reference
| Method | Description |
|---|---|
RevenueCatPaywallUI.Configure(context, apiKey) |
Initialise the RevenueCat SDK. Call once at app start. |
RevenueCatPaywallUI.IsConfigured |
Returns true if the SDK is already configured. |
RevenueCatPaywallUI.ShowPaywall(activity) |
Launch the paywall for the default offering. |
RevenueCatPaywallUI.ShowPaywall(activity, offeringId) |
Launch the paywall for a specific offering. |
RevenueCatPaywallUI.ConfigureAndShowPaywall(activity, apiKey) |
Configure + launch in a single call. |
How it works
Your MAUI C# Code
→ RevenueCatPaywallUI.ShowPaywall(activity)
→ JNI → RevenueCatPaywallBridge.java (bundled AAR)
→ PaywallContract.createIntent()
→ PaywallActivity (Jetpack Compose)
→ Native V1 / V2 paywall rendering
Compatibility
| Requirement | Value |
|---|---|
| .NET | 9.0+ / 10.0+ |
| Android min SDK | API 24 (Android 7.0) |
| RevenueCat SDK | purchases:9.2.0 / purchases-ui:9.2.0 |
| Paywall types | V1 (template-based) ✅ V2 (component-based) ✅ |
Troubleshooting
"Displaying default template due to validation errors"
This is typically a RevenueCat Dashboard issue, not a code problem:
- Ensure all localization keys have values for every configured language.
- Known dashboard bug: community.revenuecat.com/…/missing-string-localization
ClassNotFoundException at runtime
If you see ClassNotFoundException for Compose/AndroidX classes, make sure no build step is stripping this package's AAR files. The Bind="false" attribute in the .targets file should prevent any C# binding generation — the files are included as raw native libraries only.
🐾 A small note
If this package saved you time and you'd like to say thanks — please feed a stray animal 🐶🐱. No donations needed. Just a small act of kindness for a friend on the street.
Author
Musab Sevgi
- NuGet: nuget.org/profiles/musabsevgi
- GitHub: github.com/msbsvg
License
MIT — see LICENSE for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-android36.0 is compatible. |
-
net10.0-android36.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Initial release — RevenueCat Android Paywall UI bindings for .NET MAUI. Supports V1 template-based and V2 component-based paywalls.