Skip to main content

SwiftPatch Overview

SwiftPatch is an over-the-air (OTA) update platform for React Native. Push JavaScript bundle updates directly to your users' devices -- no app store review required.

Why SwiftPatch?

Microsoft CodePush is deprecated. App store reviews can delay fixes by hours or days. SwiftPatch lets you ship bug fixes and UI changes the moment they are ready.

Key Features

  • One-command deploys -- swiftpatch deploy bundles, uploads, and releases in one step.
  • Differential updates -- Users download only the changed bytes. Patches are 50-360x smaller than a full bundle.
  • Automatic rollbacks -- Built-in crash detection reverts to the last stable version if something goes wrong.
  • Phased rollouts -- Release to 1%, 10%, or 50% of users first. Validate before going to 100%.
  • Bundle signing -- RSA code signing verifies every update before it runs.
  • Real-time analytics -- Track adoption, crashes, and rollbacks per release.
  • CI/CD integration -- Automate deploys with GitHub Actions, CircleCI, Bitrise, or any CLI-compatible pipeline.
  • Multi-platform -- First-class support for both iOS and Android.

Architecture

SwiftPatch has three components:

ComponentPurpose
SDKRuns in your app. Checks for updates, downloads patches, and applies them.
DashboardWeb interface for managing projects, releases, teams, and analytics.
CLICommand-line tool for deploying updates from your terminal or CI pipeline.

How It Works

  1. You run swiftpatch deploy from your terminal or CI pipeline.
  2. The SDK checks for updates on app launch or resume.
  3. If an update exists, the SDK downloads the differential patch.
  4. The patch is applied to the existing bundle on the device.
  5. Your app loads the new code on next resume.
Native code limitation

OTA updates only modify JavaScript code and assets. Native code changes -- new native modules, SDK upgrades, or permission changes -- still require a full app store release.

Supported Platforms

PlatformMinimum Version
React Native0.76+
iOS13.4+
AndroidAPI 24+ (Android 7.0)
Node.js (CLI)18.0+

Next Steps