2013-03-12 2 views

risposta

8
+2

Non intendi "Definitivo"? – trojanfoe

+1

Grazie, è davvero molto utile. Ma sfortunatamente non funziona per me. (XCode 4.6.1) –

+0

Yossi, utilizzare i problemi di Github per documentare bug e richiedere correzioni. Sono più che felice di aiutarti, ma ti preghiamo di utilizzare Github Issues per ulteriori comunicazioni. –

-1

Per impostare il contenuto utente e le impostazioni del simulatore allo stato di fabbrica e rimuovere le applicazioni installate, selezionare iPhone Simulator> Reimposta contenuto e impostazioni.

+1

questo azzera solo uno. non me lo ha chiesto :) ha chiesto di resettare multipli contemporaneamente! –

+0

Quindi non può farlo direttamente. si potrebbe scrivere uno script bash/apple per modificare direttamente il filesystem .... tutti i sim sono sotto ~/Libreria/Application Support/iPhone Simulator /% VERSION% –

+0

Sì, ho completamente letto male la domanda: - /. – memmons

0

È possibile chiamare questo comando:

rm -rf ~/Library/Application Support/iPhone Simulator 
4

Basta andare su ~/Library/Application Support/iPhone Simulator e cancellare tutti i contenuti da lì. I metodi sopra non funzionano su iOS 7, quindi questo sembrava funzionare per me.

1

Ho scritto uno script che ripristinerà le impostazioni & di tutte le versioni e i dispositivi per il simulatore iOS. Prende i nomi dei dispositivi e i numeri di versione dal menu, quindi includerà tutti i nuovi dispositivi o versioni iOS per cui Apple rilascia i simulatori.

È facile da eseguire manualmente o da utilizzare in un build-script. Suggerirei di aggiungerlo come script di esecuzione pre-azione prima della compilazione.

È basato pesantemente sullo script di Stian sopra, ma non diventa obsoleto con le nuove versioni di iOS ed elimina la finestra di dialogo (meglio per gli script di build di automazione).

https://github.com/michaelpatzer/ResetAllSimulators

0

C'è uno strumento xctool - https://github.com/facebook/xctool che è la sostituzione di xcodebuild. Permette di creare applicazioni dalla riga di comando e di eseguire test per questo. Oltre all'esecuzione di test, è possibile fornire argomenti come -freshSimulator e -freshInstall che reimpostano il contenuto per il simulatore di destinazione prima dell'esecuzione dei test. Ciò semplifica molto il ripristino del simulatore, poiché si evitano varie magie con script di bash ecc. Tutto incapsulato all'interno dello strumento.

12

Con Xcode 6, è possibile utilizzare l'utilità della riga di comando simctl:

xcrun simctl erase <device UDID> 

Con Xcode 7, è possibile cancellare tutti in una volta con:

xcrun simctl erase all 
+0

Per chiunque stia leggendo queste risposte, dirò che questa è sicuramente una scelta migliore rispetto al semplice whacking della cartella di iPhone Simulator per il supporto delle applicazioni con rm -rf. –

39

Sulla base della risposta da Jeremy Huddleston Sequoia Ho scritto uno script di shell che resetterà tutti i simulatori.

Per Xcode 7 è possibile utilizzare:

#!/bin/sh 

instruments -s devices \ 
| grep "(\d[.0-9]\+) \[[0-9A-F]\{8\}-[0-9A-F]\{4\}-[0-9A-F]\{4\}-[0-9A-F]\{4\}-[0-9A-F]\{12\}\]" \ 
| grep -o "[0-9A-F]\{8\}-[0-9A-F]\{4\}-[0-9A-F]\{4\}-[0-9A-F]\{4\}-[0-9A-F]\{12\}" \ 
| while read -r line ; do 
    echo "Reseting Simulator with UDID: $line" 
    xcrun simctl erase $line 
done 

Per le versioni precedenti utilizzano:

#!/bin/sh 

instruments -s devices \ 
| grep Simulator \ 
| grep -o "[0-9A-F]\{8\}-[0-9A-F]\{4\}-[0-9A-F]\{4\}-[0-9A-F]\{4\}-[0-9A-F]\{12\}" \ 
| while read -r line ; do 
    echo "Reseting Simulator with UDID: $line" 
    xcrun simctl erase $line 
done 
+0

Hai dimenticato un "" carattere alla fine della tua espressione regolare, non posso modificare per un personaggio, quindi sto solo commentando :) –

+0

Grazie per aver condiviso questo Daniel, funziona benissimo – Ruenzuo

+0

Ciao Daniel. Funzionava perfettamente, ma ha smesso di funzionare per xcode7 Penso che sia necessario modificare la regex – eertl

4

Ispirato alla risposta da Daniel legno, sono arrivato fino a questo.

Risolve il problema di cosa fare con un simulatore di corsa. Il nostro ambiente CI lascia il simulatore in esecuzione dopo l'esecuzione dei test, e questo si sta facendo sempre più rovinoso nel tempo.

Il rilevamento guid non è accurato, ma penso che il compromesso sulla leggibilità sia utile.

#!/bin/bash 
xcrun simctl list | grep Booted | grep -e "[0-9A-F\-]\{36\}" -o | xargs xcrun simctl shutdown 
xcrun simctl erase all 

testato con il XCode 7.

+0

fantastico, non sapevo che esistesse un argomento xcrun 'shutdown'. Grazie – JJacquet

+0

Questo dovrebbe probabilmente essere la nuova risposta accettata. Ritiriamo lo script predefinito Reset iOS Simulator;) –

4

Con l'ultima versione di strumenti da riga di comando Xcode è possibile chiamare xcrun simctl erase all

Assicurarsi di lasciare il sim ogni volta che si chiama questa funzione o ti ottenere un errore che indica An error was encountered processing the command (domain=com.apple.CoreSimulator.SimError, code=159): Unable to erase contents and settings in current state: Booted

+0

Funziona su entrambi gli Xcode 6 e 7 ed è molto più semplice di qualsiasi script di terze parti. – leolobato

+1

Esegui 'killall" Simulatore "' prima 'xcrun simctl cancella tutto ' –

4

è possibile eseguire questo comando xcrun simctl erase all

+1

In realtà, questo fornisce la risposta esatta alla domanda. –