App Review 4.2 guide

WebView apps and minimum functionality

WebView technology is not an automatic rejection reason. Standalone value, completeness, and a coherent mobile workflow are what matter.

LaunchLint Academy

16 minute readEdited and source-checked by Rene DresselEditorial policy
Mobile app extends a basic website with clear native value and complete functionality
A WebView app is not rejected merely because of its technology. Risk rises when it only repackages a website, offers little lasting utility, appears incomplete, or repeats the same template without distinct content.
TL;DR

The short answer

A WebView app is not rejected merely because of its technology. Risk rises when it only repackages a website, offers little lasting utility, appears incomplete, or repeats the same template without distinct content.

  • Define the mobile job, make it reachable in the first review path, and show which workflows, offline behavior, device integrations, or content go beyond a browser bookmark.

Evidence required for release

Do not review minimum functionality and standalone app value as an isolated switch. Connect it to minimum functionality and standalone app value, the signed production artifact, and the values in the store console. Record which file produces the setting, whether a framework or plugin can alter it during the build, and how you inspected the resolved value. A plausible entry in source control does not prove that the uploaded binary contains the same configuration.

Keep three evidence layers separate for minimum functionality and standalone app value: statically visible project configuration, behavior on a clean device, and external settings in Apple Developer, App Store Connect, or Play Console. The review is reliable only when those layers describe the same release candidate. Give every mismatch an owner and a stop condition instead of assuming a default will be correct.

Evidence required for release

  • Production value for state the core value identified
  • Responsible project file or store setting linked
  • Resolved native configuration inspected
  • Signed artifact checked on a clean device
  • iOS and Android differences recorded
  • Every mismatch has an owner and stop condition

1. State the core value

Name the user, recurring problem, and outcome. A list of technical features is not a product job.

Do not review state the core value as an isolated switch. Connect it to minimum functionality and standalone app value, the signed production artifact, and the values in the store console. Record which file produces the setting, whether a framework or plugin can alter it during the build, and how you inspected the resolved value. A plausible entry in source control does not prove that the uploaded binary contains the same configuration.

Evidence required for release

  • Production value for state the core value identified
  • Responsible project file or store setting linked
  • Resolved native configuration inspected
  • Signed artifact checked on a clean device
  • iOS and Android differences recorded
  • Every mismatch has an owner and stop condition

2. Compare the browser alternative

Ask what users lose if they simply add the website to their home screen. Justify the app from their perspective.

Do not review compare the browser alternative as an isolated switch. Connect it to minimum functionality and standalone app value, the signed production artifact, and the values in the store console. Record which file produces the setting, whether a framework or plugin can alter it during the build, and how you inspected the resolved value. A plausible entry in source control does not prove that the uploaded binary contains the same configuration.

Evidence required for release

  • Production value for compare the browser alternative identified
  • Responsible project file or store setting linked
  • Resolved native configuration inspected
  • Signed artifact checked on a clean device
  • iOS and Android differences recorded
  • Every mismatch has an owner and stop condition

3. Use mobile capabilities meaningfully

Push, camera, offline, sharing, widgets, or local data add value only when they improve a complete workflow.

Do not review use mobile capabilities meaningfully as an isolated switch. Connect it to minimum functionality and standalone app value, the signed production artifact, and the values in the store console. Record which file produces the setting, whether a framework or plugin can alter it during the build, and how you inspected the resolved value. A plausible entry in source control does not prove that the uploaded binary contains the same configuration.

Evidence required for release

  • Production value for use mobile capabilities meaningfully identified
  • Responsible project file or store setting linked
  • Resolved native configuration inspected
  • Signed artifact checked on a clean device
  • iOS and Android differences recorded
  • Every mismatch has an owner and stop condition

4. Remove incomplete states

Eliminate placeholders, dead links, empty sections, internal toggles, demo copy, broken test accounts, and unreachable features.

Do not review remove incomplete states as an isolated switch. Connect it to minimum functionality and standalone app value, the signed production artifact, and the values in the store console. Record which file produces the setting, whether a framework or plugin can alter it during the build, and how you inspected the resolved value. A plausible entry in source control does not prove that the uploaded binary contains the same configuration.

Evidence required for release

  • Production value for remove incomplete states identified
  • Responsible project file or store setting linked
  • Resolved native configuration inspected
  • Signed artifact checked on a clean device
  • iOS and Android differences recorded
  • Every mismatch has an owner and stop condition

5. Make templates distinct

White-label and AI-built apps need distinct content, branding, store assets, and value rather than mass-produced variants.

Do not review make templates distinct as an isolated switch. Connect it to minimum functionality and standalone app value, the signed production artifact, and the values in the store console. Record which file produces the setting, whether a framework or plugin can alter it during the build, and how you inspected the resolved value. A plausible entry in source control does not prove that the uploaded binary contains the same configuration.

Evidence required for release

  • Production value for make templates distinct identified
  • Responsible project file or store setting linked
  • Resolved native configuration inspected
  • Signed artifact checked on a clean device
  • iOS and Android differences recorded
  • Every mismatch has an owner and stop condition

6. Prepare the review path

Give the reviewer stable access to the central function and explain hardware, location, or other prerequisites.

Do not review prepare the review path as an isolated switch. Connect it to minimum functionality and standalone app value, the signed production artifact, and the values in the store console. Record which file produces the setting, whether a framework or plugin can alter it during the build, and how you inspected the resolved value. A plausible entry in source control does not prove that the uploaded binary contains the same configuration.

Evidence required for release

  • Production value for prepare the review path identified
  • Responsible project file or store setting linked
  • Resolved native configuration inspected
  • Signed artifact checked on a clean device
  • iOS and Android differences recorded
  • Every mismatch has an owner and stop condition

7. Align the store promise

Title, description, and screenshots cannot advertise functions missing from the submitted build.

Do not review align the store promise as an isolated switch. Connect it to minimum functionality and standalone app value, the signed production artifact, and the values in the store console. Record which file produces the setting, whether a framework or plugin can alter it during the build, and how you inspected the resolved value. A plausible entry in source control does not prove that the uploaded binary contains the same configuration.

Evidence required for release

  • Production value for align the store promise identified
  • Responsible project file or store setting linked
  • Resolved native configuration inspected
  • Signed artifact checked on a clean device
  • iOS and Android differences recorded
  • Every mismatch has an owner and stop condition

8. Respond to rejection precisely

Map the cited rule to the product path, improve demonstrable utility, and answer with exact steps rather than broad arguments.

Do not review respond to rejection precisely as an isolated switch. Connect it to minimum functionality and standalone app value, the signed production artifact, and the values in the store console. Record which file produces the setting, whether a framework or plugin can alter it during the build, and how you inspected the resolved value. A plausible entry in source control does not prove that the uploaded binary contains the same configuration.

Evidence required for release

  • Production value for respond to rejection precisely identified
  • Responsible project file or store setting linked
  • Resolved native configuration inspected
  • Signed artifact checked on a clean device
  • iOS and Android differences recorded
  • Every mismatch has an owner and stop condition

Frequently asked questions

Does Apple reject every WebView app?

No. Quality, standalone value, completeness, and implementation matter.

Is push notification enough native functionality?

Not automatically. One device feature does not turn a thin website into a useful app.

Are white-label apps prohibited?

Not categorically, but repetitive variants and misleading store presence are risky.

Can LaunchLint score product value automatically?

Only partially. It can find signals, placeholders, and contradictions; genuine utility and usability need human review.

Official primary sources

This article is based on the following official primary sources. Store rules can change, so verify the current version before every submission.