使用NWBrowser查询Bonjour服务时遭遇PolicyDenied错误的排查求助
NWBrowser查询Bonjour服务时遭遇PolicyDenied错误的排查求助
各位好,我遇到了一个Bonjour服务搜索的棘手问题,想请教大家的排查思路:
之前我一直用NetServiceBrowser成功搜索特定类型的Bonjour服务(服务类型为_my-service._udp),Info.plist里也一直配置了NSBonjourServices数组包含这个服务类型,一切正常。但最近突然失效了,而且没有任何错误提示,我不确定是因为把iOS模拟器从iOS 16升级到iOS 18导致的,还是其他因素影响(我的项目目标版本始终是iOS 15)。
因为NetServiceBrowser已经被废弃,我转而用NWBrowser来调试,这次终于得到了明确的错误信息:
[browser] nw_browser_fail_on_dns_error_locked [B1] nw_browser_dns_service_browse_callback failed: PolicyDenied(-65570)
查了一些资料后,我尝试了两个之前没用到的配置(因为之前没这些配置也能正常工作):
- 在Info.plist中添加了
NSLocalNetworkUsageDescription键,描述内容为"This app searches for my service server" - 新增了一个.entitlements文件,添加
com.apple.developer.networking.multicast并设为<true/>
但操作后还是出现同样的PolicyDenied错误,而且NWBrowser启动时,完全没有弹出请求本地网络访问权限的弹窗。
我的开发环境是:
- XCode 16.4
- macOS 15.5
有没有朋友遇到过类似的情况?或者有什么我没考虑到的排查方向?麻烦大家给点建议,谢谢!
内容来源于stack exchange
相关产品推荐
相关产品推荐

