Документы Apple о политике принятия cookie для NSHTTPCookieStorage сбивают с толку.
Это то, что говорят документы:
NSHTTPCookieStorage реализует одноэлементный объект (общий экземпляр), который управляет хранением файлов cookie. Каждый файл cookie представлен экземпляром класса NSHTTPCookie. Как правило, файлы cookie совместно используются всеми приложениями и сохраняются в синхронизации по границам процесса. Сессионные файлы cookie (где объекты cookie - это методSessionOnly возвращает ДА) являются локальными для одного процесса и не используются совместно.
iOS Примечание. Cookies не распространяются среди приложений в iOS.
Примечание. Изменения, внесенные в политику принятия cookie, влияют на все текущие приложения, использующие хранилище файлов cookie.
И следующее: - (void) setCookieAcceptPolicy: (NSHTTPCookieAcceptPolicy) aPolicy
Политика принятия cookie по умолчанию - NSHTTPCookieAcceptPolicyAlways. Изменение политики cookie влияет на все текущие приложения, использующие хранилище файлов cookie.
Теперь моя первая мысль заключалась в том, что приложение должно было вызвать setCookieAcceptPolicy, изменение повлияло бы на другие запущенные приложения. Это, похоже, не так. Вызов setCookieAcceptPolicy повлияет только на приложение, которое вызвало его.
Единственная политика cookie, которая применяется ко всем запущенным приложениям, - это Safari. В iOS 7 до того, как приложение вызывает setCookieAcceptPolicy, оно использует политику сафари. Поэтому, если политика cookie сафари настроена всегда на блокировку, любое приложение не сможет использовать файлы cookie до тех пор, пока не установит свою собственную политику файлов cookie. Я понимаю, что это вызвало проблемы для многих приложений, так как вышел iOS 7.
Я считаю, что мои наблюдения правильны обо всем этом, или я что-то пропустил?
Edit
Я поднял ошибку с Apple и ожидаю услышать от них сейчас.