Skip to content
WebViewGold Vibe Coding to App Store
English
Get WebViewGold

App Store rejection

Guideline 2.1 (App Completeness): why App Review saw a broken app, and how to fix it

A 2.1 rejection means the reviewer hit something that did not work: a white screen, a crash, a link to nowhere, lorem ipsum, or a login that failed. For a web-wrapped app the cause is almost always on the server or in the launch sequence, and all of it is fixable in an afternoon.

From $109 one-time per platform, or let our team do it all from $698.

  • Approval guarantee – or money back within 14 days
  • No coding needed
  • One-time payment, free updates
  • 24/7 human support
  • Made in Germany since 2014 · ISO 27001

What Guideline 2.1 asks for

Section 2.1 expects a submitted build to be final and tested: no crashes, no placeholder text, no broken links, and content the reviewer can actually load. Apple also uses 2.1 when the reviewer could not get past the first screen, which is why "we were unable to review your app" messages usually carry this number.

A web-wrapped app has a special property here: it is only as complete as the URL it loads at the moment of review. If your deployment was mid-build, your free-tier database paused or a certificate expired, the reviewer saw a blank WebView and wrote a 2.1 rejection. The binary was fine; the web app was not reachable.

The five 2.1 messages we see most, and their cause

Blank or white screen at launch

The page did not load before the splash disappeared, the URL redirected to a login that failed, or WebKit blocked mixed content (an HTTPS page loading HTTP scripts). Fix: production URL, HTTPS everywhere, splash shown until the page is ready.

App crashed on launch

Rare for WebViewGold builds and usually a project edit: a deleted Info.plist key such as the tracking usage description, a push SDK enabled without its ID, or an accented Product Name. Fix: compare your Config.swift and Info.plist against the original project.

Dead links and 404 pages

Footer links to /blog or /docs that do not exist yet, "Coming soon" pages, menu items the AI tool scaffolded but never finished. Fix: remove or finish every reachable link; reviewers tap all of them.

Placeholder content

Lorem ipsum in an empty state, "Your company name here" in the footer, sample users named Test Test, a Lovable or Bolt badge in the corner. Fix: real copy, real data in the demo account, badge removed.

Reviewer could not log in

Email confirmation never arrived, the demo password had a typo, two-factor codes went to your phone. Fix: a dedicated demo account that is confirmed, long-lived and documented in the review notes.

Make the launch sequence bulletproof in WebViewGold

Each step maps to a Config.swift value or a single check.

  1. Point the app at a production URL

    Not a Lovable preview, a Bolt StackBlitz tab, a Replit .dev address or a Vercel preview with password protection. Use your own domain with a valid certificate (see custom domain before submission) and keep that deployment stable during the review window.

  2. Show the splash until the page is really loaded

    Set splashScreenEnabled to true and remainSplashOption to true so the splash stays until the first page has finished loading; splashTimeout falls back to the native loading indicator if your backend is slow. Keep useLoadingSign (or useLoadingProgressBar) on and match loadingIndicatorColor to your brand. Details: splash screen docs.

  3. Serve everything over HTTPS

    Mixed content is blocked silently by WebKit, so an HTTP image CDN or an HTTP API call produces an empty component with no visible error. Fix the URLs in your web app, then consider blockfaultyandselfsignedhttpscerts and the HTTPS-only transport setting described in the iOS setup docs.

  4. Give offline and error states a face

    Enable offlinelocalhtmlswitch with a small local-html fallback page, set offlinescreenautoretry to true and write friendly screen1, screen2 and offlinebuttontext labels. Reviewers switch on airplane mode on purpose; a native offline screen beats a Safari error page every time. See offline mode for vibe-coded apps.

  5. Prepare the demo account and review notes

    Create a confirmed account with realistic data, disable one-time codes for it, and paste the credentials into App Store Connect. Keep deletecache false for apps with login, or the reviewer is logged out at every launch. The demo account guide has the full checklist.

  6. Test like the reviewer

    Fresh install via TestFlight on a real iPhone and an iPad, airplane mode on and off, every menu item, every form, log out and back in. Ten minutes of this catches most 2.1 findings before Apple does.

Great work! Never coded anything but managed to work with this. Easy and fast! Also with great help from the creators!

Lucas Dubois · CodeCanyon

Things that look fine on your Mac and fail in review

  • Free-tier backends that pause after inactivity (Supabase free projects do this): the first request times out and the reviewer sees an empty screen.
  • Geo-restricted or allow-listed APIs: App Review usually connects from the United States; an EU-only or IP-restricted backend returns nothing.
  • Cookie banners, "Open in app" bars and the "Edit with Lovable" badge covering the first screen (see removing the Lovable badge).

Frequently asked questions

Does a 2.1 rejection mean Apple thinks my app is a bad idea?

No. 2.1 is about completeness and stability, not concept. Once the reviewer can load and use the app, the same submission is judged on the other guidelines.

My Lovable app loads in Safari but not in the WebViewGold app. Why?

The most common reasons are mixed content (HTTP resources on an HTTPS page), a redirect to a preview URL, or cookies being cleared at startup. Check the browser console on a desktop with the same URL, then check deletecache and the offline fallback settings.

Do I need a new build after a 2.1 rejection?

If the problem was on the server (deployment, paused database, dead links), fix the web app, verify it in the installed TestFlight build, and reply in Resolution Center; the binary can stay. If you changed Config.swift or Info.plist, upload a new build with a higher build number.

Three ways to get your app into the stores

Same result, different amount of work on your side. All three come with the approval guarantee and 24/7 human support.

Do it yourself

$109 per platform, one-time

The WebViewGold license: a finished Xcode or Android Studio project. Paste your URL, set name and icon, switch on features, build and submit. Free updates forever.

See plans on the main page

Cloud Builder

$349 per license, one-time add-on

No Mac, no Xcode, no Android Studio: configure in the browser, we build both apps in the cloud and hand them to App Store Connect and the Play Console.

How the Cloud Builder works Try the free demo

Full Service

$698 per platform $798

Send us your URL and icon. Our team configures, builds and delivers your app within 72 hours, white-label, with source projects. Both platforms for $1,158.

Full Service details Powered by WeSetupYourWebViewApp

Winter Sale prices valid until December 31, 2026.

Ready to ship your app?

App Store & Google Play approval guarantee – or your money back within 14 days

Rather hand it over? Full Service: we configure, build and deliver within 72 hours, from $698 per platform. Questions? Chat with us 24/7.

Refunds are granted under the conditions listed in our FAQ: a non-content rejection by Apple and/or Google, claimed within 14 days after purchase.