Lovable to iOS and Android App: Ship It Native
Turn your Lovable app into a native iOS and Android app with billing, push, and offline support, then publish without Xcode, a Mac, or a 2nd codebase.

Your Lovable app already works. The question is what happens when you try to put it in the App Store and Google Play, because the things most likely to block you have nothing to do with how good the web app is. They are billing, Apple's Guideline 4.2, and a Capacitor export that behaves differently on a real phone than the browser preview suggested. Solve those before you think about screenshots or store listings.
The problem that actually gets Lovable apps rejected
Apple and Google require their own billing systems for digital content. If your Lovable app sells subscriptions or premium features through Stripe, that flow cannot ship in the store build, and review ends there. This is a hard blocker, not a polish item.
Despia includes RevenueCat in every app, working on both iOS and Android today. Your Lovable code decides at runtime whether it is running inside the native app, and routes payment accordingly:
import despia from 'despia-native'
const isDespia = navigator.userAgent.toLowerCase().includes('despia')
if (isDespia) {
// native paywall configured in the RevenueCat dashboard
despia(`revenuecat://launchPaywall?external_id=${userId}&offering=default`)
} else {
// web checkout, linked to the same account
window.location.href = `https://pay.rev.cat/<your_token>/${encodeURIComponent(userId)}`
}
Entitlements are checked on app load and work offline:
window.onRevenueCatPurchase = () => checkEntitlements()
if (isDespia) {
const data = await despia('getpurchasehistory://', ['restoredData'])
const active = (data.restoredData ?? []).filter(p => p.isActive)
const premium = active.some(p => p.entitlementId === 'premium')
}
A user who subscribes on the web and later installs the app finds their entitlement already there, because both paths key off the same user ID.
What Lovable's Capacitor export covers
Lovable's export is real: a genuine native project you fully own. If you have iOS and Android developers and want to write native code, it is a legitimate route.
The costs show up fast for everyone else. You need a Mac, Xcode, provisioning profiles, and signing certificates. Billing is not included and push requires a plugin. Over-the-air updates lost their default answer when Ionic discontinued Appflow in February 2025. And the quietest failure is the worst one: Capacitor serves your app offline from the file:// protocol, which breaks Supabase auth, OAuth redirects, and most SDKs that expect an http origin. Sign In with Apple will not load on file:// at all.
Despia takes the opposite approach, with two deployment models and neither of them touching file://. The default is remote hydration: the binary ships without embedded web assets and loads the current build straight from your URL on every launch, so cookies, Supabase auth, and every SDK behave exactly as they do on yourapp.lovable.app, and web updates reach users without a store resubmission. For offline-first apps, the Local Server option caches the full asset graph on-device and serves it from http://localhost, which is a real secure origin in both WebViews, so auth and SDKs keep working with no network at all. One codebase, no Xcode.
Guideline 4.2, and what reviewers actually look for
Apple rejects apps that offer nothing beyond the website. The fix is not a trick, it is giving the app real native behavior, and with Despia that is a JavaScript call from the Lovable code you already have:
if (isDespia) {
// haptic feedback on key actions
despia('successhaptic://')
// biometric-gated storage via the vault
await despia('setvault://?key=confirmAction&value=yes&locked=true')
// register the device for push, linked to your user
despia(`setonesignalplayerid://?user_id=${userId}`)
}
Push notifications alone change the review conversation, and they change the product. Reaching users between sessions is usually the reason to have a mobile app at all. OneSignal is built into every Despia app, as is AppsFlyer for install attribution, so you can see whether a signup came from a TikTok ad or organic search without adding any custom native code.
Despia and Lovable's Capacitor export, side by side
| Despia | Capacitor (Lovable built-in) | |
|---|---|---|
| In-app purchases | Built in via RevenueCat | Requires plugin, not included |
| Push notifications | Built in via OneSignal | Requires plugin |
| Install attribution | Built in via AppsFlyer | Not included |
| Offline support | Full, via localhost server | file://, breaks auth and SDKs |
| OTA updates | Free, no MAU limits | Appflow discontinued (Feb 2025) |
| Deployment | One click, no Xcode | Xcode and provisioning required |
Publishing without a Mac, and updating without a resubmission
Despia builds, signs, and submits from the browser. No Xcode, no Android Studio, no Mac, no CLI. You still need your own Apple Developer account ($99 per year) and Google Play Console account ($25 one-time), because the app ships under your name, but the build pipeline is not your problem. Builds run in the cloud, and the signed iOS build uploads to App Store Connect automatically for TestFlight and submission. For Google Play, Despia generates the AAB the store requires, plus an APK for direct device testing.
After launch, the split is simple. Everything you redeploy in Lovable ships over the air on next launch, with no store review and no MAU-based pricing on updates. A store resubmission is only needed when the native layer itself changes, like a new app icon or a new permission.
Two habits protect you long-term. Connect Despia to a custom domain rather than yourapp.lovable.app, so if you ever move to self-hosting or another framework, only your DNS changes and the store listing, ratings, entitlements, and attribution stay intact. And remember the full Xcode and Android Studio projects export at any time, so the managed path is never a locked door.
When the Capacitor export is the right call
If you have native developers on the team, need deep platform-specific customization, and want every build artifact living in your own repo, the export is a legitimate choice and you should take it seriously. You own the whole project, and that ownership is the point.
The moment the goal is shipping the app you already built, with billing that passes review, push that reaches users, and updates that do not wait on Apple, maintaining a second native project is cost without benefit.
FAQ
Does Lovable have a mobile app builder?
Lovable builds web apps and offers a Capacitor export for native builds. The export is a real native project, but it requires a Mac and Xcode, includes no billing or push out of the box, and its file:// offline mode breaks Supabase auth and OAuth. Despia ships the same Lovable app as a native binary without any of that.
Do I need a Mac or Xcode?
Not with Despia. Building, signing, and the App Store Connect upload run from the browser. The Xcode project is exportable if you ever want it.
Can I use Stripe in my Lovable mobile app?
Not for digital content. Apple requires In-App Purchases and Google requires Play Billing, and both reject apps that route around them. Use the built-in RevenueCat integration in the app and keep Stripe on the web.
Why does login break in my Capacitor build?
Capacitor serves the app from file://, and Supabase auth, OAuth redirects, and Sign In with Apple all require an http origin. Despia never uses file://: the default remote hydration model loads your app from its HTTPS URL, and the offline Local Server option serves it from http://localhost, both real secure origins, so auth behaves exactly as it does on the web.
Do I resubmit every time I redeploy in Lovable?
No. Web changes, which in a Lovable app is nearly all changes, ship over the air instantly. Resubmit only when the native layer changes.
What happens if I leave Lovable later?
Nothing, if you connected a custom domain. Point the domain at your new host and the installed apps keep loading it. Nothing in the stores changes.
Get it on the stores
Take the app you built in Lovable and ship it to iOS and Android without a CLI or a Mac. Code signing and submission run from the browser, and your Lovable app stays the single source of truth.





