Как обращаться с "CFNetwork SSLHandshake failed" в iOS

Несколько раз я получаю CFNetwork SSLHandshake failed -(9806) в своем коде, но я не уверен, почему это происходит, так как мой код работает гладко, за исключением случаев, когда я запускаю его в iOS 6, а затем на iOS 7 64-bit я получаю это предупреждение.
Может ли кто-нибудь предложить мне, как справиться с этой проблемой?

Ответ 1

Обычно, когда я получаю CFNetwork SSLHandshake failed -(*) Его из-за моей локальной сети Wi-Fi (устройство подключено к сети, но not Интернет)

Попробуйте еще раз в другой сети (3G - самое быстрое решение для меня)

Ответ 2

Это также может произойти из-за iOS 9. Для iOS 9 и OSX 10.11 требуется TLSv1.2 SSL для всех хостов, на которых вы планируете запрашивать данные, если вы не укажете домены исключений в вашем файле Info.plist приложения.

Дополнительную информацию вы можете найти здесь: https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/

Или Стивен Петерсон ответит здесь, что совершенно ясно: fooobar.com/questions/19038/...

Ответ 3

Имел ту же проблему, и после того, как я подтвердил, что сервер получает POST, это решение было следующим:

  • Очистить проект: Продукт → Очистить
  • Удалите приложение с устройства iOS/iOS Simulator и выйдите из Simulator
  • Скомпилируйте приложение и запустите его

В моем случае, просто так.

Ответ 4

У меня была та же проблема, и в моем случае решение заключалось в том, что в моем коде я написал

initWithScheme:@"https"

вместо

initWithScheme:@"http"

Поэтому убедитесь, что вы используете правильный протокол

Ответ 5

Другое решение: проверьте, правильно ли установлена ​​дата/время в телефоне. SSL-сертификаты действительны до определенной даты.

https://superuser.com/a/760211