2010-12-13 15 views
6

Ho un'app che richiede un servizio REST. L'autenticazione viene eseguita utilizzando i cookie. Questo funziona già.Cancella cookie simulatore iPhone

Quello che ho problemi è testare il caso quando il cookie non è più valido e il mio codice deve riautentarsi. Per verificare ciò, devo aspettare che il cookie non sia valido, il che potrebbe richiedere del tempo. Per accelerare questo ho pensato che se cancellassi il cookie avrebbe lo stesso effetto.

Come eliminare tutti i cookie di un'app sul simulatore iPhone?

Ho già provato la seguente:

Eliminazione < app-dir> /Library/Cookies/Cookies.binarycookies non funziona. Sembra che i miei cookies non vengano mai scritti su questo file.

L'eliminazione di tutti i cookie in NSHTTPCookieStorage all'avvio dell'app non funziona.

+0

C'è qualche motivo resettare il simulatore non funzionerà per voi? – aepryus

risposta

8

I biscotti si trovano in:

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

Potrebbe essere necessario uscire da Safari (nell'area di commutazione rapida dell'app) e quindi eliminarli in modo che Safari non li abbia in memoria.

+0

Sembrava funzionare solo per gli SDK precedenti alla 4.x. Ho quel file ma non è stato aggiornato dalla primavera. – sliver

+0

Hmm, capisco cosa intendi. È bizzarro. Io modifico –

+2

Eliminare cookie/cookie.binarycookies funziona sicuramente per me, se sopra. –

-1

Perché non forzare la scadenza dei cookie a un valore basso per il test?

Questo è esattamente lo stesso di allora.

0

È possibile accedere alla schermata iniziale, quindi all'app delle impostazioni. Tocca Safari, quindi scorri verso il basso fino a Cancella cookie. Non sono sicuro di dove il file dei cookie si trovi sul file system, da qualche parte in /Developer/Platforms/iPhoneSimulator.platform Mi aspetto (vedi la risposta di Matthew Frederick).

+0

Anche questo era il mio pensiero, ma non sembra che in realtà pulisca i cookie quando lo faccio. –

22

è possibile reimpostare il SIMULATORE

  • Avviare il simulatore.
  • Fare clic sulla prima voce sulla "barra dei menu". Dice "iOS Simulator"
  • Apparirà un menu. Scendete tre elementi da "Reset contenuto e impostazioni"
  • Fare clic su "Reset" nella finestra di dialogo che appare

iPhone Simulator Reset Cookies

+0

Il reset è probabilmente il percorso più semplice a meno che non si desideri reimpostare tutto il resto nel simulatore. –

+0

Questa non è un'opzione, ho bisogno di avere il resto del mio contenuto non cancellato. Anche se potrei copiarlo dopo il reset. – sliver

+0

No, ho vari file (ad es. Sqlite dbs) che salvano i dati dell'utente necessari per i miei test. – sliver

13

Probabilmente troverai più fortuna nel fare questo nel codice SDK piuttosto che modificare i file system. Prova:

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

buono !! risolto tutti i miei problemi –

+0

funziona come il fascino. Tu salvi la mia giornata !! –

+0

ma non risolve il problema con instagram – jpd

2

ho appena usato fseventer per ispezionare ciò che accade al file system iPhone Simulator quando il pulsante "Cancella cookie e dati" è sfruttato. Questi comandi replicano che il comportamento, tuttavia, c'è un trucco:

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" 

Il simulatore deve essere riavviato.Quindi, prima di manipolare il filesystem, corro questo:

killall "iPhone Simulator" 
Problemi correlati