无法使用协同设计签署我的应用程序

Unable to sign my app with codesign

我已经非常成功地将我的 Jar 编译成一个应用程序,然后制作一个 DMG 文件以将其安装在 Mac 上。我现在正在尝试签署它,但没有运气 % codesign -s

我认为我的语法是正确的(在此示例中,我用我的名字 0000000000 掩盖了我的实际通用名):

codesign -s "Developer ID Application: My Name (0000000000)" XMarker.app

结果是:

XMarker.app: 代码对象根本没有签名 在子组件中:/Users/myname/Desktop/XM-dev/XLIFF2Modules/XMarker.app/Contents/PlugIns/jdk1.8.0_40.jdk

如果我测试一下,果然如此:

codesign -d --verbose=4 XMarker.app XMarker.app: 代码对象根本没有签名

如果有人能告诉我我做错了什么,我将不胜感激

试试“--deep”。

即:

codesign --deep -s "Developer ID Application: My Name (0000000000)" XMarker.app

Apple recommends against doing "--deep" for production releases,更喜欢在将它们嵌入到您的最终应用程序之前签署单个组件(例如 "jdk1.8.0_40.jdk")。

感谢 Michael Dautermann!你的线索让我走上了正确的道路!

走“--deep”不是正确的方法,因为我们仍然没有通过

spctl --assess --type execute XMarker.app test. 

但他回答的第二部分让我找到了有效的方法。

因此,为了确保其他遇到此问题的人可以获得准确、孤立的答案,以下是有效的方法:

cd /Users/myname/Desktop/XM-dev/XLIFF2Modules/XMarker.app/Contents/PlugIns/

codesign -s "Developer ID Application: My Name (0000000000)" jdk1.8.0_40.jdk


cd /Users/myname/Desktop/XM-dev/XLIFF2Modules

codesign -s "Developer ID Application: My Name (0000000000)" XMarker.app

codesign -d --verbose=4 XMarker.app

[收到正确签名应用的确认]

spctl --assess --type execute XMarker.app

[没有收到任何错误 = 确认应用程序将通过]

[以下我还没有做,但希望成功-如果没有,我会编辑这部分]

spctl --assess --type install XMarker.dmg