Как справиться с "CFNetwork SSLHandshake fail" в iOS
Иногда я получаю CFNetwork SSLHandshake failed -(9806)
в моем коде, но я не уверен, почему это происходит, так как мой код работает без сбоев, за исключением случаев, когда я запускаю его в iOS 6, а затем в iOS 7 64-bit, я получаю это предупреждение.
Кто-нибудь может подсказать мне, как справиться с этой проблемой?
5 ответов
Обычно, когда я получаю CFNetwork SSLHandshake failed -(*)
Это из-за моей локальной сети Wi-Fi (устройство подключено к сети, но не к Интернету)
Попробуйте еще раз в другой сети (3G - самое быстрое решение для меня)
Это также может произойти из-за iOS 9. iOS 9 и OSX 10.11 требуют TLSv1.2 SSL для всех хостов, с которых вы планируете запрашивать данные, если вы не укажете домены исключений в файле Info.plist своего приложения.
Вы можете найти больше информации здесь: https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/
Или ответ Стивена Петерсона здесь, который совершенно ясен: /questions/28415737/cfnetwork-sslhandshake-ne-udalos-ios-9/28415749#28415749
Возникла та же проблема, и после того, как я подтвердил, что сервер получает POST, решение было следующим:
- Очистить проект: Продукт -> Очистить
- Удалите приложение с устройства iOS /iOS Simulator и выйдите из Simulator
- Скомпилируйте ваше приложение и запустите его
В моем случае все просто.
У меня была такая же проблема, и в моем случае решение было то, что в моем коде я написал
initWithScheme:@"https"
вместо
initWithScheme:@"http"
Поэтому убедитесь, что вы используете правильный протокол
Другое решение: проверьте, правильно ли установлены дата / время в вашем телефоне. SSL-сертификаты действительны до определенной даты.