У меня есть приложение, которое использует 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»). Я вставил сюда ошибку, которую я получаю, но когда я запускаю свой код на симуляторе часов, отладчик ничего не печатает:).