gon是一个简单而简洁的工具,用于 为macOS 签名和公证 CLI二进制文件。gon可用作CLI,可以手动运行或在自动化管道中运行。它也可以作为Go库来嵌入到用Go编写的项目中。gon可以签署和公证用任何语言编写的二进制文件。
从macOS Catalina(10.15)开始,Apple 要求对Mac App Store之外分发的所有软件进行签名和公证。未正确签名或未经过公证的软件将显示一条 错误消息 ,唯一可行的选项是“移至Bin”。即使从命令行也无法运行该软件。该 解决方法是痛苦的用户。gon可以帮助您自动化公证过程。
要安装gon,请从版本页面下载适合您平台的版本。这些都经过签名并经过公证,可以立即在macOS 10.15+上使用。
您还可以使用Go 1.13或更高版本使用standard从源代码进行编译 go build。请确保已启用Go模块。
gon需要一个配置文件,该文件可以指定为文件路径或通过stdin传入。该配置指定gon将用于签名和打包文件的所有设置。
gon必须在XCode 11.0或更高版本的macOS机器上运行。代码签名,公证和打包都需要仅在macOS计算机上可用的工具。
执行后,gon将配置的文件签名,打包和公证为请求的格式。gon如果0成功,将退出并显示退出代码,如果失败,则将显示其他任何值。
使用之前gon,您必须获得开发者ID证书。为此,您既可以通过网络也可以通过Mac上的本地Xcode进行操作。如果已经安装Xcode,则使用起来会更容易。
要验证您是否正确执行了此操作,可以检查钥匙串:
您应该看到一个或多个证书,并且至少一个应该是您的Developer ID Application证书。十六进制字符串前缀是您可以在配置文件中用来指定身份的值。
配置文件可以指定报告的许可的允许/拒绝列表,特定依赖项的许可替代等。配置文件格式为HCL或JSON。
您可以配置gon为对已经签名的文件进行公证。如果要集成gon到可能已经支持创建pkg,app等文件的现有构建管道中,这将很有用。
由于公证要求还对软件包的有效负载进行签名,因此此模式假定您已经对有效负载以及软件包本身进行了代码签名。gon 不会在notarize区块中签名您的包裹。请不要将此与“何时source设置” 混淆,gon它本身 会创建您的软件包,在这种情况下,它也会对它们进行签名。
除了指定之外,您还可以使用它source。在这种情况下,我们将对其中指定的文件进行代码签名和打包source,然后对结果以及notarize块中的结果进行公证。
HCL中的示例,然后是JSON中的相同配置:
请注意,您可以指定多个notarize块来同时对多象限文件进行公证。
更多使用方法可以查看官方文档
更多更优质的资讯,请关注我,你的支持会鼓励我不断分享更多更好的优质文章。
推荐阅读:苹果8和苹果7