2017-10-16 145 views
0

我想在MacOS上10.13,发布Multipeer连接服务,因为这样的:MCNearbyServiceAdvertiser在Mac OS 10.13(高塞拉利昂)不工作

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; 
}]. 

不知道如何解决这个问题?

UPDATE

运行在iPhone模拟器完全相同的代码工作正常,所以我猜它是与Mac机上的一些权限。

看到该日志说,这是一个权限问题我继续启用Mac上的root用户,并试图运行相同的代码无济于事。

我想关闭系统完整性保护的,但我有一个困难时期来条款的事实,如果所有这些安全威胁是为了使用它需要苹果将发布此框架。将继续调查。

回答

3

经过斗争天的解决方案是非常简单的。确保您为目标启用了网络权利。见附件快照:

enter image description here

相关问题