Hire Lovable Xperts
Mobile

Publish a Lovable App to the App Store

Submitting a Lovable app to the App Store is a multi-step process that goes well beyond building the code. You need an Apple Developer account, a valid bundle ID, a signed binary produced in Xcode or EAS Build, App Store Connect metadata, and screenshots at required resolutions. This guide walks every step in order so nothing blocks your submission or triggers a rejection on review.

By Hire Lovable Xperts · Last verified: 2026-08-10

What do I need before I can submit to the App Store?

Four things must be in place before you open Xcode or App Store Connect: an Apple Developer account enrolled in the Developer Program ($99/year), a unique App ID (bundle ID) registered in the Apple Developer portal, a signed binary built from Xcode or EAS Build, and your Lovable app packaged in a Capacitor or Expo container. A web URL cannot be submitted to the App Store — the submission requires a .ipa binary file.

Apple Developer Program enrollment takes 24–48 hours to be approved after payment. Plan for this lead time — you cannot create provisioning profiles or submit to the store until enrollment is approved. Use the time to set up your Capacitor project, configure your Bundle ID, and prepare your App Store metadata.

Your Bundle ID must be globally unique in reverse-domain format (e.g. `com.yourcompany.appname`). It is registered in the Apple Developer portal under Identifiers. Once your app is live on the store, the Bundle ID cannot be changed — pick it carefully and make it specific enough to be unique.

How do I create a signed iOS binary from a Lovable project?

Signing an iOS binary for App Store distribution requires a Distribution Certificate and a Distribution Provisioning Profile, both issued by the Apple Developer portal. Xcode can manage these automatically if you enable 'Automatically manage signing' — the recommended approach for most teams. If you use EAS Build, the signing configuration is handled through the EAS CLI after connecting your Apple Developer account.

  1. In the Apple Developer portal, create an App ID under Identifiers matching your bundle ID.
  2. In Xcode → project settings → Signing & Capabilities, enable 'Automatically manage signing' and select your development team.
  3. Ensure your app version and build number are set in Xcode: version (e.g. 1.0.0) and build number (e.g. 1) must both be set before archiving.
  4. Select 'Any iOS Device (arm64)' as the destination — not a simulator.
  5. Go to Product → Archive. Xcode builds and archives the release binary.
  6. In the Organizer window that opens, select your archive and click 'Distribute App'.
  7. Choose 'App Store Connect' as the distribution method and follow the upload wizard.
  8. Wait for the binary to appear in App Store Connect under TestFlight — typically 15–30 minutes after upload.

What App Store Connect metadata do I need to prepare?

App Store Connect requires a substantial set of metadata before you can submit for review. Missing any required field blocks submission. Prepare all metadata before your binary is ready so you can submit immediately once the binary is processed — the review queue starts only after submission, not binary upload.

Required metadata: App Name (30 characters max — distinct from your title), Subtitle (30 characters max, optional), Description (4000 characters max), Keywords (100 characters total, comma-separated), Support URL, Marketing URL (optional), Privacy Policy URL (required), copyright string, and age rating questionnaire.

Screenshots are required at specific resolutions and cannot be skipped. Apple requires screenshots for the 6.7-inch display (iPhone 15 Pro Max size), and strongly recommends 5.5-inch (iPhone 8 Plus) screenshots as a fallback for older devices. Screenshots can be taken from the iOS Simulator (Product → Screenshot in Xcode) or Capacitor on a real device. All screenshots must reflect the actual app — no mockups with content the app does not contain.

App Store Connect Required Screenshot Sizes
Device TypeResolutionRequired?
iPhone 6.7" (Pro Max)1290 × 2796 pxRequired
iPhone 6.5" (Plus/Max)1242 × 2688 pxOptional (fallback)
iPhone 5.5"1242 × 2208 pxOptional (older devices)
iPad Pro 12.9" (3rd gen+)2048 × 2732 pxRequired if you support iPad
iPad Pro 12.9" (2nd gen)2048 × 2732 pxRequired if supporting older iPad

What app-review guidelines must a Lovable app comply with?

Apple's App Store Review Guidelines are the rulebook for every submission. For a Lovable app wrapped in Capacitor or rebuilt in Expo, three guidelines carry the highest rejection risk: Guideline 4.2 (Minimum Functionality), Guideline 5.1.2 (Data Collection), and Guideline 2.5.6 (Apps using WebViews). Understand all three before submitting — a rejection resets your review queue position.

Guideline 4.2 (Minimum Functionality): Your app must offer meaningful functionality beyond a mobile website. A bare Capacitor wrapper with no native features is the most-rejected pattern. Integrate at least one native capability — push notifications, camera access, or offline mode — before submitting. Native APIs signal to reviewers that the app offers genuine value as an installed app.

