下载破坏了OSX签名?

5
我刚开始签署我的OSX桌面应用程序,以便可以轻松地安装在OSX 10.8上。我遇到了一个非常奇怪的问题,即签名效果是好的,如果通过DropBox或FTP将dmg传输到Mac,则可以安装,但是如果将dmg上传到服务器,然后使用浏览器下载到Mac,则签名失败(用户看到与未签名的文件相同的错误)。
背景:该应用程序是Java编写的,使用Install4J中的Apple.p12进行签名。有趣的是,对于未签名或下载的DMG,OSX 10.8显示的错误非常奇怪,它说安装程序"已损坏",应将其卸载。
有人知道为什么DMG使用浏览器下载时签名会失败吗?

听起来可能是许多问题之一,从元数据压缩到病毒干扰。 - Wug
似乎下载的文件附带了一些元数据 - 顺便说一下,我检查了文件大小,一个正常的 dmg 文件与一个损坏的文件大小完全相同。 - Jonathan
它只在一个浏览器中不工作吗? - Wug
一切都是最新的/没有病毒。非常好的问题,Wug! - Jonathan
2
Gatekeeper正在使用Mac App Store或Developer ID证书寻找签名。也许“从Install4J中获取的Apple .p12”不是正确的类型。 - JWWalker
显示剩余9条评论
3个回答

4

虽然Ingo已经给出了正确的答案,但我想指出一些导致混淆的因素。看起来当安装程序使用Dropbox/FTP移动时,GateKeeper不会检查签名 - 只有在使用浏览器(或其他特定方法)下载时才会检查。

因此,表面上看运输方式造成了差异,实际上签名根本没有起作用。


3

您正在使用错误的证书进行签名。要为安装4j安装程序进行签名,您需要应用程序ID证书,而不是安装程序ID证书。

不幸的是,如果证书链不完整,安装4j 5.1.1在编译期间不会发出警告。 安装4j 5.1.2将解决此问题。


谢谢Ingo...我应该注意到我打开了一个支持请求,Hannes非常快地帮助了我。支持和产品做得很好,伙计们。 - Jonathan

0
为了澄清,我想补充说明的是,要使用的苹果证书是“开发者ID应用程序”证书。它可以从Mac上的“应用程序”->“实用工具”->“钥匙串访问”中导出。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接