2

Recently we provided an update to an BB ported application(Android) which is already there in blackberry world. This time we added few more permission in Android application manifest and BB application was signed from a different computer. When users tried to upgrade, they see permission screen(list all the access required for the application), with accept/decline option. When accepted, it shows "Initializing, please wait.." and then simply closes the application.App works fine when users do a fresh install.I tried to do an upgrade in my simulator and it fails with error code -104(which I presume is "INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES" from this link). Is it a problem if we sign the application from different computers? I also came across this link which says it might be a bug.

We cannot afford to do reinstall as users may lose some critical data.Please help me to resolve this issue.

Michael Donohue
  • 11,776
  • 5
  • 31
  • 44
androidGuy
  • 5,553
  • 12
  • 39
  • 56
  • You have wrong certificate and it still let you update on BBW? – Bojan Kogoj May 18 '14 at 22:12
  • I had backed up the certificate(.zip) from my old computer and restored it in my new machine. If the certificate was wrong, then BBW should have stopped the upload. Is there anything else that I should do? I am not able to upgrade from my new machine. It fails with error code -104. – androidGuy May 19 '14 at 07:18
  • I honestly don't know. If it was accepted by BBW then it should work – Bojan Kogoj May 19 '14 at 07:54
  • the only idea I have is to contact BB staff – Bojan Kogoj May 21 '14 at 15:52

4 Answers4

0

It's not a problem to sign with different computers. It's a problem if you sign with a different certificate in release mode. Once you've signed with a release certificate, you cannot pick a different certificate when putting an application in the store. This is because of security reasons. (That's why it's very important to create a certificate with an expiration date far away in the future.)

Source: http://developer.android.com/tools/publishing/app-signing.html#releasemode

Warning: Keep the keystore file you generate with Keytool in a safe, secure place. You must use the same key to sign future versions of your application. If you republish your app with a new key, Google Play will consider it a new app. For more information on settings that must remain constant over the life of your app, see the Android Developer Blog post

Since the whole certificate verification process is part of Android itself, it's logical you see this also on an Android-enabled BlackBerry device.

When it comes to debug signing (local developed applications installed on developer device) you can just uninstall the old application (signed with a different certificate) and install the new application that is signed with the new certificate.

It might be possible that you can also do this with release apps (delete and reinstall), but I haven't tried that yet.

[edit] As mentioned in the comments it's also possible that the app was signed with a debug key (from /.android/debug.keystore) which is different for each developer.

ByteWelder
  • 5,464
  • 1
  • 38
  • 45
  • Did you mean that the latest version was signed with different Android keystore??The blackberry bar file was generated from unsigned apk file. It was never generated from a signed apk. – androidGuy May 26 '14 at 04:59
  • Are you sure it wasn't debug-signed? If not, it might be so that your previously released BAR was made from a signed APK (either with debug or release credentials) by accident. (Last time that I released an APK with the batchbar-signer from BlackBerry, I did use a signed APK for my project) – ByteWelder May 26 '14 at 14:31
  • It indeed was debug-signed but all the previous versions were also debug signed. – androidGuy May 27 '14 at 04:54
  • Then it probably failed due to signing with a different debug key. You could try and fetch the debug.keystore from the user directory (/.android/ on OS X) and copy it to the other machines that you want to sign your app with. – ByteWelder May 27 '14 at 06:38
0

Is this for BB10 or Playbook? If BB10 the first thing I would do is remove this release from App World by changing the devices allowed to just the Porsche Design model.

Then if you can sign it again from the same computer as before and put up this new version in Draft mode for the model that you have. You can then test it by first installing your initial release then the new version that is in Draft mode to see if it works properly.

Here is the way to test apps before releasing them : https://developer.blackberry.com/blackberryworld/testing_apps_with_a_sandbox_user_account.html (you need to wait a few hours after uploading build before trying to install the draft mode build).

Steven K
  • 393
  • 3
  • 12
0

You can check to see if there are any unsupported libraries using the apkbarVerifier tool. My app was using com.google.android.maps package. So, I edited the android manifest file

< uses-library android:name="com.google.android.maps" android:required="false" />

After this I was able to deploy my app. Can you check if any such unsupported libraries are being called by any chance?

Jerin
  • 3,657
  • 3
  • 20
  • 45
0

If you did singed your application with two different certificate then it wont let you to update your current app. You have to make a fresh update or find that old certificate and try same .

dharmendra
  • 7,835
  • 5
  • 38
  • 71