【Swift】WKWebViewでCookieを全削除する方法


背景

iPhoneでデモアプリを作成している際に、Cookieをすべて削除する必要が出てきました。

let storage = NSHTTPCookieStorage.sharedHTTPCookieStorage()
for cookie in storage.cookies!{
    storage.deleteCookie(cookie)
}

こんな感じのことも試したんですが、そもそもCookie作ってるのに、存在していない模様。いろいろ調べたんですがObjective-Cの記事ばかりだったので、それを参考にして解決しました。

解決方法

let libraryPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.LibraryDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0]
let cookiesFolderPath = libraryPath.stringByAppendingString("/Cookies")
do {
   try NSFileManager.defaultManager().removeItemAtPath(cookiesFolderPath)
}catch {
   // error handling
}

Cookieはシミュレータ上では、Mac上のディレクトリに保存されているようです。ですので、そのディレクトリのパスを取得し、その中身をすべて消すという方でとりあえず解決しました。

実機でやったらどうなるんでしょうか、やってみた方がいらっしゃればコメントいただけると幸いです。