0

我正在构建一个 Cordova / Blackberry 应用程序,并且正在努力将程序加载到我的设备上进行测试。

当我第一次构建 phonegap 代码时,它需要 54 个代码签名,当运行ant blackberry load-device50 个签名时,每 10 次尝试失败 7 次。(没有响应从 BB 服务器返回,并且它永远不会完成构建)。

在应用程序上做了一些工作后,我今天去设备上测试,突然发现我现在需要 642 个签名。这永远行不通。

黑莓如何决定我需要多少签名?我怎样才能将其恢复到可管理的水平?

4

1 回答 1

1

您的应用程序的大小在很大程度上决定了这一点。

当您构建一个 BlackBerry 应用程序时,它会被打包成一个 .cod 文件。但是,在几乎所有情况下,单个 .cod 文件实际上是一个包含较小 .cod 文件的容器。如果您重命名生成的单个 .cod 文件(例如,从 MyApp.cod 到 MyApp.zip),您实际上可以使用普通解压缩工具将其解压缩,并查看里面的内容。

应用程序的二进制文件越大,在这个外部 .cod 容器中创建的小 cod 文件就越多。我不记得所有的遗留问题,但基本上,构建工具会将应用程序分成许多小代码,以使每个代码保持在大约 64 KB 以下。(我认为这是因为网络下载限制。)所以,应用程序越大,鳕鱼越多。

代码签名将需要应用于每个鳕鱼(我认为每个鳕鱼发生 3 次)。

您的应用程序的总大小将取决于您拥有多少代码,尤其是捆绑资源的大小,例如图像。您当然可以使用更少的图像,并更多地压缩它们(例如使用 PNGCrush)。或者,您可能决定让您的应用在运行时下载这些捆绑的内容。显然,这是用应用程序大小换取运行时性能。我通常不会建议仅仅为了避免 codesigner spam,但它是一种选择。

您用于编译应用程序的操作系统也可能会影响大小。如果您不再需要支持 OS 5.0,并且您一直在使用 6.0 基本 OS 版本进行构建,您可能会考虑降到 5.0 以最小化您的应用程序的最终大小。当然,这假设您可以做到这一点,并且您不依赖于 6.0 或 7.x 功能。

但是,我知道有些人已经停止支持较旧的操作系统版本,而他们可能仍然可以这样做。无论如何,我认为这不会像捆绑的图像那样对您产生重大影响。

顺便说一句,我只是偶尔遇到黑莓代码签名服务器超时的问题。您的开发机器是否有可能存在不稳定的互联网连接?您可以尝试在此处查找有关签名服务器在线状态的近实时信息

这里还有一些其他需要阅读的内容:

http://supportforums.blackberry.com/t5/Java-Development/Issues-with-the-maximum-number-of-CODs-for-an-app/mp/1237881

针对较小的 .cod (.jar) 文件进行优化

http://supportforums.blackberry.com/t5/Testing-and-Deployment/The-maximum-size-of-a-BlackBerry-smartphone-application/ta-p/1300209

于 2013-01-22T02:52:51.477 回答