# Patch Docs > Over-the-air code updates for native Swift iOS apps. Compile changed Swift to WebAssembly and ship it without App Store review. Generated from the docs page tree — do not edit by hand (scripts/gen-llms.mjs). ## Start here - [Patch documentation](https://docs.patchrelease.com/): Patch ships over-the-air code updates to native Swift iOS apps: patchcli compiles changed Swift to WebAssembly, PatchSDK runs it on-device, no App Store review. - [Quick Start](https://docs.patchrelease.com/quickstart/): Install patchcli, run patchcli init to register the app and wire the SDK, then ship your first OTA patch with patchcli release — about ten minutes end to end. - [How it works](https://docs.patchrelease.com/how-it-works/): Patch splits one Swift codebase into a WebAssembly module of updatable code and a native shell that holds everything else and calls into it on-device. - [Set up with AI](https://docs.patchrelease.com/ai-setup/): Copy-paste prompts that have Claude Code, Cursor or Copilot install patchcli, run patchcli init, and wire PatchSDK into your Xcode project for you. - [FAQ](https://docs.patchrelease.com/faq/): Short answers about Patch: Apple's rules, what an OTA patch can and cannot change, rollback, the fingerprint, self-hosting, pricing, and supported iOS versions. ## What Patch can change - [What Patch can & can't update](https://docs.patchrelease.com/coverage/): What an OTA patch can and cannot change in a SwiftUI app, with coverage measured on a real validation corpus and the one permanent binary-symbol wall. - [The compatibility fingerprint](https://docs.patchrelease.com/fingerprint/): The native-shell fingerprint is a hash of your signed binary's layout; a patch is served only to matching builds. Why a mismatch happens and how to clear it. - [Glossary](https://docs.patchrelease.com/glossary/): Definitions of the terms Patch uses: OTA update, native shell, fingerprint, PMOD, WasmKit, host bridge, channel, staged rollout, demote-to-native, thunk. ## Reference - [CLI reference](https://docs.patchrelease.com/cli/): Every patchcli command, captured from the binary's own --help: setup, init, prepare, doctor, build, push, release, status, rollback, fingerprint and analyze. - [SDK reference](https://docs.patchrelease.com/sdk/): PatchSDK loads, verifies, hot-swaps and runs OTA modules on-device: configuration, start(), the imperative check/fetch/reload API, and native fallback. ## Shipping - [Deployment channels](https://docs.patchrelease.com/channels/): Run production, staging and beta as separate OTA release streams from one build: set the channel in PatchSDK, then release with patchcli release --channel. - [Staged rollouts & A/B (%)](https://docs.patchrelease.com/rollouts/): Ship an OTA release to a percentage of devices first, watch the failure rate, then widen it in place — bucketing is deterministic, so a device in stays in. - [Release targeting](https://docs.patchrelease.com/targeting/): Limit a release to a device cohort by app version, OS version and cohort label; targeting composes with the rollout percentage, and both must pass. - [Force updates](https://docs.patchrelease.com/force-updates/): Mark a release mandatory and the SDK reports isMandatory, so your app can require the patch before the user continues. Native changes still need the App Store. - [CI/CD](https://docs.patchrelease.com/cicd/): Run patchcli release from CI: gate pull requests on the native-shell fingerprint, ship the patch on merge, and keep publish tokens off developer machines. ## Open source & self-hosting - [Open source](https://docs.patchrelease.com/open-source/): The PatchSDK (MIT) and the engine (Apache-2.0) both live in patch-release/patch-swift: what is in each package, why two licences, and how to build them. - [Running it yourself](https://docs.patchrelease.com/self-hosting/): PatchSDK talks to any base URL, so you can serve modules yourself — reference architectures for GCP, AWS and Azure, and what static hosting cannot do. - [How Patch compares](https://docs.patchrelease.com/compare/): Patch vs CodePush, Expo EAS Update and Shorebird: which stack each one patches, what stays native, the Apple basis, rollback, rollouts and open-source status. - [Apple compliance](https://docs.patchrelease.com/apple-compliance/): Apple permits an app to download and run interpreted code that does not change its primary purpose — the DPLA clause, Guideline 2.5.2 verbatim, and the limits. ## Account - [Team accounts & roles](https://docs.patchrelease.com/team/): A Patch workspace owns apps, releases and members under three ranked roles — owner, admin, member — with last-owner protection on every mutation. - [Plans & billing](https://docs.patchrelease.com/billing/): Hobby is free and serves up to 100 devices; Startup and Enterprise add team members, staged rollouts, channels beyond production, and a larger device fleet. - [Usage & analytics](https://docs.patchrelease.com/usage/): Per-app release health derived from device events: active devices, adoption, error rate and a daily time series, broken down by version, channel and OS. - [Audit log](https://docs.patchrelease.com/audit/): Every action in a Patch workspace — pushes, rollout changes, rollbacks, role and plan changes — is recorded to an immutable trail, in the console or by API. - [Webhooks & error-spike alerts](https://docs.patchrelease.com/webhooks/): Patch sends signed POSTs for release.pushed, rollout.changed, rollback and error_spike, so Slack or on-call hears about a release without polling a dashboard. ## Help - [Troubleshooting](https://docs.patchrelease.com/troubleshooting/): Fixes for the ways a Patch release goes wrong: fingerprint mismatch, a function that stayed native, a missing WASM toolchain, and recovering from a bad patch.