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

Old*_*ier 33 macos firewall ios

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

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

我厌倦了每天点击"允许"五十次或更多次,所以我寻求一种将我的应用程序永久添加到防火墙允许的应用程序列表的方法.

我尝试了以下内容.

  1. 我的应用程序运行时打开Activity Monitor.
  2. 选择我的应用.单击"检查".
  3. 转到"打开文件和端口"选项卡.第一行之一是我的应用程序的精确路径.复制并粘贴此路径.
  4. 打开防火墙...高级设置.
  5. 单击+(添加)按钮.
  6. 浏览到应用程序路径并选择它,然后将其添加到允许传入连接的应用程序列表中.

在最后一步中,有一个重要的决定.您可以在该包上添加.app应用程序包或Show Contents,并在其中添加"Unix可执行文件".我尝试了两种方法.

有趣的是,防火墙实际上会暂时停止向您发出关于应用程序的警告.几运行后,但是,目前尚不清楚对我有什么事件实际上导致这种变化,但半小时左右的时间内发生的对我来说,一般来说,防火墙开始再次警告有关的应用程序.

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

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

你会建议什么?

ish*_*hak 26

所以我们要禁止以下对话框

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

它出现在每次激活Xcode iOS模拟器时.我相信现在有一个解决方案.基于我在这个博客上的答案.

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

#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
Run Code Online (Sandbox Code Playgroud)

对我来说它有效.请注意模拟器地址是根据Xcode 8.

  • 每次登录我的Mac时都必须运行这些命令.所以我最终使用Lingon X(www.peterborgapps.com/lingon)以root用户身份从shell脚本执行这些命令,因此从脚本的第一行和最后一行删除了"sudo"前缀. (3认同)

Old*_*ier 13

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

  • 我想知道你还做了什么才能让它发挥作用,因为这个解决方案对我不起作用: - \ (3认同)