クッキーの自前ハンドリングを行っていてどうも受け取れていないクッキーが存在する。調べていると次のことが分かった。
1. 通常のレスポンス(200)の場合は、WebResourceLoadDelegateのメソッド が呼び出され、引数で渡される response からサーバが送出したクッキーを取り出すことができる。
2. リダイレクト(301等)の場合は、webView:resource:didReceiveResponse:fromDataSource: が呼ばれない。クッキーは webView:resource:willSendRequest:redirectResponse:fromDataSource: で渡される redirectResponse から取得する。
Googleのログインなどではリダイレクト時にもクッキーを送出しているのでこれも拾ってやる必要がある。
- - - -
クッキー送出の実装は苦戦中。上記問題が片付いたが、Googleへログインすると何故か強制終了してしまう...
Debugger() was called!
The Debugger has exited due to signal 2 (SIGINT).The Debugger has exited due to signal 2 (SIGINT).