【发布时间】:2017-01-24 23:03:07
【问题描述】:
OSX Sierra 10.12.1 Safari 10.0.1
我试图以编程方式重现 MacOS Safari->Preferences->Privacy->ManageWebsiteData->RemoveAll 按钮在删除所有网站数据时的行为,但是,数据似乎始终存在。许多 SO 线程使用 HTTPCookieStorage 类提出了一些类似的建议:
if #available(OSX 10.11, *) {
cookieJar = HTTPCookieStorage.sharedCookieStorage(forGroupContainerIdentifier: "Cookies")
} else {
cookieJar = HTTPCookieStorage.shared
}
cookieJar.removeCookies(since: Date(timeIntervalSince1970: 1))
使用this binary cookie reader python 脚本,我可以在 ~/Library/Cookies/Cookies.binarycookies 中验证预期结果
我还验证了诸如 cookieJar.setCookie() 和 cookieJar.deleteCookie() 之类的操作在此存储中进行了更改,并且 cookieJar.cookies 符合预期。
我还根据遇到的其他几个 SO 线程添加了这个调用:
URLCache.shared.removeAllCachedResponses()
执行此代码后,网站数据继续被持久化。 Safari->Preferences->Privacy->ManageWebsiteData 似乎没有受到影响。
我还尝试按照此处的指导并在关闭 Safari 的情况下执行此操作,因为这可以使用 FileManager 类以编程方式实现: https://www.macissues.com/2015/06/22/how-to-fully-reset-safari-on-your-mac/
网站数据仍然存在。有谁知道需要采取任何进一步的步骤来完全删除所有网站数据?
【问题讨论】:
标签: swift macos cookies safari