Swift macOS 10.13(High Sierra)上的MCNearbyServiceAdvertiser不工作

Swift macOS 10.13(High Sierra)上的MCNearbyServiceAdvertiser不工作,swift,bonjour,multipeer-connectivity,macos-high-sierra,Swift,Bonjour,Multipeer Connectivity,Macos High Sierra,我正试图在macOS 10.13中宣传一项具有多个EER连接的服务,例如: override init() { self.serviceAdvertiser = MCNearbyServiceAdvertiser(peer: peerID, discoveryInfo: nil, serviceType: serviceID); super.init(); self.serviceAdvertiser.delegate = self; self.servi

我正试图在macOS 10.13中宣传一项具有多个EER连接的服务,例如:

    override init() {
    self.serviceAdvertiser = MCNearbyServiceAdvertiser(peer: peerID, discoveryInfo: nil, serviceType: serviceID);
    super.init();
    self.serviceAdvertiser.delegate = self;
    self.serviceAdvertiser.startAdvertisingPeer();
}
在哪里

    private let serviceID = "sample-test";
private let peerID = MCPeerID(displayName:  Host.current().localizedName!);
广告客户没有得到正确的委托回调方法,而是立即失败,这就是我在控制台中得到的结果:

2017-10-16 11:22:35.568607-0700 macApp[3060:288948] [] tcp_listener_socket_create bind(fd 3) failed: [1] Operation not permitted
2017-10-16 11:22:35.569223-0700 macApp[3060:288940] [MCNearbyServiceAdvertiser] Server did not publish: errorDict [{
    NSNetServicesErrorCode = 1;
    NSNetServicesErrorDomain = 1;
}].
你知道怎么解决这个问题吗

更新

在iOS模拟器中运行完全相同的代码效果很好,所以我猜这与Mac机器上的某些权限有关

看到日志上说这是一个权限问题,我继续启用了Mac上的root用户,并尝试运行相同的代码,但没有成功


我正在考虑关闭系统完整性保护,但我很难接受这样一个事实,即如果为了使用该框架而需要所有这些安全妥协,苹果公司将发布该框架。将继续调查。

经过几天的斗争,解决办法非常简单。确保为您的目标启用网络授权。请参阅随附的快照:


OSX莫哈韦和sift 5相同:我还需要我的Swift 5+Xcode 12+macOS 11 Big Sur组合的这个技巧。谢谢