Google Play

Updating a ZIP-to-APK app

Your pages changed and the app needs the new version. What must stay the same between builds, what must go up, how the update reaches sideloaded phones versus Play, and why users' saved data survives — or does not.

5 min read Updated September 2026

Quick answer: to update a ZIP-to-APK app, upload the new ZIP to the builder, keep the same package name and the same signing key, set a higher versionCode (and a new versionName), and rebuild. The new APK installs over the old one and keeps its data; on Google Play, upload the new AAB as a new release. Change the package name or the key and Android treats it as a different app.

The two things that must not change

The one thing that must go up

versionCode. An integer; the installer and Play both refuse a build whose code is not higher than the one they know. Use any scheme that only rises — sequential is simplest for ZIP rebuilds; the version planner shows three. Keep a note of the last one in your project folder. Change versionName too ("1.0" → "1.1") so people can see which version they have.

Everything else can change

The app name, the icon, the splash, the orientation, the content — all free to change between builds. A rebranding is an update, not a new app, as long as the package name and key stay.

Updating a sideloaded app

  1. Build the new APK.
  2. Replace the file at the URL people downloaded from — same link, same QR code, new file.
  3. Tell users to download and open it. Android shows "Do you want to update this app?" and installs over the existing one. Data is kept.

There is no automatic update for sideloaded apps. If that matters, the app itself can check a version file on your server when online and show a "New version available" link; that is ordinary JavaScript in your pages, fetching an https:// URL.

Updating on Google Play

  1. Build the new AAB with Pro, same keystore, higher versionCode.
  2. Play Console → Production (or a test track) → Create new release → upload → release notes → review and roll out.
  3. Review is usually quicker than the first submission. Staged rollout (e.g. 20% first) is available for production.

Users receive it through Play's normal auto-update within a day or so.

What happens to saved data

localStorage, IndexedDB and anything else the WebView stored live in the app's private directory. An in-place update leaves that directory alone. Data is lost only when the app is uninstalled — which happens implicitly if a user has to remove the old version because the key or package name changed. Preserve identity, preserve data.

When an update is refused

MessageCause
App not installed (phone)Different signing key, or versionCode not higher
Version code X has already been used (Play)Reused or lower versionCode
Your Android App Bundle is signed with the wrong key (Play)Different upload key; request a reset if lost
Package name mismatch (Play)Different package name — this is a new app to Play

Checklist for every update

Questions people ask

Do I need to change the versionName too?

Not technically — only versionCode is enforced. But users and Play show versionName, so bump it ('1.1') so people can tell the versions apart.

Will users lose their saved data on update?

No, as long as the package name and signing key are unchanged and the new APK installs over the old one. localStorage and IndexedDB are preserved.

Can I change the app name or icon in an update?

Yes. Neither is part of the app's identity. Only the package name and the signing key must stay fixed.

How do sideloaded users get the update?

They install the new APK the same way they installed the first. Put the file at a stable URL (or QR code) and tell them; the same link then always delivers the latest version.

Read next

Ready to turn your ZIP into an APK?

Upload the ZIP of your HTML project, pick a name and an icon, and download a signed Android APK. Free, in the browser, no Android Studio.

Convert ZIP to APK