BlackBerry Ported Android Application Upgrade Issue

494 Views Asked by At

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.

4

There are 4 best solutions below

4
ByteWelder On

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.

0
Steven K On

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).

0
Jerin On

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?

0
dharmendra On

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 .