
Browserenginekit
Review and correct an iOS alternative browser engine app’s entitlements, plist, arm64e distribution, and XPC bootstrap before App Store submission.
Overview
browserenginekit is an agent skill for the Build phase that reviews iOS BrowserEngineKit app and extension entitlements, plist capabilities, and XPC process bootstrap.
Install
npx skills add https://github.com/dpearson2699/swift-ios-skills --skill browserenginekitWhat is this skill?
- Maps host entitlement com.apple.developer.web-browser-engine.host and webcontent, networking, rendering extension entitl
- Requires UIRequiredDeviceCapabilities web-browser-engine and arm64e for device distribution (not Simulator-only arm64e)
- Host-brokered anonymous XPC: launch extensions before web content talks to networking/rendering
- Recommends BEAvailability for eligibility instead of hard-coded region checks
- Explicitly rejects WKWebView or SwiftUI WebKit as the alternative engine implementation path
- Setup review covers host plus three extension entitlement types and UIRequiredDeviceCapabilities web-browser-engine
Adoption & trust: 1.2k installs on skills.sh; 713 GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your alternative browser Xcode project has incomplete entitlements, missing web-browser-engine capability, or broken extension launch order before review.
Who is it for?
iOS indie teams implementing a non-WebKit browser engine under Apple’s BrowserEngineKit program.
Skip if: Standard in-app WKWebView pages, Android WebView apps, or teams not targeting alternative-engine entitlements.
When should I use this skill?
When reviewing or fixing an iOS alternative browser engine target’s entitlements, plist, capabilities, and process bootstrap.
What do I get? / Deliverables
You receive a corrected entitlement matrix, Info.plist and build guidance, and a host-brokered XPC bootstrap sequence aligned with BrowserEngineKit constraints.
- Entitlement and capability correction checklist
- Process bootstrap and XPC connection guidance
- Distribution notes for arm64e device builds
Recommended Skills
Journey fit
BrowserEngineKit setup is Build work on the mobile client that must be right before ship-time review and TestFlight. Frontend subphase covers the browser host app, extension targets, and engine process wiring—not backend APIs.
How it compares
BrowserEngineKit compliance review—not a WKWebView or SwiftUI WebKit embedding guide.
Common Questions / FAQ
Who is browserenginekit for?
Swift iOS developers building alternative browser apps who need agent help auditing entitlements, capabilities, and multi-process engine wiring.
When should I use browserenginekit?
Use during Build when configuring extension targets, arm64e distribution, and XPC links before internal QA or App Store review prep.
Is browserenginekit safe to install?
It is documentation-style guidance; review the Security Audits panel on this page and validate all signing settings in Xcode yourself.
SKILL.md
READMESKILL.md - Browserenginekit
{ "skill_name": "browserenginekit", "evals": [ { "id": 1, "prompt": "Review this proposed iOS alternative browser engine setup: the app has only com.apple.developer.web-browser-engine.host, three generic extensions with no type-specific entitlements, no UIRequiredDeviceCapabilities entry, and it launches a content process before connecting networking/rendering. Write a concise setup review with corrected entitlements, Info.plist/build settings, and process-bootstrap guidance.", "expected_output": "A BrowserEngineKit setup review that names the host and extension entitlements, required device capability and arm64e distribution settings, and the host-brokered XPC bootstrap sequence.", "files": [], "assertions": [ "Names com.apple.developer.web-browser-engine.host for the browser app and the webcontent, networking, and rendering entitlements for their respective extension targets.", "Requires UIRequiredDeviceCapabilities to include web-browser-engine and explains arm64e is required for iOS device distribution but not Simulator.", "Explains that the host app launches the extension processes and brokers anonymous XPC endpoints so the web content extension can communicate with networking and rendering.", "Mentions using BEAvailability instead of hard-coded region checks for device eligibility.", "Does not recommend using WKWebView or SwiftUI WebKit as the alternative engine implementation." ] }, { "id": 2, "prompt": "Fix these BrowserEngineKit snippets for iOS 26: a WebContentExtension is declared as `final class MyWebContentExtension: WebContentExtension { override func handle(...) }`; the XPC handler calls xpc_connection_resume; file access sends a .withSecurityScope bookmark and calls startAccessingSecurityScopedResource; memory transfer entitlements are set to true; and rendering enables .coreML without availability checks.", "expected_output": "A correction review that updates extension conformance, XPC activation, file bookmark handling, memory attribution entitlement values, and Core ML feature availability.", "files": [], "assertions": [ "Corrects WebContentExtension to be a protocol conformance with handle(xpcConnection:) and no override.", "Uses xpc_connection_activate for BrowserEngineKit XPC connection handling.", "Uses a minimal bookmark from the host app and resolves it with .withoutUI in the extension, then stops accessing the security-scoped resource.", "States memory transfer_send and transfer_accept entitlement values should be the host browser app bundle identifier rather than true.", "Guards RenderingExtensionFeature.coreML / enableFeature(.coreML) with iOS 26.2+ availability." ] }, { "id": 3, "prompt": "A product team asks whether they should use BrowserEngineKit for an ordinary SwiftUI in-app help center that renders bundled HTML, intercepts app links, and supports OAuth sign-in. They are not building a browser engine. Give routing guidance and say which Apple APIs or sibling skills are more appropriate.", "expected_output": "Boundary guidance that avoids BrowserEngineKit for ordinary embedded web content, points to SwiftUI WebKit or authentication APIs, and keeps BrowserEngineKit scoped to approved alternative browser engines.", "files": [], "assertions": [ "Says BrowserEngineKit is not the right tool for an ordinary in-app help center or OAuth flow when the app is not implementing an approved alternative browser engine.", "Recommends SwiftUI WebKit/WebView or WKWebView-style embedded web APIs for app-owned HTML content.", "Recommends ASWebAuthenticationSession or authentication-focused guidance for OAuth rather than embedded browser-engine plumbing.", "Explains that BrowserEngineKit is for entitlement-approved alternative browser engines with separate web content, networking,