We are building an Android app using the same .jks keystore file and alias on two different machines (Dev1 and Dev2). The keystore and passwords are 100% identical, and both developers are using the same keyAlias, storePassword, and keyPassword.
Developer 1 builds version 1 of the app (release variant).
Developer 2 builds version 2 of the app using the same keystore.
When we try to install version 2 over version 1, we get the error:
App not installed. The package conflicts with an existing package. or sometimes: INSTALL_FAILED_UPDATE_INCOMPATIBLE
We checked:
Package name is the same
Version code is increased
We suspect the issue might be caused by:
Different Android Studio versions
Different Gradle or AGP versions
Or possibly, AGP not applying the signingConfig the same way
What could cause this signature mismatch, even when using the same .jks file? How can we make sure .apk builds on different machines are fully compatible and signed identically?