Приложение Transport Security заблокировало ресурс HTTP с открытым текстом

введите описание изображения здесь

Я использую Socket.IO-библиотеку в swift, и я продолжаю получать эту ошибку:

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

когда я пытаюсь отправить HTTP-запрос. Я добавил ключи к plist в соответствии с официальной документацией Apple, но это не помогло.

Ответ 1

Вам нужно исправить это следующим образом:

введите описание изображения здесь

Чтобы сделать это проще, это правильный xml в файле info.plist

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>localhost</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
                <true/>
                <key>NSTemporaryExceptionMinimumTLSVersion</key>
                <string>TLSv1.1</string>
            </dict>
        </dict>
    </dict>

измените localhost на фактический сервер

Проверьте таблицу параметров NSAppTransportSecurity

Если вы хотите, чтобы все связи с любым доменом вы могли сделать:

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

Однако вы должны использовать последние только на этапе разработки.

Ответ 2

Другим способом решить эту проблему, которую я счел более удобной, является отключение приложения Transport Security по умолчанию с помощью клавиши NSAllowsArbitraryLoads. Таким образом, любые домены, которые вы не включаете в словарь NSExceptionDomains (или если вы вообще не включаете NSExceptionDomains), не будут обладать безопасностью транспорта приложений.

введите описание изображения здесь

Ответ 3

Я вижу неправильный ключ и опечатку на скриншоте. Вот рабочий пример:

screen

Ответ 4

Проект Xcode → перейдите в info.plist и нажмите кнопку +, затем добавьте (Настройки безопасности при работе в приложении). Разверните, разрешите произвольные загрузки. Установите YES. Спасибо

Ответ 5

Я работаю в xCode 8.2. Это немного отличается, но, редактируя файл PLIST, вам нужно добавить эти два элемента в строку App Transport Security Settings Line...:

Allow Arbitrary Loads и Allow Arbitrary Loads in Web Content... и дайте им ключ YES.

Это сработало для меня, надеюсь, эта работа для вас и извините за мой английский.

введите описание изображения здесь

введите описание изображения здесь