How to use the checker
- In Lovable, open the code view and click
package.jsonat the top of the file list. Copy all of it — or copy it from the root of the GitHub repo Lovable syncs to. - Paste it into the checker, or drop the file on it. Add
capacitor.config.tsif you have one: it unlocks the appId, build folder and live-URL checks. - Read the result. Anything amber or red comes with a plain fix, and the prompt at the end bundles them for Lovable or Cursor.
You are pasting a file, not a website URL. Nothing leaves your browser.
What the checker looks at
| Check | What it means | Why it matters |
|---|---|---|
| Capacitor present | @capacitor/core and @capacitor/cli are installed | Without the native shell there is nothing to upload to TestFlight or Google Play |
| Versions match | All @capacitor/* shell packages share one major version | Mixed or very old versions fail at cap sync or in the store build |
| iPhone and Android packages | @capacitor/ios and/or @capacitor/android | Each store needs its own native project; you can start with one |
| Website kind (SPA vs SSR) | A static build (a folder with index.html) or a Node server | A phone has no Node server: server-rendered apps open on a blank screen |
| Build folder (webDir) | The folder the app loads after npm run build | Wrong folder, blank app |
| App id | A com.studio.myapp-style id | It becomes the bundle ID and package name, and is permanent once the stores know it |
| Live URL | server.url in capacitor.config | Loading your live site instead of the build is the classic Guideline 4.2 rejection |
| Native plugins | Camera, share, push, haptics… | Phone features people actually use are what make a wrapper feel like an app |
Lovable apps and Capacitor
Most Lovable projects are Vite + React single-page apps: npm run build writes a dist folder, and Capacitor wraps that folder as it is. Some newer Lovable projects use TanStack Start, which renders on a server — those need a static (SPA or prerendered) build before Capacitor can load them. The checker tells you which one you have.
Capacitor does not change your screens. It adds an ios/ and an android/ project around the same web build, plus plugins when you want phone features. Supabase and other API calls keep working from the app as long as they use full https:// URLs.
From “ready” to TestFlight
A green result means the native app can be built. Shipping it still takes signing certificates, store records, and a machine with Xcode. That is what CapWrapp does: connect the GitHub repo, it opens the Capacitor pull request if one is needed, then builds on GitHub’s Mac machines and uploads to TestFlight and Google Play testing. Full walkthrough: Lovable to App Store.
Ready to build is not approved by Apple
Apple’s Guideline 4.2 (Minimum Functionality) rejects apps that are only a website in a frame. Run the Guideline 4.2 self-audit before you submit.
