2015-07-06 4 views
1

Я получаю HTTP-нагрузка NSURLSession/NSURLConnection потерпела неудачу на прошивке 9 во время работы приложения на симуляторе. Вот как мой файл info.plist выглядитHTTP загрузка не удалась (kCFStreamErrorDomainSSL, -9806 (IOS9)

<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSAllowsArbitraryLoads</key> 
     <true/> 
     <key>NSIncludesSubdomains</key> 
     <true/> 
     <!--Include to allow insecure HTTP requests--> 
     <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> 
     <true/> 
     <!--Include to specify minimum TLS version--> 
     <key>NSTemporaryExceptionMinimumTLSVersion</key> 
     <string>TLSv1.1</string> 
    </dict> 

Даже после ввода этих значений ключей То же ошибка появляется на Xcode консоли. пожалуйста помощь.

Это скриншот info.plist

enter image description here

Большое спасибо!

ответ

3

Вам необходимо определить URL-адрес, для которого вы хотите применить эти правила. Вы можете найти правильное объявление на странице документации Apple: https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/

Так в основном ваш Info.plist должен выглядеть следующим образом и включить в домен.

Примечание: для большей прозрачности, я также повторно объявлен значение по умолчанию для NSAllowsArbitraryLoads ложной

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <false/> 
    <key>NSExceptionDomains</key> 
    <dict> 
     <key>yourdomain.com</key> 
     <dict> 
      <key>NSIncludesSubdomains</key> 
      <true/> 
      <key>NSAllowsArbitraryLoads</key> 
      <true/> 
      <key>NSTemporaryExceptionMinimumTLSVersion</key> 
      <string>TLSv1.1</string> 
      <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> 
      <true/> 
     </dict> 
    </dict> 
</dict> 

С наилучшими пожеланиями.

В случае, вам просто не нужны все эти взломы ssl (я не рекомендую это делать) и хочу только отлаживать ваш интерфейс, вы также можете временно перейти и использовать нестандартные для App TransportSecurity и позволить только что-нибудь:

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 

Я не уверен, является ли Apple, пусть бы этот проход в AppStore Обзор ;-)

+0

Да, это не пройдет. Есть много приложений, которые просто не знают во время сборки, на какие домены точно будут ссылаться ссылки. Есть веская причина, чтобы это было включено в читателе RSS и т. Д. – igraczech

Смежные вопросы