经过几个多小时的搜索,我进入了一个看似死胡同的地方。在这种情况下,我要做的就是使用 Bonjour 获取网络的所有 iOS 设备。我这样做了
self.serviceBrowser = [[NSNetServiceBrowser alloc] init];
[self.serviceBrowser setDelegate:self];
[self.serviceBrowser searchForServicesOfType:@"_apple-mobdev2._tcp." inDomain:@"local."];
这很好用,虽然我得到的是以下内容:
local. _apple-mobdev2._tcp. [MAC ADDRESS HERE]
我尝试使用同步端口 (62078) 来解决连接问题,因为 service.port 返回 -1。
for (NSNetService *service in self.services) {
NSLog(@"%@", service);
NSNetService *newService = [[NSNetService alloc] initWithDomain:service.domain type:service.type name:service.name port:62078];
[newService setDelegate:self];
[newService resolveWithTimeout:30];
}
这自己调用 netServiceWillResolve: 一点问题都没有,但是它没有到达 netServiceDidResolveAddress:
但这也没有失败。netService:didNotResolve: 也没有被调用,我相信它只是在等待解决响应。
为了支持这种说法,一旦它确实实现了方法并且实际上是 [service hostName]; 确实返回了 Yanniss-iPhone,但这发生在完全随机的时间,我让 Mac App 运行了大约半小时。什么可以调用它来运行?或者有人知道获取远程设备主机名的不同方法吗?其他答案没有回答我的问题,因为我正在寻找远程设备的主机名,而不是 Mac 设备的主机名。
相对于此,我发现当您杀死并重新启动 iTunes 以及 iTunes Helper 时,我在下面提到的日志会再次发送。这就是为什么我认为正确的日志是与 iTunes 相关的事件。很感谢任何形式的帮助!