Questions, answered.
Everything people usually ask before they ship their first patch.
The basics
What is OverPush?
OverPush lets you send Dart changes to Flutter apps that are already installed on users' phones, without waiting for an App Store or Play Store review. You fix the bug, run one command, and users get the fix the next time they open the app.
What can a patch change?
Any Dart code: logic, widgets, layouts, text, new screens, new classes. It can't change native code, plugins, assets, or permissions. Those still need a store release, and the CLI tells you when your change includes them.
Do users see anything?
No prompt, no download screen, no restart in front of them. The patch downloads in the background and is used the next time the app opens.
Which platforms are supported?
iOS and Android, in release mode, including App Store, TestFlight, Play Store and sideloaded builds.
Does it work with Play Store app bundles?
Yes. overpush release android builds an app bundle (AAB) by default, and patches reach every phone the Play Store installs it on: 64-bit and 32-bit ARM, and x86_64. APKs work too.
Does it work with obfuscated apps?
Yes, on Android and iOS. Turn obfuscation on in overpush.yaml and every patch for that release is obfuscated the same way.
App stores
Is this allowed on the App Store?
Apple's guidelines allow apps to download code that changes behaviour, as long as it doesn't change the app's main purpose. OverPush patches never contain native code. Use patches for fixes and improvements, not to turn your app into a different app after review.
Is it allowed on Google Play?
Google Play's policies restrict apps that change their behaviour outside of review, and they're applied differently to different kinds of apps. Read the current policy and decide for your app. Patches are best used for fixes, not new features that change what reviewers approved.
Safety
What happens if I ship a broken patch?
If a patch stops the app from starting, the device removes it and runs the shipped code again, on its own. You can also revoke a patch with one command, and devices stop using it the next time they open the app.
Can someone else push code to my app?
No. Every patch is signed with a key that belongs to your app, and your app only accepts patches signed with it.
What happens offline?
The app runs whatever it last had: the store code or the last patch it verified. It checks for patches again when it's back online. Automatic rollback works offline too.
Performance
Does it slow my app down?
On Android, patched apps run at full speed. On iOS, code changed in a patch can be slightly slower, but for normal UI and business logic you won't notice.
How big is a patch?
A patch carries only what changed. On Android a small fix is usually a few hundred KB. On iOS the first patch for a release is a couple of MB, and every patch after that is usually tens of KB. Either way it downloads once, in the background.
Does it make my app bigger?
Only by the size of the OverPush package, which is small.
Using it
Can I patch an app that's already in the store?
Only if that build was made with overpush release. Builds made with plain flutter build need one more store update first.
What happens when I upgrade Flutter?
Ship a store release with the new Flutter version. Your older releases can still receive patches. On iOS, check the version is supported first: today that is Flutter 3.41.4. Android works with any version.
Does it work in CI?
Yes. Every command runs without prompts with --yes. See the CI guide in the docs.
Do I need my own server?
No. OverPush hosts your patches and the dashboard.
Can my whole team use it?
Yes. Put your apps in an organization and add teammates by email. Each person gets a role: viewers only look, developers release and patch, admins also manage the team. An activity log shows who did what.
Pricing
Is there a free plan?
Yes. Hobby is free forever for one app and 5,000 patch installs a month. See pricing.
What counts as a patch install?
One device downloading one patch. Opening the app and checking for updates is always free.
How much do the paid plans cost?
Pro is ₹999 / $15 a month for 60,000 patch installs and unlimited apps. Business is ₹7,999 / $99 a month for 5,00,000 installs, your whole team and an activity log. Yearly billing gives you 2 months free. See pricing for everything included.
Do you charge in rupees?
Yes. Teams in India pay in rupees, plus 18% GST with a GST invoice. Other countries pay in US dollars.
No questions match that. Try another word, or ask us.
Still curious?
The docs go deeper, or write to us and a person will answer.