如何对 macOS 二进制文件进行代码签名以停止防火墙权限请求?

How to code sign macOS binary to stop firewall permissions requests?

Bowtie 应用程序已发布:http://bowtieapp.com。二进制文件可用,但源代码不可用。

macOS Sierra 10.12.5 Beta 上的问题是活动防火墙导致它在每次启动时请求防火墙权限。我怀疑这只能通过代码签名来解决。

有一个旧的修复程序似乎不再有效: https://ivadrenaline.wordpress.com/2015/07/07/do-you-want-the-application-to-accept-incoming-network-connections/

您可以签署框架,但是当您签署整个应用程序时,您将获得:

/Applications/Bowtie.app/: resource fork, Finder information, or similar detritus not allowed

谷歌搜索该错误导致:https://developer.apple.com/library/content/qa/qa1940/_index.html

但是虽然应用程序上的 运行 xattr -cr 导致签名无误地继续进行,但它仍然不会阻止出现防火墙对话框权限请求。

我也尝试了 deep 版本的签名过程,但没有用。

我认为 Bowtie 本身有应用程序和一个辅助应用程序,因此它可能有多个可执行文件,并且与此项目相关:Application with multiple executables appears signed but triggers firewall warning 还: Why is OSX continually asking for firewall permission for my app which is signed? 这个有希望的答案也没有奏效:

解决这个问题的方法是什么?

通过 macOS 系统偏好设置将应用程序手动添加到防火墙排除列表 UI 有效。 .app 很好,不需要找到可执行文件。我没有隔离这些更改,因此可能还需要使用失败的方法对应用程序进行代码签名 and/or 以通过终端手动设置防火墙排除项,正如以下线程中的另一个答案所建议的那样。

如果有人展示了如何正确地对其进行协同设计,我会注明最佳答案。