如何对Xcode上的第三方CLI进行签名并启用强化的运行时?

时间:2018-10-20 13:01:28

标签: objective-c xcode macos codesign osx-gatekeeper

我的项目需要Ghostscript来完成许多任务,因此我将gs CLI工具添加到了项目资源中。但是,当我尝试对项目应用程序进行公证时,Xcode会向我显示以下内容:

enter image description here

我认为这可能是因为ghostscript便携式CLI是Internet上的第三方程序,并且没有代码,也未启用强化的运行时。在最新的MacOS Mojave上,我必须对应用程序进行公证,以避免在用户打开DMG文件时网守显示警告。但是,如果应用程序包含第三方CLI,则似乎很难通过公证。

有解决方案吗?

2 个答案:

答案 0 :(得分:5)

我终于找到了解决方案。通过以下方式签名CLI:

codesign --force --options runtime --sign "Developer ID Application: COMPANYNAME" ./CLITool

然后我成功地将应用程序存档并上传到Apple进行公证。

答案 1 :(得分:1)

启用强化运行时是通过 --options runtime 实现的。

我发现 this guide 对 Mac 商店外应用分发的公证和代码签名过程非常有帮助。

在为它启用强化运行时后,我的应用程序崩溃了。这个 comment 和这个 other one 当时帮助我解决了我的问题。