How it works

The life of a patch, from your terminal to your users' phones.

Releases and patches

A release is a build you put in the App Store or Play Store. Build it with overpush release so OverPush knows exactly what shipped.

A patch belongs to exactly one release and carries the Dart changes you've made since that release. Patches are numbered 1, 2, 3… within each release. Each patch includes every change since the release, not just since the previous patch, so a device can always go straight to the newest one.

When you run overpush patch

  1. The CLI checks that your changes can go out as a patch. If you changed native code or assets, it stops and tells you.
  2. It builds the patch for the release you're targeting.
  3. It publishes the patch, and OverPush signs it with your app's key.

On your users' devices

  1. Check. When the app opens, it checks in the background for a new patch for its release.
  2. Verify. It confirms the patch is genuine, is meant for this app and release, and arrived intact. Anything that fails is ignored.
  3. Download. The patch downloads in the background. Users don't see anything.
  4. Apply. The next time the app starts, it runs the patched code from the very first screen.
  5. Health check. If the patched app fails to start properly, the device goes back to the shipped code. See Automatic rollback.

A patch is never applied to an app that's already running. Users never see the screen change in front of them.

Platforms

Releases and patches work the same way on both platforms. Platform-specific notes: iOS · Android.