2015-09-18 3 views
2

После обновления к новой выпущенной версии Xcode 7 я столкнулся с этой проблемой.Cleartext HTTP заблокирован

Приложение Transport Security заблокировало загрузку ресурса HTTP (http: //), так как это небезопасно. Временные исключения могут быть настроены через файл Info.plist вашего приложения. gete Ресурс не может быть загружен, так как для политики безопасности при использовании приложения требуется использование безопасного соединения.

Я сделал несколько поиска и я нашел решение, которые считают, чтобы добавить эти строки в файл info.plist в моем проекте, но проблема не решен

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>CFBundleDevelopmentRegion</key> 
    <string>en</string> 
    <key>CFBundleExecutable</key> 
    <string>$(EXECUTABLE_NAME)</string> 
    <key>CFBundleIdentifier</key> 
    <string>com.thenewsapp.$(PRODUCT_NAME:rfc1034identifier)</string> 
    <key>CFBundleInfoDictionaryVersion</key> 
    <string>6.0</string> 
    <key>CFBundleName</key> 
    <string>$(PRODUCT_NAME)</string> 
    <key>CFBundlePackageType</key> 
    <string>BNDL</string> 
    <key>CFBundleShortVersionString</key> 
    <string>1.0</string> 
    <key>CFBundleSignature</key> 
    <string>????</string> 
    <key>CFBundleVersion</key> 
    <string>1</string> 
    <key>NSAppTransportSecurity</key> 
<dict> 
     <key>NSAllowsArbitraryLoads</key> 
     <true/> 
     <key>NSExceptionDomains</key> 
     <dict> 
      <key>greenarea.com</key> 
      <dict> 
       <key>NSIncludesSubdomains</key> 
       <true/> 
       <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> 
       <true/> 
       <key>NSTemporaryExceptionMinimumTLSVersion</key> 
       <string>TLSv1.1</string> 
      </dict> 
     </dict> 
</dict> 
</dict> 
</plist> 

любой помощи

+0

Почему вы не установите '' NSAllowsArbitraryLoads' в true'? Это позволит вам делать все HTTP-вызовы. – execv

+0

Я сделал то же самое остальное –

+0

Ну, это кажется странным. Я просто проверил его и его работу. Могли бы, пожалуйста, показать нам ваш info.plist? Чтобы убедиться, вам нужно добавить 'NSAppTransportSecurity' в качестве словаря и внутри этого' NSAllowsArbitraryLoads' как логическое и установить его в YES. – execv

ответ

1

Упомянутого here

Служба безопасности на транспорте (ATS) применяет лучшие практики в безопасных соединениях между приложением и его задним концом. ATS предотвращает случайное обнаружение , обеспечивает безопасное поведение по умолчанию и его легко принять; он также включен по умолчанию в iOS 9 и OS X v10.11. Вы должны принять ATS как можно скорее, независимо от того, создаете ли вы новое приложение или обновляете существующий.

Если вы разрабатываете новое приложение, вам следует использовать исключительно HTTPS. Если у у вас есть существующее приложение, вы должны использовать HTTPS столько, сколько вы можете прямо сейчас и создать план для переноса остальной части вашего приложения как в ближайшее время. Кроме того, ваше сообщение через API-интерфейс верхнего уровня необходимо зашифровать с использованием TLS версии 1.2 с последующей секретностью. Если вы попытаетесь установить соединение, которое не соответствует этому требованию, то выдается ошибка. Если вашему приложению необходимо сделать запрос на небезопасный домен , вы должны указать этот домен в файле Info.plist вашего приложения.

Это ясно сказано, что вы будете идти на https протокол от http, до тех пор это обходной путь

Также помимо NSAllowsArbitraryLoads в вашем PLIST, удалите все оставшиеся ключ от NSAppTransportSecurity Dict

enter image description here

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