微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以在 info-plist 上对 Bonjour 服务使用通配符吗

如何解决我可以在 info-plist 上对 Bonjour 服务使用通配符吗

我的应用程序使用 bonjour 服务通过本地网络相互对话。 我在使用 OS14 设备的 Xcode12 上遇到问题。

一个设备发布一个带有服务器类型名称的服务依赖于自身设备的IP地址 (例如:192.168.33.20 -> _1921683320._tcp)

B 设备搜索具有服务类型的服务取决于 A 设备的 IP 地址 (例如:_1921683320._tcp)

根据苹果文档..来自OS14~

https://developer.apple.com/documentation/multipeerconnectivity

Important
Apps that use the local network must provide a usage string in their Info.plist with the key NSLocalNetworkUsageDescription. Apps that use Bonjour must also declare the services they browse,using the NSBonjourServices key.

因为我的服务类型名称是本地网络ip命名的,可以根据本地网络设置进行更改,所以我考虑使用通配符来定义服务类型名称

示例:_*._tcp

但是这个定义似乎没有通配符。(我试过了)

我也在考虑改变A设备上的命名方式 (例如:192.168.33.20 -> _20._tcp) 并将 _1.tcp ~ _255.tcp 添加到 info-plist

但是如果我改变了命名方式,B设备直到版本升级才能找到A设备。

对这个问题有什么想法吗?请帮忙。

解决方法

我目前正在解决同样的问题 - Bonjour 服务名称是根据 iPad 名称动态创建的,以形成本地网状网络。我得出的结论是 com.apple.developer.networking.multicast 是它运行所必需的,而无需彻底检查所有这些逻辑是如何完成的。 (More info here)

您必须通过填写 form here 来请求 Apple 的许可。让我知道这是否适合您!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。