Ios 从GCDWebServer获取“你好”URL

Ios 从GCDWebServer获取“你好”URL,ios,swift,swift3,gcdwebserver,Ios,Swift,Swift3,Gcdwebserver,我正在使用GCDWebServer并通过运行以下命令启动它: webServer!.start(withPort: 8080, bonjourName: "Test") 从GCDWebServer查看[INFO]日志时,我可以在两个不同的位置看到两条消息: GCDWebServer在端口8080上启动,可在http://{deviceIp}:8080访问/ GCDWebServer现在可以在http://{deviceName}本地访问。本地:8080 另一个URL使用的是设备名,而不是我

我正在使用GCDWebServer并通过运行以下命令启动它:

webServer!.start(withPort: 8080, bonjourName: "Test")
从GCDWebServer查看
[INFO]
日志时,我可以在两个不同的位置看到两条消息:

  • GCDWebServer在端口8080上启动,可在http://{deviceIp}:8080访问/
  • GCDWebServer现在可以在http://{deviceName}本地访问。本地:8080
另一个URL使用的是设备名,而不是我在上面的代码中配置的
bonjourName
,这一事实让我很困惑,但这并不是什么大问题

更重要的是,在实现了
GCDWebServerDelegate
webServerDidStart
之后,从那里打印
serverURL
仍然会显示IP URL

我还可以看到,
webServerDidStart
在日志中获得GCDWebServer消息的Bonjour注册完成之前被调用


如何获取人类可读的URL?

要使用的属性是
bonjourServerURL
serverURL
始终是IP地址,一旦调用了
WebServerDidCompleteBonJournRegistration
delegate方法,
bonjourServerURL
保存该值。我不知道为什么Bonjour URL中的主机名与参数值不匹配。

这都是关于新的本地网络隐私设置。通过在info.plist中添加以下内容,解决了Bonjour的问题:

<key>NSLocalNetworkUsageDescription</key>
    <string>My app uses local network</string>

<key>NSBonjourServices</key>
<array>
    <string>_http._tcp</string>
</array>
NSLocalNetworkUsageDescription
我的应用程序使用本地网络
NSBonjourServices
_http.\u tcp

iOS 14.x上未调用WebServerDidCompleteBonJournRegistration