问题描述
我有一个关于自制软件的愚蠢问题:为什么我通过自制软件安装的可执行文件受到 MacOS(看门人)的信任?即安装后,我可以运行一个可执行文件并且不会出现安全弹出窗口并且不必允许异常 - 为什么会这样?
我最初认为 Homebrew 可能会对其 CI 中的二进制文件进行签名/公证,但查看一些随机的可执行文件,它们似乎没有签名:spctl -a -v $(which <some-executable-installed-with-homebrew>)
。
edit:意思是从瓶子安装的可执行文件(预编译的二进制文件,不是在我的本地机器上编译的源包)
解决方法
使用 curl 下载的 CLI 应用程序没有隔离标志。 Home-brew 使用 UNIX 核心工具下载瓶子,因此它们没有设置此标志。
下一个 home-brew 也会临时签名二进制文件。
不要将代码签名与公证混淆。
公证是 Apple 对使用开发证书私钥签名的软件进行担保的地方。
根据定义,他们不能对特别签名的软件(如自制酒瓶)进行公证。
现在,当我的可执行文件未经过公证时,无论是否存在隔离属性,它都会以“Killed: 9”终止。
这正在发生,我推测是因为这里的二进制文件没有特别签名。与公证无关。
我敢打赌您是在使用 Apple Silicon 对吗?