Getting started
Install the CLI, connect a Flutter project, ship a release, then publish a patch. This takes about 15 minutes, plus however long your normal release build takes.
Before you start
- A Flutter app that already builds in release mode.
- A Mac, Windows or Linux computer.
- A Mac (Apple silicon or Intel) with Xcode, because Apple only builds iOS apps on a Mac.
- An OverPush account. Create one in the dashboard.
-
Install the CLI
$ curl -fsSL https://overpush.in/install.sh | bashIn PowerShell:
> irm https://overpush.in/install.ps1 | iexiOS releases and patches need a Mac; use the macOS tab there.
The installer picks the right build for your computer, checks it downloaded correctly, and puts
overpushon yourPATH. You don't need a Dart SDK to run it. Open a new terminal, then check it worked:$ overpush --version -
Log in
$ overpush loginThis opens your browser so you can sign in. You only do this once per computer. Run
overpush whoamito see which account you're using. -
Create the app in the dashboard
In the dashboard, click New app and copy its app id. It looks like
cp_7Kq9xZ2mWv4TnR8bL3sYd6HfJp1cXa5E.Working with others? Create a team organization first and add them under Members. See Console & team.
-
Connect your project
From the root of your Flutter project (the folder with
pubspec.yaml):$ overpush init $ flutter pub add overpush
initasks for the app id and writesoverpush.yaml. Commit both that file and thepubspec.yamlchange.app_id: cp_7Kq9xZ2mWv4TnR8bL3sYd6HfJp1cXa5E
-
Build a release
$ overpush release androidBuilds an app bundle at
build/app/outputs/bundle/release/app-release.aab, signed with your release key, and records it. Upload that file in Play Console: Test and release → pick a track → Create new release → upload → roll out.The full flow, including trying the release on your own phone first, is in Android.
$ overpush release ios $ overpush releases archive
The first command builds the IPA and records it. The first run downloads build tools for your Flutter version, once; iOS currently needs Flutter 3.41.4, 3.47.5, 3.47.6, 3.47.7, 3.47.8 or 3.47.9. The second opens the build in Xcode's Organizer: click Distribute App, then App Store Connect and Upload.
The full flow, including trying the release on your own iPhone first, is in iOS.
Only OverPush release builds can be patched. A build made with plain
flutter builddoesn't include the release record that patches are checked against. -
Change some Dart and patch
Edit any Dart code, for example some text on a screen, then run:
$ overpush patch android --dry-run # optional: build + check, don't publish $ overpush patch android
$ overpush patch ios --dry-run # optional: build + check, don't publish $ overpush patch ios
The CLI builds the change against the release, checks that nothing outside Dart changed, and publishes it. OverPush signs it on publish.
-
See it on a device
Open the app on a device that has the release installed. It downloads the patch in the background. Close the app fully and open it again, and the patched code runs.
Patches take effect on the next cold start. Sending the app to the background and back isn't enough. Swipe it away in the app switcher and reopen it.