Как разрешить использование загрузки по HTTP в приложении для iOS 9

{lang: 'ru'}

Начиная с iOS 9, Apple включила для всех приложений функцию App Transport Security (ATS), которая призвана следить, чтобы вся коммуникация по сети между приложением и бекендом происходила по защищённым каналам связи (с использованием защищённых протоколов типа HTTPS). Всё это сделано для обеспечения безопасности пользователей и чтобы подтолкнуть разработчиков к использованию шифрования трафика, особенно при передаче паролей и персональных данных.

Однако, на начальном этапе разработки данная функция скорее мешает. К тому же, иногда может понадобится загрузить что-либо по используя обычный HTTP. Но, при попытке это сделать вы увидите следующее сообщение в консоли:

App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app’s Info.plist file.

Здесь вам сообщается, что ATS заблокировал загрузку ресурса через открытый протокол HTTP. Временное исключение может быть сконфигурировано в файле Info.plist.

Замечу, что есть два способа обойти это предупреждение. В Info.plist можно разрешить любые небезопасные соединения, либо добавить в исключения только некоторые домены. Разрешение всех соединений является дурным тоном и повышает риск нарваться на уязвимость вашего приложения. Делайте это на свой страх и риск. Тем не менее, я покажу оба способа.

Откройте Info.plist и кликнете правой кнопкой над любым полем в нём.

Появится контекстное меню, в котором нужно выбрать “Add Row”.

Далее, вы выпадающем списке выберите “App Transport Security Settings”.

Раскройте появившуюся строку, нажав на стрелочку.


Кликнете на “+”, чтобы добавить новый ключ.

Вам на выбор предоставят два варианта: “Allow Arbitrary Loads” и “Exception Domains” – “Разрешить произвольные загрузки” и “Домены исключения” соответственно.

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

При выборе доменом для исключения, все будет немного сложнее, поскольку Xcode не предлагает правильные ключи при добавлении своего домена, а они необходимы для правильной конфигурации. Поэтому, после добавления своего домена лучше открыть Info.plist в текстовом редакторе и поправить его “ручками”. Не забывайте, что plist – это всего лишь самый обычный XML-файл! Участок, который нужно поправить, должен выглядеть примерно так:

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

Дополнительную информацию всегда можно посмотреть в официальной документации Apple.


Полезная статья? Их будет больше, если вы поддержите меня!