-canOpenURL: не удалось URL: "itms-books://" - ошибка: "Это приложение не может запрашивать для схемы itms-books"

Я просто запускаю стабильную версию xcode 7. В моем текущем проекте я загружаю изображения из webservice. В xcode 6.4 работала нормально. Теперь он не показывает изображение и показывает предупреждение в журнале

-canOpenURL: не удалось URL: "itms-books://" - ошибка: "Это приложение не может запрашивать для схемы itms-books"

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

Ответ 1

Я нашел свою проблему, я добавил ключ в файл info.plist.

Добавить словарь NSAppTransportSecurity → добавить новое имя логического ключа NSAllowsArbitraryLoads в файл project.plist проекта.

Ответ 2

Это новая безопасная мера безопасности, реализованная Apple в любом приложении, которое создается в iOS 9.

Единственное решение до сих пор заключается в том, чтобы добавить запись в файл info.plist с помощью ключа LSApplicationQueriesSchemes и добавить "itms-books" и любую другую схему URL-адресов, к которой будет привязываться ваше приложение в этом массиве.

LSApplicationQueriesSchemes

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

Имейте в виду, что существует ограничение на количество приложений, которые вы можете зарегистрировать, что составляет 50.

Ответ 3

Вам также может потребоваться добавить в plist другой ключ под названием LSApplicationQueriesSchemes (массив типов) И добавьте к нему схему "itms-books" как строковый элемент, чтобы позволить canOpenURL протестировать его.