OS X Widget Simulator中没有网络连接(HTTPS)

时间:2016-01-21 14:10:56

标签: xcode swift

我正在使用Swift构建OS X Today Widget。这应该通过HTTPS调用JSON API并显示结果。到目前为止一切都很好。

但是当我在Widget模拟器中运行小部件时,我总是收到错误"找不到具有指定主机名的服务器"。 URL是正确的,当我在命令行上进行卷曲时它会起作用。似乎Widget模拟器没有执行适当的DNS查找或完全阻止https流量。

我正在使用Alamofire,但我也尝试过使用NSURLSession。结果相同。

let url = NSURL(string: "https://httpbin.org/get")

let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in
  debugPrint(error)
}

task.resume()

导致:

Optional(
    Error 
      Domain=NSURLErrorDomain 
      Code=-1003 "A server with the specified hostname could not be found." 
      UserInfo={
        NSUnderlyingError=0x7fe1f3e341a0
        ErrorDomain=kCFErrorDomainCFNetwork 
        Code=-1003 "(null)" 
        UserInfo={
          _kCFStreamErrorCodeKey=-72000,
          _kCFStreamErrorDomainKey=10}
        }, 
        NSErrorFailingURLStringKey=https://httpbin.org/get, 
        NSErrorFailingURLKey=https://httpbin.org/get,
        _kCFStreamErrorDomainKey=10, 
        _kCFStreamErrorCodeKey=-72000,
        NSLocalizedDescription=A server with the specified hostname could not be found.
     }
)

小部件模拟器应该能够进行外部连接,是吗?

1 个答案:

答案 0 :(得分:6)

这是一个非常古老的问题,所以很确定你已经得到了你的答案,但我遇到了我认为同样的问题,我花了很长时间才弄清楚。希望这会帮助其他人更快地解决它。

您可以使用小部件模拟器连接到https。我的版本是版本1.0(552.6)。我得到的错误是:2017-01-07 14:35:26.062370 MYAPP [18387:5719297] dnssd_clientstub ConnectToServer:connect()路径失败:/ var / run / mDNSResponder套接字:5错误:-1错误:1不允许操作

原则上你必须将打开应用程序沙箱并明确允许网络进出。我想我应该阅读文档:https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/AddingCapabilities/AddingCapabilities.html#//apple_ref/doc/uid/TP40012582-CH26-SW3

扩展程序有自己的权利,因此请确保配置需要网络的每个目标。

Turning ON Sandbox allows network connection