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

Your Base44 app already works. The question is what happens when you try to put it in the App Store and Google Play, because the two things most likely to block you have nothing to do with how good the web app is. They are billing and Apple's Guideline 4.2, and you should solve both before you think about screenshots or store listings.
The problem that actually gets Base44 apps rejected
Base44's own documentation is direct about the first one:
"Digital goods: Do not use Stripe for payments inside your mobile app. Apple and Google require their own billing systems for digital content. If your app uses Stripe for digital content, your app is rejected."
If your Base44 app sells subscriptions or any digital content through Stripe, the store build cannot ship that way. Base44 is working on a native billing integration, but until it lands, this is a hard blocker, not a polish item.
Despia includes RevenueCat in every app, working on both iOS and Android today. Your Base44 web 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 Base44's built-in app store export covers
Base44 ships its own path to the stores, and it is a real head start. You get a compliance scan against store guidelines, generated store files for iOS and Android, and a wrapper that loads your published URL, so content updates ship without resubmission.
What it does not include, per Base44's own documentation: push notifications, in-app purchases, offline mode, biometrics, haptics, or any native-only feature. It also does not submit the app for you. You manage the Apple and Google review process through your own developer accounts.
The missing features are not cosmetic. They are exactly what an App Store reviewer looks for when deciding whether your app is an app.
Guideline 4.2, and what reviewers actually look for
Apple's Guideline 4.2 rejects apps that offer nothing beyond the website. A WebView shell with no native capability gives the reviewer little to approve. The fix is not a trick, it is giving the app real native behavior, and with Despia that is a JavaScript call from the Base44 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 Base44's built-in mobile export, side by side
| Despia | Base44 mobile export | |
|---|---|---|
| In-app purchases | Built in via RevenueCat | Not supported, Stripe rejected |
| Push notifications | Built in via OneSignal | Not supported |
| Install attribution | Built in via AppsFlyer | Not supported |
| Offline support | Full, via localhost server | Not supported |
| Biometrics / Face ID | Built in | Not supported |
| Haptics | Built in | Not supported |
| OTA updates | Free, no MAU limits | Web layer only |
| Deployment | One click from the browser | Generates IPA/AAB, manual upload |
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/year) and Google Play Console account (\)25 one-time), because the app ships under your name, but the build pipeline is not your problem.
After launch, the split is simple. Web changes, which in a Base44 app means almost all changes, ship over the air the moment you publish in Base44, 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.
And if you ever outgrow the managed path, the full Xcode and Android Studio projects export at any time. Your app is never locked inside the platform.
When Base44's built-in export is enough
If your app is free, internal, or a companion tool, and you do not need push notifications, payments, or offline support, Base44's own export can get you a store listing, and you should try it before paying for anything. The compliance scan is useful either way.
The moment you need to charge users, reach them between sessions, or convince an Apple reviewer that this is an app and not a bookmarked website, you have outgrown it.
If you are comparing converters more broadly, three questions sort them quickly: is billing, push, and attribution included or sold as add-ons, can you export the native projects and leave, and do content updates cost anything at scale. Despia's answers are included, yes, and no.
Get it on the stores
Take the app you built in Base44 and ship it to iOS and Android without a CLI or a Mac. Code signing and submission run from the browser, and your Base44 app stays the single source of truth.





