Quick answer: The device already has your package installed, signed with a different key (debug versus release, another machine's debug key, or Play's app signing key), and Android will not update across signatures. Uninstall it completely with adb uninstall your.package, including from work profiles, then install again. Long term, share one debug keystore across the team and give dev builds a different package name.
You build, run adb install or press Build and Run, and the install fails. Android is enforcing one of its core security rules: an app update must be signed by the same key as the installed version. The fix takes ten seconds; avoiding it every day takes a little setup.
The exact error
adb: failed to install game.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.studio.game signatures do not match previously installed version; ignoring!]
Newer Android versions word it as “Existing package com.studio.game signatures do not match newer version; ignoring!”. Unity's Build and Run, Godot's one-click deploy and Unreal's launch all surface the same failure.
Why the signatures differ
- A release build is installed and you are installing a debug build, or the reverse.
- A teammate's build is installed. Each machine generates its own debug keystore (
~/.android/debug.keystore), so two developers' debug builds are signed differently. - The version installed came from Google Play (including internal testing). With Play App Signing, Play re-signs it with the app signing key, which is not the upload key you sign local builds with.
- You regenerated or lost a keystore.
Fix 1: uninstall completely, then install
adb uninstall com.studio.game
adb install game.apk
If the uninstall says it succeeded but the install still fails, the app is still installed for another user or profile (a work profile, a second user, or “Uninstall for this user” on some phones). List users and remove it everywhere, or use the device's app settings and choose Uninstall for all users:
adb shell pm list users
adb shell pm list packages --user 10 | grep studio
adb uninstall --user 10 com.studio.game
Uninstalling deletes the app's local data, including saves, so back them up first if you need them.
Fix 2: stop it from happening every day
- Share one debug keystore. Commit a team debug keystore (not your release key) to the repo or a shared drive and point every machine's builds at it. Unity: Player Settings > Publishing Settings > custom keystore. Godot: the export preset's debug keystore fields or Editor Settings. Unreal: Project Settings > Platforms > Android > Distribution Signing.
- Give dev builds their own package name, such as
com.studio.game.dev. Dev and store builds then install side by side and never collide. - Keep release signing in CI, with the upload key stored as a secret, so no laptop ships a store build signed differently.
Related: INSTALL_FAILED_VERSION_DOWNGRADE
If the signatures match but the installed version code is higher, Android refuses the downgrade. For debug builds you can allow it with adb install -r -d game.apk; for anything else, bump the version code.
Builds testers can actually install
Signing mix-ups are also why testers end up on old builds without realizing. Bugnet imports your Google Play and App Store reviews every hour with device and OS details, files one- and two-star reviews that describe a bug as reports automatically, and its SDKs for Unity, Godot and Unreal mobile builds capture errors with the device attached. Every report carries the build version, so you can tell when a bug report comes from a stale install.
Related problems
- How to Fix “INSTALL_PARSE_FAILED_NO_CERTIFICATES” When Installing Android Game Builds
- How to Fix an Android Keystore Signature Mismatch on Update
- What to Do When You've Lost Your Android Keystore (or Its Password)
- How to Fix “Version code 42 has already been used” Upload Errors on Google Play
Frequently asked questions
What does INSTALL_FAILED_UPDATE_INCOMPATIBLE mean?
The device already has the package installed with a different signing key, and Android only allows updates signed with the same key.
How do I fix INSTALL_FAILED_UPDATE_INCOMPATIBLE?
Uninstall the existing app completely with adb uninstall, including from other users or work profiles, then install the new build.
Why does my build from Google Play conflict with my local build?
With Play App Signing, Play signs the app with its own app signing key, while local builds are signed with your upload or debug key.
One shared debug keystore, a .dev package name, and this error mostly disappears.