3

We have recently purchased a game from another company and have done some updates to it with all the information converted over to our side.

The game is made and updated using Unity and is for the Android platform.

After doing all of these updates in Unity and using the Keystore that they supplied us (along with the passwords for the Keystore and the Key), we built the APK with no errors.

When I go into the Google Developer account and try to upload the new APK for testing, I get an error at the end of the upload that tells me that the certificate used in the APK is different than the one originally used on the other APKs so it can not upload the APK.

I have searched everywhere and people are saying that it is the Keystore and the key but I have the correct Keystore and Key because Unity would not allow me to build outside of debug testing without it (I tested this by putting a wrong password in for the Key and Unity gave me errors saying I had the wrong password).

I am using - Macbook Pro with OSX 10.8.3 - Unity Version 4.1.3

I have all the correct SDKs for Android and the manifest package name matches the Bundle Identifier for the project. (The Bundle Identifier also matches the correct one attached to the Google Dev site.

Please help.

freddrock
  • 171
  • 1
  • 3
  • 10
  • 1
    install the one from the market, and then try to install your signed apk with `adb install YourApp.apk` if it doesn't allow the install then the app on the market wasn't actually signed with the same key. "`but I have the correct Keystore and Key because Unity would not allow me to build outside of debug testing without it`" Unity will not let you build if you get the password wrong, but I don't think it is checking the previous version to ensure that the keys are the same like the market is. You may be using a valid password but have been supplied an incorrect key. – FoamyGuy May 24 '13 at 01:31
  • I tried to install it and it says: "Failure [INSTALL_FAILED_ALREADY_EXISTS] Doesn't this mean that they key is fine? – freddrock May 24 '13 at 03:46
  • not exactly. There is an extra parameter you have to pass to the adb command I think. Sorry forgot about that. – FoamyGuy May 24 '13 at 13:12
  • Any chance you know what the extra parameter is? – freddrock May 24 '13 at 13:30
  • just found it `adb install -r YourApp.apk` the `-r` is for reinstall which you have to use if there is a version already installed on the device you are pushing to. – FoamyGuy May 24 '13 at 13:32
  • You are correct. It now gives me a Failure[INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES] So does this mean that the Keystore that I was given is incorrect? – freddrock May 24 '13 at 14:39
  • yes, that is what it means. – FoamyGuy May 24 '13 at 14:59
  • That is interesting because it was the only Keystore in the main folder and we were given the passwords for everything as well. Kind of at a loss here unfortunately. – freddrock May 24 '13 at 15:11
  • Went back to the default package they sent us. Apparently the keystore that was showing was of a different name than the one that they packaged with it. So @FoamyGuy was correct. Now I have to get that keystore in order for the product to be uploadable! – freddrock May 24 '13 at 17:17

1 Answers1

1

Unity will not stop you from building out an APK signed with a keystore that is different that what a previously built APK was signed with. So the unfortunate truth is that the version currently on Google Play was indeed signed with a different keystore. I've run into this problem myself in the past.

If you don't find the keystore that the app was originally signed with, you will need to pull down the current app and upload a new app.

I try to follow the practice of making the sure the production keystore is stored within the project's repository in an easy-to-find location.

joelg
  • 1,094
  • 9
  • 19