OS X 小组件模拟器中没有网络连接 (HTTPS)



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

但是当我在小部件模拟器中运行小部件时,我总是收到错误"找不到具有指定主机名的服务器"。URL 是正确的,当我在命令行上执行卷曲时它可以工作。似乎小部件模拟器不执行 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.
     }
)

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

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

您可以使用小部件模拟器连接到 https。我的版本是1.0版(552.6)。我得到的错误是:2017-01-07 14:35:26.062370 MYAPP [18387:5719297] dnssd_clientstub 连接服务器:连接() 失败路径:/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

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

打开沙盒允许网络连接

最新更新