Hor*_*hiv 2 bonjour multipeer-connectivity swift macos-high-sierra
我试图在macOS 10.13中宣传具有Multipeer Connectivity的服务:
override init() {
self.serviceAdvertiser = MCNearbyServiceAdvertiser(peer: peerID, discoveryInfo: nil, serviceType: serviceID);
super.init();
self.serviceAdvertiser.delegate = self;
self.serviceAdvertiser.startAdvertisingPeer();
}
Run Code Online (Sandbox Code Playgroud)
哪里
private let serviceID = "sample-test";
private let peerID = MCPeerID(displayName: Host.current().localizedName!);
Run Code Online (Sandbox Code Playgroud)
调用广告客户端的调用方法会立即失败,而不是让正确的委托回调方法失败,这就是我在控制台中获得的内容:
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;
}].
Run Code Online (Sandbox Code Playgroud)
不知道怎么解决这个问题?
更新:
在iOS模拟器中运行完全相同的代码工作正常,所以我猜它与Mac机器上的某些权限有关.
看到日志显示这是一个权限问题,我继续在Mac上启用root用户,并尝试运行相同的代码无济于事.
我正在考虑关闭系统完整性保护,但我很难接受Apple如果要使用所有这些安全性妥协而发布此框架的事实.会继续调查.
| 归档时间: |
|
| 查看次数: |
513 次 |
| 最近记录: |