使用appbundler使用捆绑的jre for mac签署java应用程序

时间:2015-11-26 15:17:29

标签: java macos code-signing app-bundle

我创建了一个java应用程序,并按照这些教程将其与jre捆绑并转换为.app包: https://www.jemchicomac.com/signing-a-sandbox-app-in-osx/ http://speling.shemnon.com/blog/2014/04/10/getting-your-java-app-in-the-mac-app-store/

我可以使用他们的建议成功创建.app包。 问题是,当我尝试使用codesign命令签署myApp.app包时,它会失败并显示以下错误: 代码对象根本没有签名 在子组件中:MyApp.app/Contents/PlugIns/jre/Contents/Home/jre/lib/calendars.properties的路径

我删除了calendars.properties进行测试,但是另一个文件又出现了错误。我找到的唯一方法是删除整个jre文件夹表单包并且codesign正常工作。然后我分别签署jre可执行文件并再次将jre文件夹复制到myApp.app的Plugins文件夹中。 谁能告诉我这是什么问题?以及如何使用上面链接中提供的方法进行签名? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

经过长时间的调查后,我发现在与苹果工程师谈话时,“jre”子文件夹需要有一个文件扩展名才能使编码符号正常运行。在我的情况下,改变从Contents / PlugIns / jre到Contents / PlugIns / jre.bundle的路径解决了这个问题。也许代码签名已经修复了,但如果没有,我希望这有用。