и спасибо заранее.Приложение iOS неожиданно не может подключаться через HTTPS после изменения IPv6
Все отлично работает в моем приложении, которое по сути является полным. Приложение было завершено, и пользовательский сервер VPS был настроен как сервер. Затем, прочитав рекомендации Apple Submission, я убедился, что мой сервер совместим с IPv6.
Теперь я не могу подключиться к своему серверу через HTTPS. Он подключается через HTTP по-прежнему (если я вернусь и изменил URL-адреса). Кроме того, я смог подключиться через HTTPS до изменения IPv6.
Теперь я получаю эту ошибку в консоли Xcode:
--- NSURLConnection/CFURLConnection HTTP загрузка не удалась (kCFStreamErrorDomainSSL, -9813) ---
Я читал другие сообщения о обходных путях, но я хочу, чтобы мое приложение было законным. Ранее он работал над HTTPS, и я не понимаю, почему изменение IPv6 вызовет это. Я знаю, что могу изменить ключ безопасности для транспорта приложений, но я хочу, чтобы это было готово к производству, и я не хочу отклонения от Apple.
Это не самозаверяющий сертификат, и все было полностью функционально перед рукой.
Я связался с моей серверной компанией, и они не уверены, в чем проблема.
Я использую NSURLSession, и типичное соединение выглядит так (я вообще не реализовал никаких методов или настроек делегатов NSURLSession, кроме того, что вы видите ниже).
//VALUES TO BE POSTED
NSMutableString *post = [NSMutableString stringWithFormat:@"u=%@&p=%@", username, password];
//PERCENT ESCAPE THE URL
[post setString:[post stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
//CONVERT POST VALUES TO DATA
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
//RETRIEVE LENGTH OF DATA FOR PURPOSES OF POST HEADER
NSString *postLength = [NSString stringWithFormat:@"%d", (int)[postData length]];
//BUILD THE URL REQUEST
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"https://www.example.com/"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:postData];
//CREATE SESSION FOR SERVER CONTACT
NSURLSessionDataTask *sessionTask = [[NSURLSession sharedSession] dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
AND SO ON....
Ваш код выглядит довольно просто. Я бы попросил рассказать на веб-сайте StackOverflow serverfault.com, как проверить правильность и правильность настройки IPv6 + TLS. –