我有一个应用程序向REST服务发出请求。使用cookie完成身份验证。这已经有效了。
我遇到的问题是在cookie不再有效且我的代码必须重新进行身份验证时测试案例。为了测试这个,我必须等到cookie无效,这可能需要一些时间。为了加速这一点,我想如果我删除cookie它将具有相同的效果。
如何在iPhone模拟器上删除应用的所有Cookie?
我已经尝试了以下内容:
正在删除< app-dir> /Library/Cookies/Cookies.binarycookies不起作用。似乎我的cookie永远不会写入此文件。
在应用启动时删除NSHTTPCookieStorage中的所有Cookie也不起作用。
答案 0 :(得分:22)
您可以重置模拟器
答案 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过期到低值进行测试?
那就完全一样了。