为什么 Mac OS X 防火墙对话框在 Snow Leopard 下反复弹出并自行消失(不让我响应)?

Chr*_*Rea 56 firewall osx-snow-leopard

有时,我会在我的 Macbook 上使用访问网络的程序——无论是 Firefox 还是 Sony 的阅读器库——实际上,似乎任何访问网络的程序都可能发生这种情况——而且我无缘无故地到目前为止可以辨别(也就是说,它间歇性地发生)弹出 OS X 防火墙对话框问我这个问题:

OS X 防火墙对话框:您希望应用程序“Reader Library.app”接受传入的网络连接吗? 单击拒绝可能会限制应用程序的行为。 可以在“安全”首选项的“防火墙”面板中更改此设置。 否认允许

[OS X 防火墙对话框] 是否希望应用程序“Reader Library.app”接受传入的网络连接?单击拒绝可能会限制应用程序的行为。可以在“安全”首选项的“防火墙”面板中更改此设置。[否认允许]

除了它实际上并没有让我在它消失之前点击任何东西!那是:

  • 弹出对话框,...
  • 然后一秒钟后自行消失,
  • 然后再次弹出,...
  • 然后一秒钟后自行消失,
  • 等等。

在停止之前它会发生几次。如果我可以被允许单击“允许”并让该死的事情永远消失,那么被打扰就不会那么令人抓狂了。

安全首选项中,我将防火墙设置为“打开”,我想保持这种状态。

有没有人看到过这个问题,找到了来源,并找到了解决方案或解决方法?


更新:我发现这些消息线程确认了该问题:MacRumors.com - 防火墙应用程序异常:对话框奇怪地消失,以及Apple - 支持 - 讨论 - 烦人的防火墙允许/拒绝对话框。截至 2010 年 3 月 27 日,在这两个链接中仍然没有报告任何解决方案。

小智 22

我通过 rvm 使用 ruby​​ 安装了这个。

这是无价的,是我认为的正确方式。

https://web.archive.org/web/20160313182146/http://forums.macnn.com/79/developer-center/355720/how-re-sign-apples-applications-once

我重新签署了我的 rvm/ruby 二进制文件,一切都很好。

相关位:

您可以通过执行以下操作来检查签名信息:

codesign -dvvvv /path/to/application

然后通过用于代码签名的 Keychains 应用程序创建一个自签名证书(有关详细信息,请参阅链接)。然后:

重新签署应用程序非常简单。

  1. 打开终端。
  2. 输入“codesign -f -s(证书名称)/path/to/application


小智 12

有几个人已经找到了解决方案,但没有明确说明,所以这里是:

OS X 中的每个应用程序都应该由开发人员签名。此签名可确保应用程序的内容未被更改。防火墙在其过程中验证此签名。 当签名验证过程失败时,您每次使用该程序时都会收到此允许/拒绝错误消息,即使您单击对话框上的允许也是如此。

为什么签名验证失败?发生这种情况的原因有多种,但主要是因为您在此过程中的某处更改了 /Applications/YourProblemApplication.app 容器的内容。例如,如果您使用Monolingual或类似的应用程序删除其他语言文件以节省磁盘空间,则您已经修改了应用程序的内容。如果您使用了像 CandyBar 或 IconDubber 这样的程序来更改图标 (.icns) 文件,那么您也更改了应用程序的内容。

解决此问题的最简单方法是删除产生此错误的 .app(务必清空回收站)。重新安装.app,这次不要修改内容。

顺便说一句,整个签名过程可能会导致其他应用程序出现大量错误,尤其是 VPN 等具有安全意识的应用程序。例如,我的 Cisco Unified Personal Communicator 在运行 Monolingual 后停止工作(但只会在控制台日志中生成拒绝错误)。

  • +1 谢谢,这就是我的 Adob​​e Flash Builder 问题的原因——捆绑包深处有一个名为“application.xml”的文件,显然用于存储许可证密钥。不用说,当人们输入许可证密钥来注册应用程序时,它会发生变化。就我而言,问题是通过在使用自签名证书输入许可证密钥后重新签名应用程序来解决的。 (2认同)

Zsu*_*sub 4

症状
根据之前发布的 Apple 支持论坛链接,该弹出窗口仅针对某些应用程序出现。添加永久例外并没有解决那里的海报问题。Asker 报告所有应用程序都会出现弹出窗口,尽管是间歇性的。

诊断
防火墙似乎没有正确识别应用程序和/或在检测到应用程序时行为不正确。对于某些人来说,并非所有应用程序都会导致这种情况,这一观念强化了这种信念。

测试 为了确定防火墙中的哪些内容被阻止,我们可以测试几种场景:

  • 一台完全干净的计算机,仅安装了一些基本应用程序。这将保证系统范围的配置以及用户配置都是干净的。
  • 新用户。如果受影响的人可以创建一个新帐户并且防火墙不在该帐户下运行,则用户的配置无效并且需要重建(即cp从新用户进行配置)。
    • 如果我们选择此选项,我们还可以检查diff配置文件并检查异常情况。
  • 禁用防火墙。这可能会解决症状。如果没有,我们就完蛋了。禁用和启用也可能会修复它,但我们需要测试是否是这种情况。但我不明白为什么这会起作用。

额外信息
有些人建议关闭防火墙,但报告问题的人似乎没有这样做(或者他们没有回复),所以我们不知道这是否可以解决问题。

  • 关闭防火墙并不能解决问题。我期望的最终目标是让防火墙*正常*工作,仅当它是我尚未授权的新应用程序时才提示我,否则不妨碍我;-) (2认同)