Вы должны понимать, что ваши настройки ATS позволяют вашему приложению.
NSAllowsArbitraryLoads
при значении true позволяет подключаться к любому серверу по HTTP Поэтому не стесняйтесь пытаться загрузить данные с любого URL по схеме http
.
Настройка домена исключения (при условии, что ваш "mydomain.net" является заполнителем для фактического значения) позволит вам подключиться к любому поддомену (поскольку NSIncludesSubdomains
true) из "mydomain.net", используя:
- HTTP (потому что для
NSTemporaryExceptionAllowsInsecureHTTPLoads
установлено значение true)
- HTTPS-соединение, которое поддерживает все требования ATS, за исключением прямой секретности (поскольку вы установили
NSThirdPartyExceptionRequiresForwardSecrecy
только в true)
Сначала убедитесь, что вы можете подключиться к URL-адресу, к которому вы пытаетесь подключиться, из Safari на соответствующем устройстве (в данном случае, на симуляторе). Safari не обеспечивает выполнение требований ОВД, поэтому вы можете увидеть, связано ли это с ОВД. Если вы не можете получить доступ к URL-адресу, он связан с подключением. Это может быть недоступность сервера или проблема с сертификатом для безопасного соединения. Если это проблема, вы, вероятно, можете избавиться от любых исключений ATS, которые вы добавили, пытаясь решить проблему.
Если вы можете подключиться к ресурсу, попробуйте проверить, какие требования ATS не выполняются, чтобы вы могли добавить соответствующие исключения. В терминале на вашем Mac запустите следующую команду, чтобы получить отчет о соответствии сервера правилам ATS:
nscurl --ats-diagnostics <url>
Это скажет вам, если сервер не поддерживает прямую секретность, или если версия TLS слишком низкая. Затем вы можете добавить определенные исключения ATS для этого домена.
Я все еще считаю, что есть еще одна проблема, поскольку ошибки ATS в журнале обычно очень ясны. Ваша ошибка кажется общей проблемой подключения. Вы упоминаете, что ваш Mac подключен к VPN. Требует ли ваша VPN использование прокси HTTP / HTTPS? Если так, у меня были проблемы с симулятором, пытающимся использовать прокси Mac, когда прокси требует определенных типов аутентификации. Если ваш http-прокси требует аутентификации, вы можете попытаться установить что-то вроде Charles Proxy в качестве посредника. То есть настройте прокси-сервер Charles для аутентификации на прокси-сервере вашей компании, а затем укажите Mac / симулятору использовать локальный прокси-сервер Charles, который должен быть настроен так, чтобы не нуждаться в аутентификации.