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

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

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.

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.