WKProcessPoolが違ってもWKWebView同士のcookieを同期されていた2018-04-27WKProcessPoolが違ってもWKWebView同士のcookieを同期されていたiOS複数WKWebViewがある時の挙動を調べてみました。下のようにWKWebViewを2つ並べます。}}実行すると下のようにWebViewが2つ並んでいる事が分かります。この状態で片方でTwitterにログインするともう一方でもログイン状態になります。以前「一緒のWKProcessPoolを使えばcookieも同期される」と聞いてたので、同じWKProcessPoolを使ってないのに共通化されてたのは予想外でした。念の為2つのWKProcessPoolを比較したんですが別のインスタンスでした。poolが一緒なら同じprocessを使うとあるので、これはcookieの共通化に関わっていそうです。Documentationその後調べていたら、cookie共通化にはWKProcessPoolではなくWKWebsiteDataStoreを使うという記事を見つけました。stackoverflow.comもしかすると「cookieが共通化されているのは同じWKWebsiteDataStoreを使っているからでは?」と思い実験してみました。試しに下のようなコードを書いたらたしかに同じWKWebsiteDataStoreを使っていました。trueどうやらWKWebViewはデフォルトでWKWebsiteDataStore.defaultを使っているようです。WKWebsiteDataStore.default()違うWKWebsiteDataStoreを使ったらどうなるか確認する為、下のように片方のwebsiteDataStoreにWKWebsiteDataStore.nonPersistent()をセットしました。}}実行すると、cookieが共通化されていない事が分かります。その後WKWebsiteDataStoreは別、WKProcessPoolは同じものを使っているという状態も試したんですが、cookieは共通化されませんでした。そのため、cookieの共通化はWKWebsiteDataStoreに任せるのが良さそうです。Extensionでウィジェット作成SwiftUIを触ってみるGoogleのデータポータル(旧DataStudio)でアプリの新規ユーザーをグラフ化FirebaseのデータをBigQueryに入れて分析する月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。