Rebuild the app with the same package name, signed with the same key, and a higher version code, then distribute the new APK (or upload a new AAB to Google Play). Android installs it over the old version and keeps the app's localStorage and IndexedDB data. Changing the package name or signing key makes it a different app that cannot replace the old one.
| Change | Result |
|---|---|
| Same package + same key + higher version code | Updates in place, data kept |
| Same version code or lower | Install blocked (downgrade) |
| Different signing key | 'App not installed' — conflicts with existing package |
| Different package name | Installs as a second, separate app |
Install errors are decoded in the APK install errors reference.
Frequently asked questions
Will users lose saved data when I update?
No, as long as it is an in-place update. Data is only removed on uninstall or 'Clear storage'.