Как добавить NSAppTransportSecurity в файл info.plist?
https://developer.apple.com/videos/wwdc/2015/?id=711 @5: 55
Кажется, я не могу добавить это в свой info.plist. Это не имеет значения. Я запускаю бета-версию XCode версии 7.0 (7A121l) и тестирование на iOS9.
Поскольку я не могу специально объявить, какой URL-адрес я хочу видеть в видео, я продолжаю получать "App Transport Security заблокировал загрузку ресурсов с открытым текстом HTTP (http://), так как он небезопасен. Временные исключения могут быть настроены через ваши ошибки в файле Info.plist.
Однако я, похоже, не могу его настроить. Любые идеи?
Ответы
Ответ 1
попробуйте С этим --- работал у меня в Xcode-beta 4 7.0
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>yourdomain.com</key>
<dict>
<!--Include to allow subdomains-->
<key>NSIncludesSubdomains</key>
<true/>
<!--Include to allow HTTP requests-->
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<!--Include to specify minimum TLS version-->
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
</dict>
Также еще один вариант, если вы хотите отключить ATS, вы можете использовать это:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key><true/>
</dict>
Но это не рекомендуется вообще. Сервер должен иметь SSL-сертификаты и не допускать утечки конфиденциальной информации.
Ответ 2
Вы должны добавить только ключ NSAllowsArbitraryLoads в YES в словаре NSAppTransportSecurity в файле info.plist.
Например,
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Ответ 3
Это не работало для меня, но это сделало трюк:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key><true/>
</dict>
Ответ 4
Просто уточнить...
Вы всегда должны использовать httpS
Но вы можете обойти это, добавив исключение:
Ответ 5
Xcode 8.2, iOS 10
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Ответ 6
Обновить ответ (после wwdc 2016):
IOS apps will require secure HTTPS connections by the end of 2016
App Transport Security или ATS - это функция, которую Apple представила в iOS 9. Когда включена служба ATS, она заставляет приложение подключаться к веб-службам через соединение HTTPS, а не небезопасный HTTP.
Однако разработчики все еще могут отключить ATS и разрешить своим приложениям отправлять данные по HTTP-соединению, как указано в приведенных выше ответах. В конце 2016 года Apple сделает ATS обязательным для всех разработчиков, которые надеются представить свои приложения в App Store. ссылка
Ответ 7
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>com</key>
<dict>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
<key>net</key>
<dict>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
<key>org</key>
<dict>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
Это позволит подключиться к .com.net.org
Ответ 8
Одна плохая новость для разработчиков, использующих NSAppTransportSecurity.
UPDATE:
[Apple will require HTTPS connections for iOS apps by the end of 2016]
https://techcrunch.com/2016/06/14/apple-will-require-https-connections-for-ios-apps-by-the-end-of-2016/
Ответ 9
Чтобы немного объяснить ParaSara, ответ: безопасность приложения Transport станет обязательной, и попытка отключить ее может привести к отклонению вашего приложения.
Как разработчик вы можете отключить безопасность транспорта приложений, если ваш сетевой код не работает с ним, и вы хотите продолжить другую разработку, прежде чем исправлять любые проблемы. Скажем, в команде из пяти человек, четыре могут продолжать работать над другими вещами, в то время как каждый исправляет все проблемы. Вы также можете отключить защиту App Transport как инструмент отладки, если у вас возникли проблемы с сетью, и вы хотите проверить, вызваны ли они защитой App Transport. Как только вы узнаете, что вы должны немедленно включить его.
Решение, которое вы должны использовать в будущем, - это вовсе не использовать http, если вы не используете сторонний сервер, который не поддерживает https. Если ваш собственный сервер не поддерживает https, у Apple возникнет проблема с этим. Даже с сторонними серверами я бы не стал спорить, что Apple его принимает.
То же самое с различными проверками безопасности сервера. В какой-то момент Apple примет только оправданные исключения.
Но в основном, подумайте об этом: вы ставите под угрозу конфиденциальность своих клиентов. Это большой нет-нет в моей книге. Не делай этого. Исправьте свой код, не просите разрешения на запуск небезопасного кода.
Ответ 10
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>uservoice.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
Ответ 11
XCODE 8, Swift 3:
Вам нужно добавить строку: **
"Настройка безопасности приложения на транспорте"
** в info.plist внутри информации Список свойств.
Ответ 12
В командной строке оболочки mac используйте следующую команду:
plutil -insert NSAppTransportSecurity -xml "<array><string> hidden </string></array>" [location of your xcode project]/Info.plist
Команда добавит все необходимые значения в ваш файл plist.