Skip to content
Back to journal
iOSApp StoreGuideWebView

How to Pass Apple App Store Guideline 4.2 in 2026 (WebView Apps)

CCode2Native EngineeringEngineering team
2025-01-27

You built a beautiful web app. You wrapped it in a WebView. You submitted it to the App Store. And then you got rejected with this message:

Guideline 4.2 - Minimum Functionality
We found that the experience your app provides is not sufficiently different from a web browsing experience, as it would be if displayed in Safari.

Sound familiar? You're not alone. This is the #1 rejection reason for WebView-based apps. But here's the good news: it's completely fixable.

What Apple Actually Wants

Apple isn't trying to ban WebView apps. They're trying to prevent lazy submissions where someone just wraps a website without adding any value. The key phrase is "native platform integration."

Your app needs to do things a web browser cannot do. Here are the features Apple loves:

Biometric Login

Face ID and Touch ID show you're using native APIs. This is the easiest win.

Push Notifications

APNs integration proves native platform usage. Users expect this anyway.

Offline Mode

Even a basic "No connection" screen shows you handle the offline case.

Secure Storage

Keychain integration for sensitive data. Goes beyond what localStorage can do.

The Minimum You Need to Pass

Apple's own guideline text and the rejection notes reviewers send back point at the same formula:

The Winning Combination

  • Push Notifications — Using OneSignal or APNs directly
  • Biometric Auth — Face ID prompt on login or checkout
  • At least one more — Camera, QR, Location, or Offline mode

Add Biometric Login in 5 Minutes

If you're using a JavaScript bridge (like Code2Native provides), here's all the code you need:

// Add this to your login page
if (typeof Code2Native !== 'undefined') {
// Check if biometrics available
if (Code2Native.canUseBiometric() === 'available') {
showBiometricButton();
}
}
// Handle the button click
async function loginWithFaceID() {
try {
await Code2Native.authenticateBiometric({
title: 'Sign In',
subtitle: 'Use Face ID to access your account'
});
// Success! User is authenticated
autoLogin();
} catch (e) {
// User cancelled or auth failed
}
}

Common Mistakes That Get You Rejected

❌ Not testing on a real device

Simulator doesn't show Face ID properly. Apple reviews on real hardware.

❌ Forgetting to mention features in the description

Reviewers read your App Store description. Explicitly mention "Face ID login" and "Push notifications."

❌ Not using Notes for Reviewer

Add a note like: "This app uses Face ID authentication and native push notifications via APNs."

App Store Connect Pro Tips

  • Screenshots: Include at least one showing a native UI element (Face ID prompt).
  • Description: Add a "Native Features" section listing your platform integrations.
  • Review Notes: Be explicit about your native functionality.
  • Keywords: Don't include "WebView" or "wrapper" — focus on what your app does.

Ready to Build?

Code2Native includes all the native APIs you need to pass Guideline 4.2: Biometrics, Push, Camera, Location, and more.

C

Code2Native Engineering

Engineering team

Written by the Code2Native engineering team — the people who build and operate the cloud build pipeline.