Guideline 5.1.2 (Data Collection): If your app collects any personal data — including Supabase Auth user records, analytics, or usage telemetry — your Privacy Policy must accurately describe what is collected and how it is used. Apple will ask during submission which data types your app collects. The answers must match your Privacy Policy.

Guideline 2.5.6: Apps that download and execute JavaScript at runtime are prohibited. All JavaScript must be bundled locally in the binary. Verify that your Lovable app does not dynamically load scripts from external CDNs — if it does, inline those scripts or remove them before submitting.

A rejected submission delays your launch by 1–3 business days minimum (the time for a fresh review after you resolve the issue). Common rejections that are completely avoidable: missing Privacy Policy URL, screenshots showing placeholder content, app crashing on launch in the reviewer's environment, or a Capacitor wrapper with zero native API usage.

Which guideline actually rejects a wrapped Lovable app?

Four clauses in Apple's guidelines do the rejecting, and they sit next to each other in section 4.2. Google Play's equivalent is far narrower — it has no template or generator clause at all. Reading both texts before you submit is cheaper than a rejection cycle, because each clause tells you exactly which change clears it.

The clause worth reading twice is 4.2.6, because its own wording contains the escape. It rejects apps built from a commercialized template or app generation service "unless they are submitted directly by the provider of the app's content" — so the exposure is not that a tool generated your code, it is that somebody else ships your app under their account. A founder submitting their own product from their own Apple Developer account is the case the clause carves out.

Google Play's version is materially weaker, and that asymmetry is the practical planning fact: Play's policy talks about limited functionality and broken functionality, and says nothing about how the app was generated. The bar it does enforce is that the app installs, loads and responds — which is why a wrapper that white-screens on a reviewer's device fails Play even when it would have passed on content grounds.

Read the clause text, not a summary of it, before you argue a rejection. Apple's review guidelines and Google Play's policy pages are both public and both change; the four Apple clauses and the Play functionality policy quoted above were read on 2026-08-10 and are linked in the sources at the end of this page.
Store clauses that reject wrapped web apps — text, trigger, and the change that clears it
ClauseWhat it saysWhat trips itWhat clears it
Apple 4.2 Minimum Functionality"Your app should include features, content, and UI that elevate it beyond a repackaged website."A Capacitor shell that renders the same pages as your public URL and nothing moreAt least one capability that only works installed — push, camera, offline reads
Apple 4.2.2"Other than catalogs, apps shouldn't primarily be marketing materials, advertisements, web clippings, content aggregators, or a collection of links."A marketing site or link hub wrapped as an appShip the product surface, not the brochure — the app opens on the signed-in experience
Apple 4.2.3(i)"Your app should work on its own without requiring installation of another app to function."A shell that hands the user off to a browser or another app to complete the core flowKeep the whole core flow inside the container, including auth
Apple 4.2.6"Apps created from a commercialized template or app generation service will be rejected unless they are submitted directly by the provider of the app's content."A third party submitting on your behalf from their own developer accountSubmit from your own developer account, as the provider of your own content
Google Play — Functionality, Content, and User Experience"We do not allow apps that only have limited functionality and content," listing "apps that are static without app-specific functionalities" as a common violationA wrapper with no app-specific behaviour, or one that installs and does not loadThe same fix as Apple 4.2 — one genuine app-specific capability, and a build that launches cleanly

How do I submit to Google Play alongside the App Store?

Google Play submission is generally faster and less strict than the App Store. You need a Google Play developer account ($25 one-time fee), an Android App Bundle (.aab) built from Android Studio or EAS Build, and Play Store metadata including screenshots, description, and a content rating questionnaire. Google Play's review takes 1–7 days for first submissions and is typically 1–3 days for updates.

  1. Create a Google Play developer account at play.google.com/console.
  2. Build a signed Android App Bundle (.aab) from Android Studio: Build → Generate Signed Bundle/APK → Android App Bundle.
  3. Create your keystore file when prompted — store it securely. The keystore is required for every future update to the same app and cannot be recovered if lost.
  4. In Google Play Console, create a new app and complete the app setup checklist.
  5. Upload the .aab to the Production release track.
  6. Complete the content rating questionnaire, privacy policy, data safety form, and store listing (title, description, screenshots).
  7. Google requires at least two screenshots for the phone form factor. Screenshots for 7-inch and 10-inch tablets are optional but recommended.
  8. Submit for review.

Why can't a new Google Play account publish to production yet?

A new Google Play developer account cannot publish to production at all until it has run a closed test. Google requires personal accounts created after 13 November 2023 to hold at least 12 testers opted in for 14 continuous days, then apply for production access and answer questions about that test. Plan two weeks before your Play launch date.

The 14 days have to be consecutive for each tester. Google's own FAQ is explicit that it does not count "testers who opted in, tested for less than 14 days, and then opted out" — even if they opt back in and reach 14 days in total, the days must be consecutive to count toward the 12-tester criterion. Recruiting 12 people on day 10 restarts the clock rather than shortening it.

