16

NSHTTPCookieStorage の Cookie 受け入れポリシーに関する Apple ドキュメントは混乱を招きます。

これは、ドキュメントが言うことです:

NSHTTPCookieStorage は、Cookie のストレージを管理するシングルトン オブジェクト (共有インスタンス) を実装します。各 Cookie は、NSHTTPCookie クラスのインスタンスによって表されます。原則として、Cookie はすべてのアプリケーション間で共有され、プロセスの境界を越えて同期されます。セッション Cookie (Cookie オブジェクトの isSessionOnly メソッドが YES を返す場合) は、単一のプロセスに対してローカルであり、共有されません。

iOS 注: iOSでは、Cookie はアプリケーション間で共有されません。

注: Cookie 受け入れポリシーに加えられた変更は、Cookie ストレージを使用して現在実行中のすべてのアプリケーションに影響します。

そして、以下について - (void)setCookieAcceptPolicy:(NSHTTPCookieAcceptPolicy)aPolicy

デフォルトの Cookie 受け入れポリシーは NSHTTPCookieAcceptPolicyAlways です。Cookie ポリシーを変更すると、Cookie ストレージを使用している現在実行中のすべてのアプリケーションに影響します。

ここで私が最初に考えたのは、アプリが setCookieAcceptPolicy を呼び出す場合、その変更は他の実行中のアプリケーションに影響を与えるだろうということでした。これは事実ではないようです。setCookieAcceptPolicy の呼び出しは、それを呼び出したアプリにのみ影響します。

実行中のすべてのアプリケーションに適用される唯一の Cookie ポリシーは、Safari のものです。iOS 7 では、アプリが setCookieAcceptPolicy を呼び出す前に、サファリ ポリシーを使用します。そのため、Safari の Cookie ポリシーが常にブロックするように設定されている場合、アプリは独自の Cookie ポリシーを設定するまで Cookie を使用できません。iOS 7 が登場して以来、これが多くのアプリで問題を引き起こしていることを理解しています。

このすべてについての私の観察は正しいですか、それとも何かを見逃していますか?

編集

私は Apple にバグを報告し、今彼らからの返事を待っています。

4

2 に答える 2