尝试为PlayBook签名和部署的多个问题

时间:2012-06-30 21:28:03

标签: submit code-signing blackberry-playbook

我花了好几天时间尝试在RIM Vendor Portal上提交我的应用程序。

我可以建造它。我可以使用debugtoken.bar在我的设备上运行它。

当我尝试将其提交到供应商门户网站时,我得到了可怕的“某些文件缺少签名”错误。

我构建了我的application.bar文件(实际命名为QuoteUnquote.bar),然后用以下代码签名:

"C:\Program Files (x86)\Research In Motion\BlackBerry WebWorks SDK for TabletOS 2.1.0.6\bbwp\blackberry-tablet-sdk\bin\blackberry-signer" -verbose -cskpass ******** -keystore sigtool.p12 -storepass ******** "C:\work\word\quotes\platform_airplay\build_smartquotes-airplay_vc10\deployments\default\playbook\release\QuoteUnquote.bar" RDK

"C:\Program Files (x86)\Research In Motion\BlackBerry WebWorks SDK for TabletOS 2.1.0.6\bbwp\blackberry-tablet-sdk\bin\blackberry-signer" -keystore sigtool.p12 -storepass ******** "C:\work\word\quotes\platform_airplay\build_smartquotes-airplay_vc10\deployments\default\playbook\release\QuoteUnquote.bar" author

我确认签名的.bar文件中的META-INF文件夹中有所需的五个文件。

当我在没有-verbose选项的情况下验证它时,它只是说“.bar Verified”。当我使用-verbose选项验证它时,验证工具似乎崩溃:

C:\work\word\quotes\platform_airplay\PlayBook>"C:\Program Files (x86)\Research In Motion\BlackBerry WebWorks SDK for TabletOS 2.1.0.6\bbwp\blackberry-tablet-sdk\bin\blackberry-signer" -verify -keystore sigtool.p12 -verbose "C:\work\word\quotes\platform_airplay\build_smartquotes-airplay_vc10\deployments\default\playbook\release\QuoteUnquote.bar"

        2240 Sat Jun 30 00:31:16 PDT 2012 META-INF/MANIFEST.MF
        1287 Sat Jun 30 00:31:16 PDT 2012 META-INF/AUTHOR.SF
         710 Sat Jun 30 00:31:16 PDT 2012 META-INF/AUTHOR.EC
        1287 Sat Jun 30 00:31:02 PDT 2012 META-INF/RDK.SF
         280 Sat Jun 30 00:31:02 PDT 2012 META-INF/RDK.EC
           0 Tue Jan 01 00:00:00 PST 1980 META-INF/
           0 Tue Jan 01 00:00:00 PST 1980 native/
barsigner error: java.lang.NullPointerException

所以这不是很有帮助。我不知道-verify工具是否只是片状,或者.bar文件的某些问题是否导致它崩溃,或者是什么。

这一切都非常令人沮丧,因为我过去成功签名并提交了.bar文件。我现在不知道我在做什么。

正如我所说,我已经坚持了好几天。如果你能给我指点,那就太棒了。如果我可以发送我的.bar文件,你可以告诉我它有什么问题,那会更好。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

我解决这个问题的方法是像往常一样签署.bar(RDK和作者)然后将.bar文件重命名为.zip并将所有文件解压缩到一个临时目录中。

使用7Zip I然后使用此命令重新压缩所有文件:

7z a -tzip <AppName>.bar *.* -r

将重新压缩所有文件并删除目录名称的条目。

对其运行验证:

blackberry-signer -verbose -verify <AppName>.bar

只要你正确签署了应用程序,你应该看到可爱的消息: 信息:酒吧经过验证。

提交它然后离开!

答案 1 :(得分:2)

我已经弄明白这里发生了什么。问题是世界上有两种.zip文件,那些目录在.zip文件的目录中获得自己的条目,以及那些不在.zip文件目录中的文件。这是一个难题,因为(据我所知),大多数查看.zip文件的工具都没有说明目录是否有自己的条目 - 它们只是使用GUI文件夹图标显示目录,如Windows资源管理器或其他

此处给出了解决方案:http://supportforums.blackberry.com/t5/Native-Development/Error-while-uploading-Invalid-signature-file-digest-for-Manifest/td-p/1623873

它提供了一个java程序,用于从提取的内容重建.zip,并使用该特定的java库重建.zip不包含文件夹作为自己的条目。

出现这个问题有两个原因:

(1)RIM Vendor Portal提交工具检查文件中的每个项目是否都已正确签名,并且它显然在内容目录中看到了这两个目录条目并因为没有签名而吓坏了,因此“一些文件(原文如此)缺少签名。“事实上,它似乎只是注意到那些是零长度的目录条目,并且无论如何都没有任何东西可以签名,只是放手。这样可以避免一塌糊涂。

(2)制作.bar文件的Marmalade工具会创建一个包含这些目录条目的zip。有点棘手的是,就我所知,它不会在每个人的系统上创建这些条目,只是在某些条目上。还有其他Marmalade用户显然没有遇到这个问题。我不知道它是否与Marmalade工具正在使用的底层.zip库有关,无论是.jdk的一部分,是Marmalade使用的python系统的一部分,还是什么。但它似乎在不同的系统上表现得不同。

因此,RIM和Marmalade都应该包含有关此信息。当RIM给出“某些项目缺少签名”的错误时,它应该指定这些缺少签名的零长度目录条目(或者它根本不会将其视为错误,如上所述)。 Marmalade应该告诉所有正在处理PlayBook提交内容的用户。

答案 2 :(得分:0)

好的,不要使用这种方法....它验证并允许你在RIM方面提交但是他们会抱怨你在签名后修改了.bar文件这一事实! !