清除iPhone模拟器cookie

时间:2010-12-13 08:57:36

标签: iphone nshttpcookie

我有一个应用程序向REST服务发出请求。使用cookie完成身份验证。这已经有效了。

我遇到的问题是在cookie不再有效且我的代码必须重新进行身份验证时测试案例。为了测试这个,我必须等到cookie无效,这可能需要一些时间。为了加速这一点,我想如果我删除cookie它将具有相同的效果。

如何在iPhone模拟器上删除应用的所有Cookie?

我已经尝试了以下内容:

正在删除< app-dir> /Library/Cookies/Cookies.binarycookies不起作用。似乎我的cookie永远不会写入此文件。

在应用启动时删除NSHTTPCookieStorage中的所有Cookie也不起作用。

6 个答案:

答案 0 :(得分:22)

您可以重置模拟器

  • 启动模拟器。
  • 点击“菜单栏”上的第一项。它说“iOS模拟器”
  • 会出现一个菜单。将三个项目下移到“重置内容和设置”
  • 点击出现的对话框中的“重置”

iPhone Simulator Reset Cookies

答案 1 :(得分:13)

您可能会在SDK代码中找到更好的运气而不是修改文件系统。 尝试:

    //Delete previous cookies
    NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    for (NSHTTPCookie *each in [[[cookieStorage cookiesForURL:YOUR_URL] copy] autorelease]) {
        [cookieStorage deleteCookie:each];
    }

答案 2 :(得分:8)

Cookie位于:

/Users/<YourUsername>/Library/Application Support/iPhone Simulator/<iOSversion>/Library/Cookies/Cookies.binarycookies

您可能需要退出Safari(在快速应用切换区域中),然后将其删除,以便Safari不会将其存储在内存中。

答案 3 :(得分:2)

我只是使用fseventer来检查点击“清除Cookie和数据”按钮时iPhone模拟器文件系统会发生什么。这些命令会复制该行为,但是,有一个技巧:

rm -rf "$HOME/Library/Application Support/iPhone Simulator/5.0/Library/Cookies"
rm -rf "$HOME/Library/Application Support/iPhone Simulator/5.0/Library/Caches/Snapshots"
rm -rf "$HOME/Library/Application Support/iPhone Simulator/5.0/Library/Caches/com.apple.mobilesafari"
rm -rf "$HOME/Library/Application Support/iPhone Simulator/5.0/Library/WebKit"
rm -rf "$HOME/Library/Application Support/iPhone Simulator/5.0/Library/Safari"

模拟器需要重新启动。所以,操作文件系统之前,我运行它:

killall "iPhone Simulator"

答案 4 :(得分:0)

您可以转到主屏幕,然后转到设置应用。点按Safari,然后向下滚动到清除Cookie。我不确定文件系统中cookie文件的位置, /Developer/Platforms/iPhoneSimulator.platform下的某个地方我希望(参见Matthew Frederick的回答)。

答案 5 :(得分:-1)

为什么不强制cookie过期到低值进行测试?

那就完全一样了。