2010-12-13 12 views
6

Ich habe eine App, die Anfrage an einen REST Service macht. Die Authentifizierung erfolgt über Cookies. Das funktioniert schon.Clear iPhone Simulator Cookies

Worauf ich Probleme habe ist, den Fall zu testen, wenn der Cookie nicht mehr gültig ist und mein Code erneut authentifizieren muss. Um dies zu testen, muss ich warten, bis der Cookie ungültig ist, was einige Zeit dauern kann. Um dies zu beschleunigen, dachte ich, dass wenn ich das Cookie lösche, es den gleichen Effekt hätte.

Wie lösche ich alle Cookies einer App auf dem iPhone Simulator?

Ich habe bereits versucht, die folgenden:

< app-dir> /Library/Cookies/Cookies.binarycookies Löschen funktioniert nicht. Es scheint, dass meine Cookies niemals in diese Datei geschrieben werden.

Löschen aller Cookies in NSHTTPCookieStorage beim Start der App funktioniert auch nicht.

+0

Gibt es einen Grund, den Simulator Zurücksetzen nicht für Sie arbeiten? – aepryus

Antwort

8

Die Cookies erscheint befinden sich in:

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

Möglicherweise müssen Sie Safari beenden (im Bereich für die schnelle App-Umschaltung) und sie dann löschen, damit Safari sie nicht im Speicher hat.

+0

Das schien nur für SDKs vor 4.x zu funktionieren. Ich habe diese Datei, aber es wurde seit dem Frühjahr nicht aktualisiert. – sliver

+0

Hmm, ich verstehe was du meinst. Das ist bizarr. Ich werde bearbeiten. –

+2

Das Löschen von Cookies/Cookies.binarycookies funktioniert definitiv für mich, siehe oben. –

-1

Warum sollte der Cookie-Ablauf nicht auf einen niedrigen Wert zum Testen gesetzt werden?

Das ist genau das gleiche dann.

0

Sie können zum Startbildschirm gehen, dann die Einstellungen App. Tippen Sie auf Safari und scrollen Sie dann nach unten, um Cookies zu löschen. Ich bin nicht sicher, wo die Cookie-Datei auf dem Dateisystem ist, irgendwo unter /Developer/Platforms/iPhoneSimulator.platform Ich würde erwarten (siehe Matthew Frederick's Antwort).

+0

Das war auch mein Gedanke, aber es scheint nicht wirklich die Cookies zu löschen, wenn ich es mache. –

22

KöNNEN SIE DEN SIMULATOR RESET

  • Starten Sie den Simulator.
  • Klicken Sie auf den ersten Eintrag in der "Menüleiste". Es heißt "iOS Simulator"
  • Ein Menü wird angezeigt. Nach unten drei Elemente auf "Reset Inhalt und Einstellungen"
  • Klicken Sie auf "Reset" im Dialog die

iPhone Simulator Reset Cookies

+0

Das Zurücksetzen ist in der Tat wahrscheinlich die einfachste Route, es sei denn, Sie möchten nicht alles andere im Simulator zurücksetzen. –

+0

Das ist keine Option, ich muss den Rest meines Inhalts nicht gelöscht haben. Obwohl ich es nach dem Zurücksetzen kopieren konnte. – sliver

+0

Nein Ich habe verschiedene Dateien (z. B. sqlite dbs), die Benutzerdaten speichern, die für meine Tests erforderlich sind. – sliver

13

Sie werden wahrscheinlich mehr Glück haben, wenn Sie dies im SDK-Code tun, anstatt Dateisysteme zu ändern. Versuchen:

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

gute Eins !! löste alle meine Probleme –

+0

Funktioniert wie Charme. Du sparst meinen Tag !! –

+0

aber es kann nicht lösen Problem für Instagram – jpd

2

ich fseventer nur verwendet zu untersuchen, was auf das Dateisystem iPhone Simulator passiert, wenn die „Cookies löschen und Daten“ Taste abgegriffen wird. Diese Befehle replizieren dieses Verhalten jedoch gibt es einen Trick:

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" 

Der Simulator neu gestartet werden muss.Also, vor das Dateisystem zu manipulieren, ich laufe dies:

killall "iPhone Simulator"