时不时地,我会在我的 Macbook 上使用访问网络的程序——无论是 Firefox,还是索尼的 Reader Library——真的,它似乎就像它可能发生任何访问网络的程序 – 并且到目前为止我还没有发现什么原因(也就是说,这种情况间歇性地发生),OS X 防火墙对话框弹出来问我问题:
[OS X 防火墙对话框] 您是否希望应用程序“Reader Library.app”接受传入网络连接?单击“拒绝”可能会限制应用程序的行为。此设置可以在“安全”偏好设置的“防火墙”窗格中更改。[拒绝] [允许]
只是它实际上不允许我在它消失之前点击任何东西!那是:
- 对话框弹出,...
- 然后消失通过它自己一秒钟后,
- 然后弹出再次,...
- 然后一秒钟后自动消失,
- ETC。
这种情况发生几次后才停止。如果我可以点击“允许“并让这该死的东西永远消失。
在安全偏好设置我已经打开防火墙”在“,并且我希望保持这种状态。
有谁见过这个问题、找到根源并找到解决方案或解决方法吗?
更新:我发现这些消息线程证实了这个问题:MacRumors.com - 防火墙应用程序例外:对话框奇怪地消失, 和Apple - 支持 - 讨论 - 烦人的防火墙允许/拒绝对话框。截至 2010 年 3 月 27 日,这两个链接仍未报告任何解决方案。
答案1
我在使用通过 rvm 安装的 ruby 时遇到了这个问题。
这是非常有价值的,而且我认为是正确的方法。
我重新签署了我的 rvm/ruby 二进制文件,一切正常。
相关部分:
您可以通过执行以下操作来检查签名信息:
codesign-dvvvv /路径/到/应用程序
然后通过 Keychains 应用程序创建用于代码签名的自签名证书(详情请参阅链接)。然后:
重新签署申请非常简单。
- 打开终端。
- 键入“codesign -f -s(证书名称)/path/to/application
答案2
有几个人提出了解决方案,但没有明确说明,因此这里是:
OS X 中的每个应用程序都应由开发人员签名。此签名可确保应用程序的内容未被更改。防火墙会在其进程中验证此签名。 当签名验证过程失败时,您将收到此允许/拒绝错误消息每次使用该程序时,即使您在对话框中单击了允许。
为什么签名验证失败?发生这种情况的原因有很多,但主要是因为您在某个地方更改了 /Applications/YourProblemApplication.app 容器的内容。例如,如果您使用单语或类似应用程序删除其他语言文件以节省磁盘空间,则您已修改应用程序的内容。如果您使用 CandyBar 或 IconDubber 等程序更改图标 (.icns) 文件,则您也更改了应用程序的内容。
解决此问题最简单的方法是删除产生此错误的 .app(务必清空回收站)。重新安装 .app,这次不要修改内容。
顺便说一句,整个签名过程可能会导致其他应用程序出现大量错误,尤其是像 VPN 这样注重安全的应用程序。例如,我的 Cisco Unified Personal Communicator 在运行 Monolingual 后停止工作(但只会在控制台日志中生成拒绝错误)。
答案3
症状
根据之前发布的 Apple 支持论坛链接,该弹窗仅针对某些应用显示。添加永久例外并不能解决该问题。提问者报告称,该弹窗出现在全部应用程序,尽管是间歇性的。
诊断
防火墙似乎无法正确识别应用程序,或无法在检测到应用程序后做出错误操作。有些人认为并非所有应用程序都会导致这种情况,这种想法进一步证实了这种观点。
测试 为了确定防火墙中哪个部分被破坏了,我们可以测试几种场景:
- 一台完全干净的计算机,只安装了一些基本应用程序。这将保证系统范围的配置以及用户配置都是干净的。
- 新用户。如果受影响的人可以创建新帐户,而防火墙不会在该帐户下失效,则该用户的配置无效,需要重建(即
cp
从新用户开始)。- 如果我们选择这个选项,我们还可以
diff
检查配置文件是否存在异常。
- 如果我们选择这个选项,我们还可以
- 禁用防火墙。这很可能可以解决问题。如果不能,我们就完蛋了。禁用和启用也可能解决问题,但我们需要测试是否确实如此。不过,我不知道为什么这样做会有效。
额外信息
有些人建议关闭防火墙,但报告问题的人似乎都没有这样做(或者他们没有报告),所以我们不知道这是否能解决问题。
答案4
我发现,如果我进入某个应用程序并调出打开或保存对话框,我可以等到“您是否要...”窗口弹出后立即按下该esc键。完成此操作后,该应用程序中不再出现问题,即使我退出并重新启动它也是如此。