已签名的应用程序仍然不受信任

时间:2014-01-11 04:12:43

标签: java macos maven certificate code-signing

我正在尝试使用codesign在OSX中签署我的Java应用程序。我已经向Apple支付了100美元的赎金,并获得了我的代码签名证书。然后,我使用这样的codesign强制它签署我之前使用osxappbundle Maven插件创建的应用:

codesign -f -s "Peter Brewer" FHAES.app

当我尝试通过执行以下操作来验证签名时,这似乎完成了工作:

codesign --display --verbose=4 FHAES.app

...我收到以下回复:

Executable=/Applications/FHAES.app/Contents/MacOS/JavaApplicationStub
Identifier=FHAES
Format=bundle with Mach-O universal (i386 x86_64)
CodeDirectory v=20100 size=174 flags=0x0(none) hashes=3+3 location=embedded
Hash type=sha1 size=20
CDHash=de2cd9909fcc4bfab1f690c518a6c6c3b3097372
Signature size=4311
Authority=Mac Developer: Peter Brewer (N35745G8TD)
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=Jan 10, 2014, 4:46:57 PM
Info.plist entries=10
Sealed Resources version=2 rules=12 files=2
Internal requirements count=1 size=164

除非我误解,否则这似乎表明它已经成功签署了Apple授权的证书。然而,当我尝试启动应用程序时,我得到通常的“无法打开,因为它来自一个身份不明的开发人员”错误。

谁能告诉我我做错了什么?

如果有人可以在Linux中实施codesign,我会永远感激。我鄙视Apple破坏我的一键式跨平台构建系统,甚至比勒索我还要支付他们的证书还要多!

1 个答案:

答案 0 :(得分:5)

developer.apple.com我的眼球捅了几个小时后,我终于找到了我需要的信息。整个Apple生态系统正在推动开发人员使用Xcode和“他们的做事方式”,并需要继续投资Apple硬件和软件。例如,教程视频只能在最近的Mac上查看(即比我有权访问的2.5岁系统更新)。但无论如何 - 我不会用SO来表达我的挫败感。

我之前尝试失败的原因是因为我使用了错误的Apple证书。上述证书是用于签署应用程序的证书,然后该应用程序被发送给Apple,后者已准备好通过App Store发布该应用程序。由于我不打算通过Apple“出售”我的开源应用程序,我需要另一种称为开发者ID证书的证书,以便我能够在我自己的网站上分发我的应用程序。

要获得开发者ID证书,您需要设置配置文件,注册开发机器并跳过Apple开发人员网站上的各种其他环节。在计算机上安装此证书后,您可以通过执行codesign -f -s "Developer ID" myapp.app

在命令行上签名

当我运行codesign --display --verbose=4 myapp.app时,它会报告权限值现在以“开发人员ID ...”而不是“Mac开发人员......”开头。这是GateKeeper不要为您的用户提供冠状所需的。

相关问题