Перестал работать URLSession на WatchOS 6, что-то изменилось с OS 5? - PullRequest
1 голос
/ 02 июля 2019

У меня есть приложение, которое использует iOS, todayExtension и watchOS в качестве целей.

До запуска новой iOS 13 все работало нормально, на той неделе я загрузил бета-версию iOS 13 на свой iPhone и watchOS 6 на свои часы. Затем вдруг мое приложение перестало работать на часах. Когда я поставил его на отладку, я увидел, что ни один из моих запросов 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 (Simulator и Watch) - нет (я уже пробовал пометить опцию «Запускать независимо от iPhone»). Я вставил сюда ошибку, которую я получаю, но когда я запускаю свой код на симуляторе часов, отладчик ничего не печатает:).

...