延迟网络访问,直到用户允许为止

Defer network access until user allowed it

当我的 Mac OS 应用程序第一次启动时,我收到一个弹出窗口 "Do you want the application ... to accept incoming network connections?"。当用户单击 "Deny" 或 "Allow" 时,如何执行某些应用程序代码?如何确定是否允许应用程序接受传入的网络连接?

目前,我的应用程序开始发送 UDP 广播数据包以在它能够接收响应之前发现网络上的其他设备。我正在使用 NSApplicationDelegate 方法 applicationDidFinishLaunching 来触发使用网络。显然,当出现防火墙弹出窗口时,对于第一个应用程序启动来说太早了。

不是沙盒而是防火墙。签署您的应用程序,它不会问这个问题

Do you want the application to accept incoming network connection?

或者在 xcode 项目设置中添加适当的内容以在构建时自动签署您的应用程序:

Xcode code signing guide