2

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

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

4

4 回答 4

0

如果您确实使用两个不同的证书对您的应用程序进行了签名,那么它不会让您更新当前的应用程序。您必须进行新的更新或找到旧证书并尝试相同。

于 2014-05-26T10:07:45.080 回答
0

这是 BB10 还是 Playbook?如果 BB10 我要做的第一件事就是通过将允许的设备更改为仅保时捷设计模型来从 App World 中删除此版本。

然后,如果您可以像以前一样在同一台计算机上再次签名,并为您拥有的模型以草稿模式放置这个新版本。然后,您可以先安装初始版本,然后安装处于草稿模式的新版本来测试它,以查看它是否正常工作。

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

于 2014-05-23T11:52:18.820 回答
0

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

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

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

于 2014-05-26T09:36:29.163 回答
0

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

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

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

由于整个证书验证过程是 Android 本身的一部分,因此您在支持 Android 的 BlackBerry 设备上也能看到这一点是合乎逻辑的。

当涉及到调试签名(安装在开发者设备上的本地开发应用程序)时,您可以卸载旧应用程序(使用不同的证书签名)并安装使用新证书签名的新应用程序。

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

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

于 2014-05-23T10:09:10.367 回答