我在用同步,这是一款用于在两台或多台计算机之间同步文件的应用程序。我相信 Syncthing (在 github 上)需要被允许接受传入网络连接才能正常工作。
Mac OS X 有一个内置防火墙,它会不断以弹出窗口的形式询问我是否允许 syncthing 接受传入的网络连接。通常,对于一个应用程序,只会询问一次,但出于某种原因,这个弹出窗口每天至少出现 4 次。
这可能与自动更新功能有关,该功能会导致新的二进制文件不时出现(类似于 Google Chrome 所做的)。但是,与我收到的弹出窗口数量相比,此应用程序的更新频率要低得多。
知道我可以做些什么来让 Mac OS X 停止向我询问有关特定应用程序的这个问题吗?或者根本没有办法解决这个问题?
如果还有一个默认选择,以防我离开机器,那就太好了。你知道该如何实现吗?没有关闭防火墙?
答案1
这可能是由于数字签名缺失或错误造成的。例如苹果解释:
如果您运行未在防火墙列表中列出的未签名应用程序,则会出现一个对话框,其中包含允许或拒绝该应用程序连接的选项。如果您选择允许,OS X 会签名该应用程序并自动将其添加到防火墙列表中。
[...]
某些应用在打开时会检查其自身的完整性,而无需使用代码签名。如果防火墙识别出此类应用,则不会对其进行签名。相反,每次打开应用时都会出现“允许或拒绝”对话框。升级到由其开发人员签名的应用版本即可避免这种情况。
如果应用程序是签名,但应用程序本身的签名被破坏,例如甚至 iTunes。
您可以通过在终端中运行以下命令来检查签名(这里我不确定您的应用程序的名称):
codesign --verify -vv /Applications/Syncthing.app/
或者,也许可以在防火墙设置中删除该应用程序,然后看看再次接受是否足以停止 OS X 提示您?或者也许通过这些设置明确添加它?
至于默认设置:确保选项“自动允许签名的软件接收传入连接”已启用:
答案2
本指令永久禁用这个烦人的弹出窗口,该解决方案适用于所有缺少或具有错误数字签名的应用程序。
简而言之:
sudo codesign --force --deep --sign - path-to-the-app.app