Production and Pre-registration stay disabled in Play Console until the application is approved, and Google states the review of that application "usually takes 7 days or less, but may occasionally take longer." This is the single most common reason a Lovable founder's Android launch slips: the Apple side is a review queue measured in days, and the Play side, for a brand-new personal account, is a testing requirement measured in weeks.

This requirement applies to personal developer accounts created after 13 November 2023. Check which account type you enrolled under before you build a two-week testing plan you may not need — and before you assume you do not need one.
Google Play testing tracks and what each one requires
TrackWhat it is forRequirement to use it
Internal testingFast builds to a small group of your own testersNone
Closed testingA controlled group, used to satisfy the production requirementApp setup finished
Open testingA public test listing anyone can joinProduction access already granted
ProductionPublic release on Google PlayA closed test with 12 testers opted in for 14 continuous days, then an approved application

How do I test the app before submitting?

Apple's TestFlight allows beta distribution to up to 10,000 external testers before your public App Store release. Submitting to TestFlight uses the same binary upload path as App Store submission but has a lighter review process (typically 1 day for TestFlight review vs 1–3 for App Store). Testing on TestFlight before public submission gives you real-device feedback and catches issues the Simulator misses.

  1. After uploading your binary to App Store Connect, go to TestFlight and enable your build for external testing.
  2. Add tester email addresses or create a public TestFlight link for broader beta access.
  3. Request external testing review — Apple requires a brief review of TestFlight builds before external testers can access them.
  4. Test every major flow on real devices: auth sign-in, core feature usage, push notification receipt, deep link handling, and app re-launch from background.
  5. Fix any crashes found in TestFlight. Download crash logs from Xcode → Organizer → Crashes or from App Store Connect.
  6. Once the TestFlight build is stable across real devices, submit the same build (or a new incremented build number) for App Store review.

Frequently asked questions

How long does Apple App Store review take?
First-time submissions typically take 1–3 business days. Updates to existing apps often review in 24 hours. Apple's review times vary and can extend during peak periods (around major iOS releases or the holiday season). You can request expedited review for critical bug fixes, though approval of expedited requests is not guaranteed.
Do I need a Privacy Policy to submit to the App Store?
Yes. A publicly accessible Privacy Policy URL is mandatory for all App Store submissions. The policy must describe what personal data your app collects, why it collects it, how long it is retained, and who it is shared with. For a Lovable app using Supabase Auth, your policy must disclose that you collect email addresses and authentication tokens at minimum.
What is a bundle ID and can I change it after submission?
A bundle ID is a unique reverse-domain identifier for your iOS app (e.g. `com.yourcompany.appname`). It is set when you register the App ID in the Apple Developer portal and in your Xcode project or Capacitor config. Once your app is live on the App Store, the bundle ID cannot be changed — it is the permanent identity of your app in Apple's system.
Can I submit a web app to the App Store without any native code?
No. The App Store requires a compiled native binary — a .ipa file. A web URL or a simple HTML page cannot be submitted. You must package your Lovable app using Capacitor (which wraps the web build in a native container) or rebuild it using Expo/React Native. Both produce the .ipa binary required for submission.
What happens if my app is rejected by Apple?
You receive an email from Apple with the specific guideline your app violated and what change is required. You resolve the issue, resubmit, and the app re-enters the review queue — typically reviewed within 1–3 business days again. Rejections are common for first submissions, especially for WebView-based apps or apps with incomplete Privacy Policy information. Most rejections are resolved in a single revision cycle.
How do I set up in-app purchases for a Lovable app on iOS?
In-app purchases require using Apple's StoreKit framework — Stripe, Paddle, and other external payment processors are not allowed for in-app purchases on iOS where Apple takes a commission. For apps that offer subscriptions or one-time purchases within the app, you must implement StoreKit (or `expo-in-app-purchases` for Expo) and route those transactions through Apple's payment system. External payment links for physical goods and services are permitted under Apple's anti-steering rules from 2024.
Do I need separate developer accounts for the App Store and Google Play?
Yes. The Apple Developer Program ($99/year) is separate from the Google Play developer account ($25 one-time). Both are registered under an individual or organization, and both require a real identity for enrollment. If you are building for a company, enroll as an organization rather than an individual — individual accounts cannot transfer app ownership to another account.
What screenshots do I actually need for App Store submission?
At minimum, screenshots for the 6.7-inch display (iPhone 15 Pro Max size, 1290×2796px) are required. Apple displays these as the fallback for all iPhone sizes unless you provide device-specific screenshots. If your app supports iPad, you must also provide 12.9-inch iPad Pro screenshots (2048×2732px). Screenshots must show the actual app — no device mockup frames are required (but allowed), and no placeholder content.

Talk to a senior engineer — not a salesperson.

Book a free 30-minute audit call. We'll diagnose what's wrong and tell you exactly what it costs to fix.

Book a free audit call