Guideline 2.5.6

Guideline 2.5.6 - Software Requirements: Non-WebKit Browser Engine Without Entitlement

High SeverityHard FixTypical Fix: 1-3 days0 Reports
Also known as:App uses non-WebKit browser engine for web contentApp embeds Chromium or alternative rendering engineApp does not use WebKit framework for web browsingAlternative browser engine used without required entitlementApp must use WKWebView or SFSafariViewController

Our Take

Apple is rejecting your app because it uses a browser engine other than WebKit for rendering web content, and it does not have the required entitlement. Historically, Apple required all web content rendering on iOS to use WebKit. With iOS 17.4 in the EU (under the Digital Markets Act), Apple introduced a process for alternative browser engines, but it requires a specific entitlement and is limited to EU distribution. Outside the EU, all web browsing and web content display must still use WKWebView or SFSafariViewController, both of which are built on WebKit. This means you cannot ship your own Chromium-based or Gecko-based rendering engine in an App Store app distributed globally. This rejection commonly hits: (1) apps that embed Chromium Embedded Framework (CEF) or similar engines, (2) cross-platform frameworks that accidentally include a non-WebKit renderer, (3) apps attempting to ship an alternative browser globally without the EU-specific entitlement, and (4) apps using deprecated UIWebView (which Apple now rejects separately, but it surfaces as a 2.5.6 concern in some cases).

Resolution Guide

01

Replace with WKWebView

Migrate all web content rendering to WKWebView. This is Apple's modern WebKit-based web view and supports the vast majority of web standards.

02

Use SFSafariViewController for external links

If you're opening external web pages (not your own web app), SFSafariViewController provides the full Safari experience including content blockers and autofill.

03

Remove embedded engines

If your app bundles a Chromium, Gecko, or other non-WebKit engine, remove it from the project. Check Frameworks folder and build phases for non-WebKit rendering libraries.

04

Check cross-platform frameworks

If you're using Electron, .NET MAUI, or similar frameworks, verify the iOS build uses WebKit for rendering. Some frameworks have configuration options for this.

05

For EU browser developers

If you're building a genuine alternative browser for EU distribution, apply for the Web Browser Engine entitlement through developer.apple.com. This requires agreeing to specific terms and is only for apps distributed in the EU.

Prevention

  • Always use WKWebView or SFSafariViewController for web content on iOS
  • Audit cross-platform framework configurations to ensure they use WebKit on iOS
  • Keep track of Apple's evolving EU browser engine policies
  • Example Rejection Email

    From:Apple App Review Team
    Subject:Guideline 2.5.6 - Software Requirements: Non-WebKit Browse
    Guideline 2.5.6 - Performance - Software Requirements Your app uses a web browser engine other than WebKit for displaying web content. Specifically, the app embeds a Chromium-based rendering engine for its in-app browser feature. Apps that browse the web must use the appropriate WebKit framework and WebKit JavaScript. Alternative browser engines are only permitted in the European Union with the required managed entitlement. Next Steps: Please revise your app to use WKWebView or SFSafariViewController for all web content display. If you are developing an alternative browser for distribution in the EU, apply for the Web Browser Engine entitlement through the Apple Developer portal.

    Consider Appealing

    If you are building an alternative browser for EU distribution, explain this and reference the Web Browser Engine entitlement application process. If the non-WebKit engine was included accidentally (e.g., through a cross-platform framework), explain the fix.

    Generate Appeal

    Before & After

    Before — Rejected

    Electron-based app compiled for iOS including the Chromium rendering engine in the app bundle, with a 180MB binary size

    After — Approved

    App rebuilt as native iOS app using WKWebView to display the same web-based UI, or rebuilt with Capacitor/Ionic which uses WKWebView on iOS. Binary size reduced to 25MB.

    What changed: On iOS, all web rendering must go through WebKit. Cross-platform frameworks that bundle their own engine will be rejected.

    Community Solutions · 0

    Sign in to share your solution.

    More Guideline 2 (Performance) rejections

    View all Guideline 2 rejections