gpt4 book ai didi

xcode - Mac OS Gatekeeper 阻止签名的命令行工具

转载 作者:行者123 更新时间:2023-12-01 23:41:12 24 4
gpt4 key购买 nike

我在 Xcode 中有一个被 Gatekeeper 阻止的“命令行工具”目标(不是应用程序包)。多年来,我一直将此工具用作 PostCheck 地址簿插件的简单安装程序。

2012 年,我使用我的 Apple 开发人员 ID 对该工具进行了签名,这样它就不会被 Gatekeeper 阻止,并且一切顺利。我现在注意到 macOS Sierra (10.12) 现在被阻止了,在测试期间我还发现它也被 10.11.6 阻止了。 (当我说被阻止时,我的意思是用户必须右键单击它并选择“打开”,而不是在警告对话框中给出选项。)它在 10.11.2 中仍然可以正常工作! – 如果我记得,Mac OS X 10.11.4 有一个错误,即使非应用程序包已签名,也会阻止它们,但我认为该问题已在 10.11.5 中解决。也许有关系?

我已经尝试在 Sierra 下使用 Xcode 8 重新编译和重新签名可执行文件。我尝试在二进制文件中嵌入一个 Info.plist(我以前没有这样做过)。我试过存档,而不仅仅是“构建”,以防它是调试与发布配置的问题。我花了两天时间搜索验证我的可执行文件是否正确签名的方法,似乎结果相互矛盾……

有这个:

codesign --verify --verbose <executable> 
<executable>: valid on disk
<executable>: satisfies its Designated Requirement

和这个:
spctl --assess --verbose <executable> 
<executable>: rejected (the code is valid but does not seem to be an app)
source=matched cdhash

和这个:
spctl -a -v --raw <executable> 
<executable>: accepted
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>assessment:authority</key>
<dict>
<key>assessment:authority:flags</key>
<integer>0</integer>
<key>assessment:authority:source</key>
<string>allowed cdhash</string>
<key>assessment:authority:weak</key>
<true/>
</dict>
<key>assessment:cserror</key>
<integer>-67002</integer>
<key>assessment:remote</key>
<true/>
<key>assessment:verdict</key>
<true/>
</dict>
</plist>

我想我的部分问题是我不知道在使用有效的 Apple Developer ID 签名后命令行可执行文件应该是什么样子。而且我也不知道这是否是 macOS 问题,无论如何我都无能为力。对于命令行工具和代码签名问题,谷歌也很难找到与代码签名命令行 Unix 可执行文件实际相关的东西。

我很感激对这里可能发生的事情的任何见解。谢谢!

最佳答案

我不想回答我的问题,但万一有人遇到同样的问题:

解决方案是在签名的磁盘镜像上而不是在 zip 文件中分发命令行工具。

我最终测试回 10.11.4 并确认那是问题开始的时候。 (当时我一定是测试不当。)OS X 只是阻止双击 Unix 命令行工具,无论我如何签名。这可能是最好的,因为大多数命令行工具将在 Terminal.app 中运行。

对于 Sierra,事实证明无论如何我都需要签名的 DMG 来绕过 Gatekeeper 的新路径随机化功能。

关于xcode - Mac OS Gatekeeper 阻止签名的命令行工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39811791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com