Esiste un modo più rapido / migliore per svuotare la cache del simulatore iPhone rispetto all'eliminazione della sua directory?


95

Quindi sono ancora ragionevolmente nuovo nello sviluppo iOS e mi trovo abbastanza regolarmente a dover eliminare DerivedData o il contenuto della directory del simulatore di iPhone, per fare in modo che le cose vengano effettivamente eseguite dal mio codice. Pulire in Xcode non fa la stessa cosa che svuotare quelle directory, giusto? E se no, c'è un modo più semplice per farlo che trascinare Finder in giro per raggiungerli e liberarli?


3 anni fa forse questa non era un'opzione, ma controlla la mia risposta, funziona per me!
Adrian Florescu

Risposte:


124

66:99 e arrampicata:

, c'è un modo migliore che entrare in ogni singolo simulatore in città e ripristinare i contenuti e le impostazioni uno alla volta. Anche molto meglio che guardare nella directory del tuo simulatore e strappare la cache da sotto i suoi piedi.

Esci da iPhone Simulator, quindi esegui xcrunin Terminal:

xcrun simctl erase all

Sicuro ed efficace.

Vedi https://stackoverflow.com/a/26394597/218152 per un singolo dispositivo

xcrun simctl cancella [ID dispositivo]


Tuttavia, questo cancella i simulatori stessi? Quindi dovrei aggiungerli nuovamente nella schermata Dispositivi di Xcode in seguito?
Luca

1
Solo il contenuto. Dalla documentazione ( xcrun simctl help), cancella : cancella i contenuti e le impostazioni di un dispositivo. , da non confondere con l' eliminazione : elimina un dispositivo o tutti i dispositivi non disponibili.
SwiftArchitect

Eccezionale. Tentato di cambiare la mia risposta corretta alla luce di questo :)
Luca

@lukech: molto apprezzato. Mi sono imbattuto in questa soluzione mentre cercavo di risparmiare memoria sul mio HD e stavo cercando un clean build folderapproccio. E ti aiuta a mantenere attiva questa domanda.
SwiftArchitect

questo comando impiega un'eternità per essere eseguito, come selezionare la sim di destinazione con uuid?
the_prole

104

Nel menu iOS Simulator , c'è un'opzione chiamata Ripristina contenuto e impostazioni ...

Questo dovrebbe fare il trucco.

MODIFICARE:

Per rendere tutto più semplice e veloce, ho aggiunto un tasto di scelta rapida come questo ...

In Preferenze di Sistema, scegli Tastiera

Preferenze di sistema della tastiera

Quindi scegli la scheda Scorciatoie . E fai clic su Scorciatoie app

Scorciatoie per le app Fare clic sul pulsante più per aggiungere un altro collegamento.

inserisci qui la descrizione dell'immagine Infine:

  1. Fare clic su Scegli simulatore dall'elenco a discesa Applicazione:. Se non è presente, scorri fino alla fine dell'elenco delle applicazioni e scegli "Altro ...". Quindi digita "simulatore" nella ricerca e aggiungi il simulatore da lì.
  2. Digita Cancella tutto il contenuto e le impostazioni ... nel titolo del menu: casella di testo.
  3. Digitare il tasto di scelta rapida preferita nella scorciatoia da tastiera: . (Io uso il punto di comando)
  4. Fare clic sul pulsante Aggiungi .

inserisci qui la descrizione dell'immagine

Ora, mentre sei nel tuo simulatore iOS, puoi semplicemente usare il tuo nuovo tasto di scelta rapida per ripristinare.


Se il simulatore non viene visualizzato nell'elenco a discesa:

  1. In una finestra del Finder, vai alla cartella Applicazioni.
  2. Fai clic con il pulsante destro del mouse su Xcode e scegli "Mostra contenuto pacchetto".
  3. Navigare verso Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/
  4. Vedrai iPhone Simulator.app.
  5. Ora, nell'app Impostazioni, invece di scegliere iOS Simulator che manca, scegli Altro ....
  6. Ciò farà apparire una finestra con un elenco di applicazioni.
  7. Ora trascina iPhone Simulator.app dalla finestra del Finder alla finestra visualizzata quando hai fatto clic su Altro ...

Il simulatore iOS non viene più visualizzato nell'elenco a discesa dell'applicazione. Devo semplicemente scegliere "xCode.app"? Sono su OS 10.8.3 con iOS Simulator 6.0.
potench

8
In una finestra del Finder, vai alla cartella Applicazioni. Opzione-clic su Xcode e scegliere "Mostra contenuto pacchetto". Vai alla Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/cartella. Vedrai iPhone Simulator.app. Ora, nell'app Impostazioni, invece di scegliere iOS Simulatorquale manca, scegli Other.... Ciò farà apparire una finestra con un elenco di applicazioni. Ora trascina iPhone Simulator.appdalla finestra del Finder alla finestra visualizzata quando hai fatto clic Other....
Jeff Wolski

1
Sono venuto qui in cerca di qualcos'altro, ma ho esaminato i tuoi passaggi solo perché la tua risposta era così buona. Grazie!
kodybrown

1
Reset Content and Settingsnon cancellerà le risorse lato client su una VPN. Ho lottato per un po 'chiedendomi perché le mie animazioni CSS funzionassero ovunque tranne che nel simulatore, solo per scoprire che stava memorizzando nella cache i vecchi file anche quando avevo cancellato il contenuto e le impostazioni. L'unica cosa che ha finito per funzionare per me è stata la disconnessione dalla mia VPN e il riavvio della mia VM, quindi la riconnessione (il framework che uso tutte le mie risorse per me) - puoi anche modificarle manualmente se solo testando cose, ma è fastidioso. Questo è qualcosa che Apple dovrebbe risolvere; succede solo durante il test per iOS per me.
Benny

3
Se non riesci a trovare il simulatore sul percorso Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/indicato da @JeffWolski, puoi cercarlo con il termine di ricercasimulator.app
atulkhatri

8

Per lo sviluppo web e il test su iOS Simulator (Safari):

  1. Con iOS Simulator e Safari aperti, vai su Safari> Sviluppo> iOS Simulator e seleziona la tua pagina che ti darà accesso agli strumenti di Web Inspector.

  2. Vai su Safari> Sviluppo> Svuota cache per svuotare la cache su iOS Safari.


@AdrianFlorescu questa è una soluzione per il debug dello sviluppo web su iOS Safari, ma penso che la domanda riguardasse lo sviluppo di app iOS.
Ryan

4
Non funziona su Safari 9.0.3 con debugger remoto. Anche "Disabilita cache" non ha effetto.
Gamadril

1
Questa impostazione non fa nulla per me (in realtà non cancella la cache su mobile safari)
HandiworkNYC.com

Si. Sembra che non pulisca più la cache di iOS. Immagino sia successo in passato ...
Yosh

questa è l'unica soluzione che sembra funzionare stackoverflow.com/a/51421939/1055015
Exlord
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.