2017-01-27 7 views
0

Я был создать структуру, которая с помощью NSURLSessionDataTask (HTTP), чтобы отправить запрос на сервер, но всякий раз, когда я использую Framework в примере приложения, она показывает предупреждение, как это:iOS9: App Транспортная безопасность внутри .plist Framework

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

Я попытался добавить защиту транспорта приложений внутри Framework .plist, но все еще не работает. Но он работает, когда я добавляю App Transport Security в .plist вне Framework.

Есть ли решение этой проблемы? Спасибо

+0

Исключение предоставляется для вашего приложения, а не для конкретной структуры. Просто добавьте его в Info.plist вашего приложения. – EmilioPelaez

ответ

-1

enter image description here Добавить NSAllowsArbitraryLoads как истинный ключ в вашем info.plist, чтобы избежать этой проблемы.

+0

Пожалуйста, не рекомендуется это решение, не объясняя, что Apple будет требовать от приложений предоставления обоснования для отключения ATS. – wottle

0

Как указано в @EmilioPelaez, приложение управляет активностью ATS или нет. Если ваша инфраструктура делает что-то, что нарушает правила ATS, каждое приложение, использующее инфраструктуру, должно будет добавить соответствующие исключения.

Для этого есть веские основания. Возьмем, к примеру, общую инфраструктуру сетевого помощника, где URL-адреса предоставляются для вызовов инфраструктуры вызывающим приложением. В рамках этой структуры не было бы никакого способа узнать, потребуется ли ей ОВД. И наоборот, если в структуре есть жестко закодированные URL-адреса, требующие исключений ATS, разработчик вызывающего приложения должен знать об этом, и он не должен быть закрыт лицом, которое разработчик инфраструктуры добавил в исключения. Я, как разработчик, хотел бы знать, что я использовал фреймворк, который по своей сути был небезопасным. Если вы имеете дело с последним сценарием, просто добавьте в свою документацию фреймворка исключения, которые необходимы для правильной работы фреймворка.

Кроме того, в качестве передовой практики с АТС, не просто отключить его совсем, есть определенные исключения, которые могут быть использованы, чтобы минимизировать воздействие угроз безопасности только отключив некоторые части требований ОВД для конкретных областей. Обязательно сделайте это. Кроме того, поймите, что Apple планировала потребовать обоснования для многих исключений ATS в конце 2016 года, но в настоящее время она отложена. Если вы добавляете исключения, вы должны быть готовы к тому, что в какой-то момент, когда вы отправите приложение в App Store, вас попросит Apple по какой-либо причине. Вероятно, это не должно быть «потому что переполнение стека говорит мне отключить все ATS».

0

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

Это не означает, что. Особенно, если вы создаете рамки. Найдите время и добавьте поддержку HTTPS на сервер/обратитесь к разработчику сервера, чтобы добавить его. Потому что Apple скоро перестанет поддерживать AllowArbitraryLoads/exceptions. Таким образом, приложения, которые включают вашу инфраструктуру, не смогут пройти процесс обзора, не предоставляя обоснованной причины, почему им нужны эти исключения. Apple первоначально планировала отказаться от поддержки с 1 января 2017 года, но они отложили ее на неизвестный период времени. Тем не менее, они сделают это когда-нибудь. Лучше планировать будущее.

P.S. Если у вас нет абсолютно никакого контроля над сервером, а разработчик сервера находится на Марсе, и ваша инфраструктура действительно нуждается в общении с этим сервером, разработчики приложений, вероятно, смогут пройти обзор, объяснив ситуацию («нет контроля над сервер "является веской причиной для команды Apple Review), но каждый из них должен будет делать это снова и снова, и вам придется объяснить в своей документации, как это сделать и что сказать. Поэтому переключение на HTTPS проще.