如何让Mac OS X防火墙永久允许我的iOS应用程序?

时间:2012-03-23 19:38:46

标签: ios macos firewall

我正在编写一个iOS应用程序,其中包括一个telnet服务器。当然,它一开始就会开始监听连接。

当我在模拟器中运行应用程序时,Mac OS X(我碰巧在10.7.3上)提示我允许或拒绝我的应用程序接受传入的网络连接。这是Mac OS X用于所有未签名的联网应用程序的标准防火墙消息。

我厌倦了每天点击“允许”五十次或更多次,所以我想方设法将我的应用程序永久添加到防火墙允许的应用程序列表中。

我尝试了以下内容。

  1. 在我的应用运行时打开活动监视器。
  2. 选择我的应用。点击“检查”。
  3. 转到“打开文件和端口”选项卡。第一行之一是我的应用程序的精确路径。复制并粘贴此路径。
  4. 打开防火墙...高级设置。
  5. 点击+(添加)按钮。
  6. 浏览到应用程序路径并选择它,然后将其添加到允许传入连接的应用程序列表中。
  7. 在最后一步中做出了重大决定。您可以在该包上添加.app应用程序包或Show Contents,并在其中添加“Unix可执行文件”。我尝试了两种方法。

    有趣的是,防火墙实际上会暂时停止向你发出有关app- 的警告。然而,经过几次运行后,我不清楚哪个事件确实导致了这种变化,但它发生在半小时左右的时间对我来说,一般来说 - 防火墙再次开始警告应用程序。

    如何将防火墙设置为永久允许我的iOS应用程序?

    当然,我可以通过禁用Mac OS X防火墙来绕过这整个问题。我也可以通过砍掉它来避免再次在我的脚下划伤。这些行动方案都没有向我推荐。

    你会建议什么?

5 个答案:

答案 0 :(得分:20)

所以我们想要取消以下对话框

  

您是否希望应用程序“NNN.app”接受传入网络   连接吗?

每次激活 Xcode iOS模拟器时都会出现

。 我相信现在有一个解决方案。基于this博客的答案。

只需在终端窗口中运行以下命令:

#temporarily shut firewall off:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off

#put Xcode as an exception:
/usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/Xcode.app/Contents/MacOS/Xcode

#put iOS Simulator as an exception:
/usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator

#re-enable firewall:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on

对我而言,它有效。请注意模拟器地址是根据Xcode 8。

答案 1 :(得分:12)

在尝试了一段时间之后,我发现手动将可执行文件本身添加到防火墙“允许”列表会产生所需的结果。您不在.app的Contents文件夹中添加.app,而是添加“Unix”可执行文件。我相信我之前尝试过这个文件没有成功,但目前它正在运作。

答案 2 :(得分:3)

我认为最好的解决方案可能是编写将应用程序保存到防火墙的过程。

如果我没记错的话,最新的OSX防火墙实际上很聪明地识别允许的二进制文件的应用程序和指纹。这可以防止仅仅命名恶意软件“system32.exe”并避开防火墙这种令人惊讶的有效策略。如果是这种情况,你的应用程序将被(正确地)阻止,因为它不是同样的二进制文件,并且没有任何解决方法。

因此,尝试编写防火墙脚本,允许进程并将其合并到构建过程中。

答案 3 :(得分:1)

手动将可执行文件手动添加到防火墙的允许列表中我从未幸运。这是使用自动鼠标点击的解决方案:

  1. 下载CLIclick。 (谢谢Carsten。)
  2. 将其放在合适的位置,例如/usr/local/bin
  3. 使用 4 获取Allow按钮的屏幕坐标。 (在我的例子中,这些是x:750,y:600。)
  4. 使用此内容创建脚本(w:是等待时间,以毫秒为单位):

    /usr/local/bin/cliclick c:750,600 w:1500 m:+0,+0 c:.
    

    (我无法让CLIclick无法“移动”到同一位置(m:+0,+0部分)并再次点击c:.的同一位置。)< / p>

  5. 打开Xcode的Preferences / Behaviors并添加上面的脚本。 enter image description here
  6. 享受!

答案 4 :(得分:-1)

我不知道这是不是正确的方式,但对我而言。

  1. 关闭防火墙
  2. 将iphone应用程序连接到Mac
  3. 检查连接中的所有内容是否正常工作
  4. 开启防火墙