我正在开发一个使用GCDAsyncUdpSocket.实现SSDP的应用程序。On iOS 14设备,应用程序无法在同一本地网络上找到任何附近的设备。
经过研究,我了解到苹果已经为访问本地网络的引入了一项新的隐私修改,但我无法理解如何在应用程序中包含所需的权限。
我看到了一些论坛帖子,人们建议使用“多播网络权利申请表格”()向苹果申请这项权利。这个表单请求App,而我的应用程序还没有运行。我想先在内部测试构建。
我有以下问题:
启用组播权限所需的最低步骤或设置是什么,以便我可以在内部测试我的应用程序?
我希望就这一议题提出任何建议和想法。谢谢。
发布于 2021-01-06 01:37:10
我在1/2/21申请了多播网络权限这里,他们在1/5/21回复了我。我的应用程序是用于同一网络上的设备。事实证明,您只需要*arbitrary*或wildcard services的权限。下面是这个会议的简短片段,最后是他们对通配符的回应:
初始应用程序
解释为什么您的应用程序需要发送多播或广播流量,或者浏览所有Bonjour服务类型。
Me:如果我的应用程序使用Bonour、NWConnection、NWListener和NWBrowser连接了2个或更多的iPhones (userA和userB),如果我是userA,请按mapButton进行搜索,我希望userB会立即出现.
响应表格rep
感谢您对组播网络的兴趣。听起来您可以使用Bonjour / Multicast DNS,它不需要任何权限,但只需要更改您的Info.plist。如果您有更多关于如何使用API的问题,请在开发者论坛上跟进。
Me
我主要关心的是将我的应用程序提交到app,以支持iOS 14,而没有组播权限,它因为没有它而被拒绝。我有点迷失在iOS 14,组播权利,Bonjour通过NWConnection,这是我打算使用当我更新我的应用程序支持本地网络,以及应用程序审查小组。根据这个文档和这个文档-
“应用程序必须拥有在iOS上发送或接收IP组播或广播的权限。它还允许应用程序浏览和广告任意的Bonjour服务类型。在应用程序中使用它之前,这种权限需要得到苹果的许可。您可以在没有活动权限的情况下使用iOS和iPadOS模拟器测试应用程序,但是使用物理硬件上的组播和广播网络需要该权限。”
为什么你说,我所需要的只是在我的info.plist中添加更改,我这样做了:
-PrivacyPrivacy -本地网络使用描述:我的应用程序需要您的许可才能使用本地网络与您周围的用户进行连接。
-Bonjour服务:_myApp._tcp
rep的响应
该权限只需要能够浏览和广告任意或通配符服务。如果您已经将一种类型添加到您的Info.plist中,正如您的详细信息一样,您不需要该权限。如果你的应用程序运行良好,你不需要做更多的事情!最好的,苹果网络
发布于 2021-03-30 09:56:53
为了在内部进行测试,最好使用NWConnection创建虚拟连接,这将触发请求权限的系统对话(如果以前任何时候都没有显示系统对话),并检查本地网络访问是否允许或不像https://developer.apple.com/forums/thread/663769中提到的那样,这可以从iOS 14.2中获得。
一旦允许本地网络访问,SSDP请求将全部工作。
另外,更好的方法是检查https://developer.apple.com/forums/thread/663875以获得更多详细信息,了解需要哪些操作和当前的异常。除了当前的例外情况,我认为您可以像上面提到的那样进行内部测试,而不必请求授权。
https://stackoverflow.com/questions/65490312
复制相似问题