URLSession 在 WatchOS 6 上停止工作,OS 5 有什么变化吗?

URLSession stopped working on WatchOS 6, did something change from OS 5?

我有一个使用 iOS、todayExtension 和 watchOS 作为目标的应用程序。

在新的 iOS 13 发布之前,一切正常,那一周我在我的 iPhone 和手表 OS 上下载了 iOS 13 beta 6 在我的手表上。然后,我的应用程序突然停止在手表上运行。当我将其置于调试状态时,我看到 none 的 URLSession 请求正在完成。有什么大的改变吗?

    class func verifyInternet(errorHandler:@escaping (String) -> (), completionHandler:@escaping (JSON) -> ()) {

        let myUrl = URL(string: "https://google.com/")
        var request = URLRequest(url:myUrl!)
        request.httpMethod = "GET";
        request.httpBody = nil
        request.cachePolicy = URLRequest.CachePolicy.reloadIgnoringLocalCacheData
        let task = URLSession.shared.dataTask(with: request as URLRequest, completionHandler: {
            data, response, error in
            if error != nil
            {
                errorHandler(error.debugDescription)
                return
            }
            if response.debugDescription.contains("Status Code: 200") {
                completionHandler("connection ok")
                return
            }
            if response != nil, let jsonString = JSON(parseJSON: response!.description) as? JSON {
                //convert the JSON to raw NSData
                do {
                    let json = try  jsonString //JSON(data: dataFromString)
                    if json.dictionary?.keys.first?.contains("error") ?? false {
                        errorHandler(json.dictionary?.values.first?.stringValue ?? "error")
                    }
                    completionHandler(json)
                } catch {
                    print("Error \(error)")
                }
            }
        })
        task.resume()
    }

这实际上是我的一些代码,在 OS 5 上运行良好,在 OS 6(模拟器和手表)上运行不佳(我已经尝试标记选项 "Run independent from iPhone"还)。我会在这里粘贴我遇到的错误,但是当我 运行 我在 Watch 模拟器上的代码时,调试器没有打印任何东西:)。

经过大量调试后,我注意到您应该选中“项目”>“监视扩展”>“常规”>“部署信息”下的 "Supports Running Without iOS App Installation" 复选框。 在 Xcode 测试版中,手表模拟器永远不会像在 Xcode 10.3 上那样与手机模拟器一起启动。如果您不选中该框,手表将永远无法连接互联网,因为它取决于不存在的手机。

我希望其他用户发现这些信息有用!