BlackBerry Ported Android应用程序升级问题

时间:2014-05-17 09:48:42

标签: android blackberry-10 blackberry-eclipse-plugin blackberry-android

最近,我们提供了一个BB移植应用程序(Android)的更新,该应用程序已经存在于黑莓世界中。这次我们在Android应用程序清单中添加了更多权限,BB应用程序是从另一台计算机上签名的。当用户尝试升级时,他们会看到权限屏幕(列出应用程序所需的所有访问权限),并具有接受/拒绝选项。当接受时,它显示“正在初始化,请稍候..”然后只需关闭application.App在用户进行全新安装时工作正常。我试图在我的模拟器中进行升级,但它失败了,错误代码为-104(我从这个link推测是“INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES”。如果我们从不同的计算机上签署应用程序是否有问题?我也遇到了这个link,它说这可能是一个错误。

我们无法承担重新安装的费用,因为用户可能会丢失一些关键数据。请帮我解决此问题。

4 个答案:

答案 0 :(得分:0)

使用不同的计算机进行签名并不是问题。如果您在发布模式下使用其他证书进行签名,则会出现问题。使用发布证书签名后,在将应用程序放入商店时,您无法选择其他证书。这是出于安全原因。 (这就是为什么创建一个过期日期很远的证书非常重要。)

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

  

警告:将使用Keytool生成的密钥库文件保存在保险柜中,   安全的地方。您必须使用相同的密钥来签署以后的版本   你的申请。如果您使用新密钥重新发布应用,请使用Google   Play会将它视为一款新应用。有关设置的更多信息   必须在应用的生命周期内保持不变,请参阅Android   开发者博客文章

由于整个证书验证过程都是Android本身的一部分,因此您可以在支持Android的BlackBerry设备上看到此信息。

在调试签名(安装在开发人员设备上的本地开发的应用程序)时,您只需卸载旧应用程序(使用其他证书签名)并安装使用新证书签名的新应用程序。

您可能也可以通过发布应用程序(删除并重新安装)执行此操作,但我还没有尝试过。

[edit]正如评论中所提到的那样,应用程序也可以使用调试密钥(来自/.android/debug.keystore)进行签名,这对每个开发人员来说都是不同的。

答案 1 :(得分:0)

这适用于BB10或Playbook吗?如果BB10我要做的第一件事就是通过将允许的设备更改为Porsche Design模型从App World中删除此版本。

然后,如果您可以像以前一样从同一台计算机上再次签名,并在草图模式下为您拥有的模型添加此新版本。然后,您可以首先安装初始版本,然后安装处于“草稿”模式的新版本,以查看它是否正常工作。

以下是在发布应用之前测试应用的方法: https://developer.blackberry.com/blackberryworld/testing_apps_with_a_sandbox_user_account.html(在上传构建之前需要等待几个小时才能尝试安装草稿模式版本)。

答案 2 :(得分:0)

您可以使用apkbarVerifier工具检查是否存在任何不受支持的库。我的应用使用的是com.google.android.maps包。所以,我编辑了android清单文件

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

在此之后,我能够部署我的应用程序。您是否可以检查是否有任何此类不受支持的库被调用?

答案 3 :(得分:0)

  

如果您使用两种不同的证书对您的申请进行了烧录   那么它不会让你更新你当前的应用程序。您必须进行全新更新或找到旧证书并尝试相同。