我有用thwate证书签名的java小程序,需要用Apple Developer ID签名。
众所周知,Mac OS X 10.8要求Java应用程序必须使用Apple Developer ID进行签名。Gatekeeper表示,这会导致运行Java小程序时出现一些问题,"无法验证数字签名"。OS X 10.8 Gatekeeper和Java小程序以及Sign Java小程序存在相同的问题,因此它可以在OS X 10.8Mountain Lion和Windows 上工作
我在Oracle的Mac常见问题解答中也发现了这一点:http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/mac-faq.html#gatekeeper
因此,我请求并下载了苹果开发者ID证书到我的Mac,但我找不到任何地方如何用苹果开发者ID签名java小程序。
我试过以下几种:
-
使用代码签名工具在Mac上对小程序进行签名。
codesign -s "Developer ID Application: MyCompany" MyApplet.jar
但是这个命令实际上并没有修改jar文件(没有更改日期、文件大小或二进制内容)。
-
将Apple证书导出到p12并使用jarsigner。我将Apple Root CA、Apple Timestamp Certification Authority和开发者ID Application:MyCompany导出到p12,并以常见方式对我的jar进行签名。
-
将我的thawte证书导入Mac Keychain Access,并将Apple和thawte的证书导出到p12。
这三种方式都没有给我任何好处。当我用小程序打开一个页面时,Gatekeeper仍然说它无法验证。
有人能为我提供如何在小程序上签名的分步说明吗?
哦,没有办法做到这一点=(Java小程序不能参与开发人员ID程序。苹果的答案就在这里https://stackoverflow.com/a/12210534/1068878.
这对你来说可能有点晚了,但如果它对其他人有帮助的话:可以将JAR文件和Java运行时环境捆绑到.app中。然后,你可以使用苹果证书对.app进行签名,就像你用xcode写的一样。搜索"javapackager"(这只是实现这一点的多种方法之一)。理论上,你甚至可以将这样的应用程序提交到应用商店。