Mobile Development
How to Publish a Lovable App to the App Store and Google Play (2026 Guide)
Lovable builds web apps, not App Store apps. Here is the route most Lovable apps take to iOS and Android, and the issues that get them rejected.
You built your app with Lovable, it works in the browser, and now the question is the one we hear most often from founders: can I put this in the App Store and Google Play?
Yes, you can. But not by pressing a button in Lovable. This guide explains what actually has to happen, the route most Lovable apps take, and the things that get apps rejected so you can avoid them.
Short answer
- Lovable builds web apps (React and Vite, usually with Supabase behind them). It does not produce the iOS or Android app files the stores need.
- The usual route is Capacitor, which wraps your existing web app in a native iOS and Android shell, so you keep one codebase.
- A plain wrapper is not enough for Apple. You need real native features, or your app risks rejection under App Store guideline 4.2.
- If you want a fully native feel, the alternative is rebuilding the screens in React Native and keeping your Supabase backend.
What you need before you start
- Your code on GitHub. Connect your Lovable project to GitHub so you have the full source.
- An Apple Developer Program membership (yearly fee) and a Google Play developer account (one-time fee), in your own name or your company's, so you own the apps.
- A Mac with Xcode to build and submit the iOS version. Android builds work on any computer with Android Studio.
- A privacy policy page on your website. Both stores require one.
Step 1: Make sure the web app is ready
Wrapping a broken web app gives you a broken mobile app. Before converting, check that sign-up, login, payments and the main flows work reliably, that the layout works on small screens, and that there are no secret keys in the frontend code. If your app uses Supabase, make sure Row Level Security is switched on for every table.
Step 2: Add Capacitor to the project
From the project folder, install Capacitor and the two platforms, then point it at Vite's build output:
npm install @capacitor/core
npm install -D @capacitor/cli
npx cap init "Your App" com.yourcompany.yourapp --web-dir dist
npm install @capacitor/ios @capacitor/android
npm run build
npx cap add ios
npx cap add android
npx cap sync
The app ID (com.yourcompany.yourapp) becomes your app's permanent identifier in both stores, so choose it carefully.
Every time you change the web code, run npm run build and npx cap sync again to copy the new build into the native projects.
Step 3: Fix the issues that only appear inside the app
A Lovable app that works perfectly in Chrome can still misbehave inside the native shell. The most common problems we see:
- White screen on launch. Usually the wrong
webDirincapacitor.config, or environment variables (such as your Supabase URL and anon key) that were missing at build time. On iOS, connect Safari's Web Inspector to the simulator to see the actual error. - Login redirects that leave the app. Magic links, password resets and Google sign-in redirect to a URL. Inside an app, that URL has to open the app again, which means setting up a custom URL scheme or universal links, listening for them with Capacitor's App plugin, and adding the redirect URL to your Supabase Auth settings.
- Links that open in the app instead of the browser. External links should open with the Browser plugin so users are not trapped.
- Safe areas and the keyboard. Content hidden behind the notch or the keyboard covering inputs. These need small CSS and plugin fixes.
Step 4: Add native features (this is what gets you approved)
Apple's guideline 4.2 ("minimum functionality") is the most common reason wrapped web apps are rejected. Reviewers ask: what does this app do that the website does not? Give them a clear answer by adding features that only make sense in an app, such as:
- Push notifications for things users care about
- Deep links so shared links open the right screen in the app
- Offline handling, so the app shows something useful without a connection
- Native camera or photo access where your app needs uploads
- Biometric login, haptics, a native splash screen and status bar styling
The goal is not to tick boxes but to make the app genuinely better than opening the website.
Step 5: Meet the store rules people miss
- Sign-in options. If you offer Google or other social logins on iOS, Apple expects Sign in with Apple or an equivalent privacy-focused option.
- Account deletion. If users can create an account in your app, they must be able to delete it from inside the app.
- Privacy details. Fill in Apple's privacy labels and Google Play's Data safety form so they match what your app really collects.
- Payments. Digital goods and subscriptions sold inside the app usually need Apple's and Google's in-app purchase systems. Physical goods and real-world services can keep your existing payments.
- Google Play testing. New personal Google Play developer accounts must run a closed test with a minimum number of testers for a set period before publishing to everyone. Check the current requirement in Play Console and plan for it, or use an organisation account.
Step 6: Build, test on real devices, submit
Open the iOS project with npx cap open ios and the Android project with npx cap open android. Set the app icons and splash screens, test on real phones (not just simulators), then archive and upload: through Xcode to App Store Connect for TestFlight and review, and an Android App Bundle to Play Console.
Expect questions or a rejection on the first try. That is normal. Read the reviewer's message carefully, fix exactly what they mention, and reply in the Resolution Center.
Capacitor or a React Native rebuild?
Choose Capacitor if your Lovable app already works well on phones and you want to launch fast with one codebase for web, iOS and Android.
Choose React Native if the app is the core of your business, needs heavy native features, or you want it to feel fully native. You keep your Supabase database, auth and data, and rebuild the screens with native components.
Want us to do it for you?
We have published apps to both the App Store and Google Play, including Messelal and TheYemeniHouse, and we take Lovable, Bolt, Base44 and other AI-built apps through the whole process: fixing the web app, Capacitor or React Native, native features, store listings, submission and any rejections until it is approved.
See how we turn vibe-coded apps into store apps, or message us on WhatsApp for a free review of your project.
Frequently asked questions
Can Lovable publish directly to the App Store?
No. Lovable produces a web app. To get into the stores you wrap it with a tool like Capacitor or rebuild it natively, then submit the result through Apple's and Google's developer accounts.
Will Apple reject my wrapped Lovable app?
It can if the app is only your website inside a wrapper. Apps with real native functionality, such as push notifications, deep links and offline support, have a much better chance of approval.
Do I lose my Supabase backend?
No. Both Capacitor and React Native apps can use the same Supabase project, so your users, data and auth stay as they are. You may need to update redirect URLs for login.
Can I keep editing my app in Lovable afterwards?
With Capacitor, yes: keep working through the GitHub sync, then rebuild and sync the native projects to ship updates. Store updates go through review again.
- #Lovable
- #App Store
- #Google Play
- #Capacitor
- #Supabase
- #vibe coding