WatchOS 3 WKAplicaciónRefrescarBackgroundTask didReceiveChallenge

Finalmente (ignorando el código de muestra que nunca vi trabajar después de "tarea de aplicación recibida, iniciar sesión de URL") logré obtener mi código WatchOS3 para iniciar una tarea de sesión de URL de fondo de la siguiente manera:

 func handle(_ backgroundTasks: Set<WKRefreshBackgroundTask>) {

    for task in backgroundTasks {
        if let refreshTask = task as? WKApplicationRefreshBackgroundTask {
            // this task is completed below, our app will then suspend while the download session runs
            print("application task received, start URL session")

            let request = self.getRequestForRefresh()
            let backgroundConfig = URLSessionConfiguration.background(withIdentifier: NSUUID().uuidString)
            backgroundConfig.sessionSendsLaunchEvents = true
            backgroundConfig.httpAdditionalHeaders = ["Accept":"application/json"]
            let urlSession = URLSession(configuration: backgroundConfig, delegate: self, delegateQueue: nil)
            let downloadTask = urlSession.downloadTask(with: request)

            print("Dispatching data task at \(self.getTimestamp())")
            downloadTask.resume()

            self.scheduleNextBackgroundRefresh(refreshDate: self.getNextPreferredRefreshDate())
            refreshTask.setTaskCompleted()
        }
        else if let urlTask = task as? WKURLSessionRefreshBackgroundTask {
            //awakened because background url task has completed
            let backgroundConfigObject = URLSessionConfiguration.background(withIdentifier: urlTask.sessionIdentifier)
            self.backgroundUrlSession = URLSession(configuration: backgroundConfigObject, delegate: self, delegateQueue: nil) //set to nil in task:didCompleteWithError: delegate method

            print("Rejoining session ", self.backgroundUrlSession as Any)
            self.pendingBackgroundURLTask = urlTask //Saved for .setTaskComplete() in downloadTask:didFinishDownloadingTo location: (or if error non nil in task:didCompleteWithError:) 

        } else {
            //else different task, not handling but must Complete all tasks (snapshot tasks hit this logic)
            task.setTaskCompleted()
        }
    }
}

Sin embargo, el problema que estoy viendo ahora es que mi método de delegadourlSession:task:didReceiveChallenge: esnunca ser golpeado, así que no puedo completar mi descarga. (También he agregado el nivel de sesión urlSession: didReceiveChallenge: delegate método y tampoco se está aplicando).

En cambio, inmediatamente golpeé mitask:didCompleteWithError: Método delegado que tiene el error:

"El certificado de este servidor no es válido. Es posible que se esté conectando a un servidor que pretende ser ... lo que podría poner en riesgo su información confidencial".

¿Alguien ha recibido la actualización de vigilancia en segundo plano para que funcione con el requisito adicional de alcanzar eldidReceiveChallenge método durante la sesión de URL de fondo?

Cualquier ayuda o consejo que pueda ofrecer es apreciada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta