macos - 为什么使用自制软件安装的可执行文件在 MacOS 上受信任?
问题描述
我有一个关于自制软件的愚蠢问题:为什么我通过自制软件安装的可执行文件受 MacOS(网守)信任?即安装后我可以运行一个可执行文件并且没有安全弹出窗口并且不必允许异常 - 为什么会这样?
我最初认为 homebrew 可能会在他们的 CI 中对二进制文件进行签名/公证,但是查看一些随机的可执行文件,它看起来不像他们有签名:spctl -a -v $(which <some-executable-installed-with-homebrew>)
.
编辑:意思是从瓶子安装的可执行文件(预编译的二进制文件,而不是在我的本地机器上编译的源包)
解决方案
使用 curl 下载的 CLI 应用程序没有隔离标志。Home-brew,使用 UNIX 核心工具来下载瓶子,因此他们没有设置这个标志。
Next home-brew 还特别标记二进制文件。
不要将代码签名与公证混淆。
公证是 Apple 担保使用开发证书私钥签名的软件的地方。
根据定义,他们不能对临时签名的软件(如自制瓶)进行公证。
现在,当我的可执行文件未经过公证时,它会以“Killed: 9”终止,无论是否有隔离属性。
这种情况正在发生,我推测是因为这里的二进制文件不是临时签名的。与公证无关。
我敢打赌你在使用 Apple Silicon 对吗?
推荐阅读
- excel - 在 Excel 中从范围创建列表
- python - 当python中的相同请求正在工作时,无法在本机反应中使用aws4上传图片
- c++ - 在 Visual C++ Win 10 中查找蓝牙 RSSI 值
- django - wagtail 2.0的迁移错误
- c# - 程序化 LUIS 培训请求无效
- puppeteer - 使用 Puppeteer 时如何获取 ElementHandle 的类名?
- python - 转换字符串日期,不能用零填充
- apache-spark - 为什么 array_contains 在 SQL 中接受两个参数的列,但在 Dataset API 中不接受?
- php - 如何使用 PHP 在 MongoDB 中查询日期?
- vue.js - 使用 vuetify 表单并排输入