Ошибка двухстороннего SSL на WatchOS2.1, но тот же код работает на iOS9.1

Я пытался связаться со службой с помощью двустороннего SSL.

Я обнаружил, что соединение было отменено сразу после того, как клиент (часы) предоставил сертификат клиента, вызвав completeHandler(NSURLSessionAuthChallengeUseCredential, credential)

Полученная ошибка:

Код NSURLErrorDomain=-999 отменен

Но я попытался запустить тот же фрагмент кода на телефоне, и это удалось. Кроме того, другие запросы на часах работают нормально.

Поскольку фреймворки в WatchOS и iOS разные, мне интересно, может ли это быть проблемой для WatchOS? Или что-то конкретно нужно настроить для часов?

Вот код

- (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential *))completionHandler
{
    NSURLProtectionSpace *protectionSpace = [challenge protectionSpace];
    NSString *authMethod = [protectionSpace authenticationMethod];
    if (authMethod == NSURLAuthenticationMethodServerTrust) {
        completionHandler(NSURLSessionAuthChallengeUseCredential, [NSURLCredential credentialForTrust:serverTrust]);
    } else if (authMethod == NSURLAuthenticationMethodClientCertificate) {
        // cancelled immediately after calling the method below.
        completionHandler(NSURLSessionAuthChallengeUseCredential, self.credential);
    } else {
        completionHandler(NSURLSessionAuthChallengePerformDefaultHandling, nil);
    }
}

person Bob    schedule 23.02.2016    source источник
comment
Можете ли вы показать больше кодов?   -  person Raptor    schedule 23.02.2016


Ответы (1)


Подтверждено инженером Apple. Это ограничение Watch OS. Двусторонний SSL пока не поддерживается.

person Bob    schedule 06.04.2016
comment
Все еще не исправлено в watchOS 5 beta 1. - person Florian; 09.06.2018