2017-10-16 118 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

相關問題