Safe area overlap
Fixed headers under the status bar or Dynamic Island, bottom tabs under the home indicator, modals cut off at the top. Fix with the insets below.
App Store rejection
A 4.0 rejection says the app does not look or behave like an iOS app: text under the Dynamic Island, a bottom nav hidden by the home indicator, links you cannot hit with a thumb, or a desktop site squeezed onto an iPad. Web apps fix this in CSS; WebViewGold adds the native pieces.
From $109 one-time per platform, or let our team do it all from $698.
Section 4 covers design. Apple expects apps to be useful and intuitive and to follow the Human Interface Guidelines; a reviewer rejects under 4.0 when the interface is of insufficient quality: clipped content, overlapping system UI, controls that are too small, layouts that do not fit the device, or an experience that clearly was not made for a phone. It is a judgment call, so the rejection text usually contains a screenshot with a red circle, which tells you exactly what to fix.
For web-wrapped apps the root causes are predictable: the page ignores the safe areas, buttons were designed for a mouse, breakpoints stop at tablet width, and the iPad gets either a stretched phone layout or the desktop site with tiny type.
Fixed headers under the status bar or Dynamic Island, bottom tabs under the home indicator, modals cut off at the top. Fix with the insets below.
Links and icons smaller than 44 by 44 points, menus that need hover, checkboxes at 14 px. Enlarge in CSS, add padding, drop hover-only states.
Sidebars, data tables with horizontal scroll, 12 px text, cookie banner over the fold, footer with forty links. Hide or rebuild for small screens.
A phone layout stretched to 13 inches, or the desktop site with content hugging one edge. Give the tablet its own breakpoint or restrict the app to iPhone; see iPad support for web-wrapped apps.
By default autoAdjustSafeAreaInsets is true: WebViewGold keeps your page between the status bar and the home indicator, and statusBarBackgroundColor, darkModeStatusBarBackgroundColor and statusBarTextColor paint the status bar in your colors. This alone fixes most header overlaps.
For content behind the status bar, set transparentStatusBar to true and autoAdjustSafeAreaInsets to false, add viewport-fit=cover to your viewport meta tag, and pad fixed elements with env(safe-area-inset-top) and env(safe-area-inset-bottom) as in the snippet below.
If your bottom navigation sits under the home indicator and you cannot change the site today, set bottombar to true with bottombarBackgroundColor (and iPadBottombar if needed). WebViewGold adds a native bar below the page. Documentation: modify the safe area.
Set showNavFooter to true and define the tabs in FooterBar.json. A native tab bar respects the safe area by design and makes the app feel like an app, which also helps with Guideline 4.2.
Add rules to custom.css in the WebViewGold project; they apply only inside the app, so the website stays untouched (custom CSS docs). Aim for 44 px minimum height and width on buttons, tabs and icon links.
Set preventZoom to true (no accidental pinch), preventoverscroll to true (no rubber-band gap above your header) and disablecallout to true (no link preview on long press). Set orientationipad to what your layout supports.

With a good optimized version of your web app you can have a stunning mobile app within a couple of minutes. Additionally to that the customer service is very nice and very helpful! I can just recommend WebViewGold :-)
Put this in custom.css (app-only) or your global stylesheet. The viewport meta tag in your HTML head needs viewport-fit=cover for the env() values to be non-zero.
/* head: meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" */
:root {
--safe-top: env(safe-area-inset-top, 0px);
--safe-bottom: env(safe-area-inset-bottom, 0px);
}
.app-header { position: sticky; top: 0; padding-top: calc(12px + var(--safe-top)); }
.bottom-nav { position: fixed; bottom: 0; padding-bottom: calc(8px + var(--safe-bottom)); }
/* 44 x 44 pt minimum targets */
button, .btn, .tab, .icon-link { min-height: 44px; min-width: 44px; }
body { font-size: 16px; -webkit-text-size-adjust: 100%; }
/* website-only elements, hidden inside the app */
.cookie-banner, .site-footer, .store-badges, .open-in-app-bar { display: none !important; }Yes, by default. autoAdjustSafeAreaInsets keeps the page inside the safe area and the status bar takes your configured color. You switch to manual CSS handling only for edge-to-edge designs.
You can restrict the target to iPhone in Xcode. Apple still runs the app on an iPad in compatibility mode, but then judges it as an iPhone app. A proper tablet layout is the better long-term answer.
Modals positioned with top: 0 ignore the status bar inset. Pad the modal with env(safe-area-inset-top) or keep autoAdjustSafeAreaInsets on so the WebView itself starts below the status bar.
Same result, different amount of work on your side. All three come with the approval guarantee and 24/7 human support.
$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$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$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 byWinter Sale prices valid until December 31, 2026.
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.