Skip to main content

Your first update

You've completed Quickstart and wrapped your app with <SwiftPatchProvider>. Now let's ship a change.

1. Make a JS change

Edit any JavaScript file. For example, change a button color, update a string, or fix a typo. Anything JavaScript-only works. Native changes still require an app store release.

2. Deploy

swiftpatch deploy -p ios --hermes

For Android, swap -p ios with -p android. To deploy both:

swiftpatch deploy -p ios --hermes && swiftpatch deploy -p android --hermes

3. See it on-device

Launch your app. Within seconds:

  • The SDK calls the check-for-update API with your device's current bundle hash.
  • The API responds with a delta patch descriptor.
  • The SDK downloads the patch, verifies it, applies it, and re-verifies the result.
  • The built-in <UpdateBanner> slides in: "New update available · v1.2.3 · Apply now | Later".

Tap Apply now — the app restarts on the new JS bundle. Typically fewer than 2 seconds end to end.

4. Check the dashboard

Open app.swiftpatch.io and find your release. You'll see:

  • Release id, hash, size.
  • Real-time adoption graph.
  • Per-device download / apply status.
  • Crash rate (zero so far, hopefully).

Iterate

That's the loop. Make a change → swiftpatch deploy → users get it within seconds. No App Store review. No TestFlight. No Play Store delay.

Next steps

  • Staged rollouts — ship to 5% first, then 25%, then 100%.
  • CI/CD — automate deploys from GitHub Actions.
  • UI components — customize or replace the built-in banner.
  • Error codes — know what to look for when things go wrong.