是什么触发了 iOS 14 上的“想要查找并连接到本地网络上的设备”权限通知?

Wil*_* GP 17 ios ios14

除了 Bonjour 之外,哪些实际方法调用会在 iOS 14 上触发“想要查找并连接到本地网络上的设备”权限通知?

这是 WWDC 会话中有关此新权限的屏幕截图。作为概述,这只是有点帮助。我更感兴趣的是弄清楚所有方法调用会触发什么。

在此处输入图片说明

Jam*_*key 27

如果您使用带有调试配置的React Native,那么您将包含负责与开发计算机通信的所有代码,因此您可能可以忽略此消息。

不过,最好检查一下您是否没有其他也需要访问的库。为此,只需构建一个发布版本并查看该消息是否仍然存在。


Wil*_* GP 7

Apple(开发论坛上的爱斯基摩人)发布了常见问题解答,提供了有关此警报的更多详细信息:\n https://developer.apple.com/forums/thread/663858

\n

特别是,FAQ-2 提供了有关触发此警报的更多信息:\n https://developer.apple.com/forums/thread/663874

\n
\n

哪些操作需要本地网络访问?

\n

一般规则是,到本地网络地址的传出流量\n需要用户授予您的应用本地网络访问权限。常见的\n场景包括:

\n
    \n
  • 建立传出 TCP 连接 \xe2\x80\x94 是
  • \n
  • 侦听并接受传入 TCP 连接 \xe2\x80\x94 否
  • \n
  • 发送 UDP 单播 \xe2\x80\x94 是
  • \n
  • 发送 UDP 多播 \xe2\x80\x94 是
  • \n
  • 发送 UDP 广播 \xe2\x80\x94 是
  • \n
  • 接收传入的 UDP 单播 \xe2\x80\x94 否
  • \n
  • 接收传入的 UDP 多播 \xe2\x80\x94 是
  • \n
  • 接收传入的 UDP 广播 \xe2\x80\x94 是
  • \n
\n

这些 TCP 和 UDP 检查是在系统的最低级别完成的,因此适用于所有网络 API。这包括网络框架、BSD 套接字、NSStream、NSURLSession 和 WKWebView,以及任何位于这些协议之上的其他协议。

\n

重要信息接收传入的 UDP 多播或广播目前不需要\n本地网络访问,但是,因为我们希望在未来的更新中\n改变这一点,所以我们现在的建议是您像以前那样编写\n代码(r. 69792887、70017649 )。

\n

解析链接本地 DNS 名称(根据 RFC 6762,以 local 结尾的名称)\n需要本地网络访问。同样,此检查适用于\n各种 API,包括 <dns_sd.h>、<net_db.h>、网络框架、\nNSStream 和 NSURLSession。

\n

最后,所有 Bonjour 操作都需要本地网络访问:

\n
    \n
  • 向 Bonjour 注册服务 \xe2\x80\x94 是
  • \n
  • 浏览 Bonjour 服务 \xe2\x80\x94 是
  • \n
  • 解析 Bonjour 服务 \xe2\x80\x94 是
  • \n
\n

同样,这些检查适用于使用 Bonjour 的所有 API,包括\n<dns_sd.h>、网络框架、NSNetService 和 Multipeer\nConnectivity。

\n

注意您必须在 Info.plist 中声明您使用的 Bonjour 服务类型。请参阅如何将我的多点连接服务类型映射到\n Bonjour 服务属性中的条目?了解详情。

\n

基于 Bonjour 的服务,您\xe2\x80\x99 看不到网络的任何详细信息\n不需要本地网络访问。这些包括:

\n
    \n
  • AirPlay \xe2\x80\x94 否
  • \n
  • 通过 UIKit \xe2\x80\x94 打印 否
  • \n
\n
\n


mat*_*att 6

简而言之,卓悦。它的使用不再是“透明的”。有关更多信息,请参阅https://developer.apple.com/videos/play/wwdc2020/10110/

如果您的应用与使用 Bonjour 或其他本地网络协议的设备进行交互,则您必须在 iOS 14 中添加对本地网络隐私权限的支持。

即使是现有的应用程序也受此规则的约束;第一次尝试使用 Bonjour 会触发授权警报。

  • 这真的很遗憾,因为它吓坏了用户。当我第一次看到这个时,我拒绝了授权——从而完全瘫痪了我正在使用的应用程序。过了一会儿我才意识到发生了什么……! (5认同)
  • 不过,不仅仅是 Bonjour 引发了这种情况 (2认同)