Xcode Simulator: come rimuovere i vecchi dispositivi non necessari?


219

Sto eseguendo Xcode 4.3.1 iOS-Simulator che originariamente supporta solo iOS 5.1.

Devo testare il mio codice con iOS 4.3, quindi ho utilizzato la funzione "Installa" di Xcode per installarlo come descritto in "Installazione di Xcode con il simulatore di dispositivo iOS 4.3?"

Ora ho finito con il test, ma non riesco a trovare un modo per disinstallare le parti 4.3 ("iPhone 4.3 Simulator" e "iPad 4.3 Simulator"). Voglio ridurre il disordine nel menu Schema.

Nessuno nel listserv Xcode di Apple conosceva la risposta!

EDIT: nota che molto è cambiato da Xcode 4.3, quindi suggerisci a chiunque di leggere questo sguardo a tutte le risposte. I più recenti come Steve Moser potrebbero esserti più utili!

EDIT 10/2017: Pubblicato su Twitter da Julio Carrettoni

Se sei uno sviluppatore iOS, esegui questo:
$ xcrun simctl delete unavailable
rimuove i vecchi simulatori che Xcode non utilizza più. Per me era 6 GB Non l'ho provato da solo ...

[Inoltre, ho appena visto Russ Bishop menzionarlo in un commento qui sotto già ...]

Risposte:


175

Hai provato a eliminare solo l'SDK 4.3 dall'interno del pacchetto Xcode?

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs

si prega di eliminare anche il file .dmg corrispondente in

~ / Library / Caches / com.apple.dt.Xcode / Downloads

per impedire a Xcode di reinstallare nuovamente lo stesso pacchetto.


per XCode> = 6 vedi la risposta di @ praveen-matanam


3
Sei un genio! Grazie mille! Non posso credere che nessuno su Xcode listserv lo sapesse. Guardo in diversi posti ma non dove mi avevi suggerito.
David H

Questo non funzionerà in xcode 4.5.2. Non appena riavvii il compilatore, ti chiederà di installare nuovamente i dispositivi legacy più vecchi. Annulla uscirà da xcode quindi sei costretto a installarlo di nuovo.
Alejandro Luengo

Proprio così Alejandro, Apple sembra aver cambiato la "cosa della licenza" in modo che tu abbia sempre bisogno di un account sviluppatore valido e devi installare tutte le estensioni ancora e ancora su ogni aggiornamento principale all'interno dell'app .. anche i sistemi legacy sono per lo più non supportati; (
childno͡.de

1
Vedi la risposta di Dan Reese di seguito per qualcosa che funziona su Xcode 4.6.
BJ Homer

2
Ha funzionato per Xcode 6.3.1, insieme a questa risposta stackoverflow.com/a/30206853/286618 . Vecchia documentazione cancellata e salvati 9 GB !!!
RoLYroLLs

204

In Xcode 6+ puoi semplicemente andare su Menu> Finestra> Dispositivi> Simulatori ed eliminare un simulatore che non ti serve.


1
La domanda era rilevante nella versione 4 e probabilmente 5. Come puoi vedere, era abbastanza difficile. Da allora ho evitato di usare simulatori più vecchi.
David H,

3
È corretto. Se si desidera che i simulatori di essere "veramente andato" o reinstallare in Xcode -> Preferenze -> Download è necessario eliminare il runtime simulatore come fuori punte di seguito stackoverflow.com/a/30206853/1344293
mathz

Grazie questo è il modo più semplice per gestire i simulatori. invece di eliminare i simulatori dalle cartelle xcode. Questo funziona per me :)
Chirag

Come si elimina un dispositivo con una versione iOS precedente? La finestra dei dispositivi mostra solo i simulatori con iOS 9.1 (su Xcode 7.1). Vorrei evitare di modificare device_set.plist e rimuovere le cartelle nel Finder.
bio

Puoi anche utilizzare questo script per ricreare i simulatori: gist.github.com/cabeca/3ff77007204e5479f7af
tomi44g

160

In Xcode 6 e versioni successive, puoi trovare ed eliminare i simulatori dal percorso /Library/Developer/CoreSimulator/Profiles/Runtimes. Riavvia Xcode per avere effetto (potrebbe non essere necessario).


6.4 qui. È necessario riavviare la mia macchina affinché abbia effetto.
aasatt

2
7.2 - nessun riavvio richiesto
TheEye

xcode 8.0 necessitava di un riavvio per cancellare i simulatori non validi nella finestra dei dispositivi
Doug Amos,

2
@thiagoveloso è perché non hai installato nessun'altra versione di simulatori, ma iOS 10.0+. Ho avuto lì solo 9.3, 8.4 e 8.3 .simruntimei file
Aleksey Potapov

1
Posso essere anche io~/Library/Developer/...
Roberto

139

Aggiornamento di ottobre 2020

Come è stato detto, puoi usare xcrunper fare alcune cose:

  • xcrun simctl list deviceso xcrun simctl list --jsonper elencare tutti i simulatori
  • xcrun simctl delete <device udid> per eliminare un dispositivo specifico
  • xcrun simctl delete unavailable per rimuovere vecchi dispositivi per tempi di esecuzione non più supportati

Altre cose che puoi fare con xcrun(vedi snippet di codice)

Risposta originale

Settembre 2017, Xcode 9

Autonomia

Li troverai qui:

/Library/Developer/CoreSimulator/Profiles/Runtimes

inserisci qui la descrizione dell'immagine

dispositivi

Per eliminare i dispositivi vai qui:

~/Library/Developer/CoreSimulator/Devices

Molto più facile eliminarli usa Xcode: Xcode-> Finestra-> Dispositivi e simulatori inserisci qui la descrizione dell'immagine

Aiutare Xcode a "dimenticare" i runtime e impedire di reinstallarli - elimina i file .dmg qui:

~/Library/Caches/com.apple.dt.Xcode/Downloads

Spero che possa aiutare qualcuno 🙂


9
Si prega di non eliminare i dispositivi dal filesystem; utilizzare xcrun simctl delete <device udid>. È inoltre possibile eseguire la xcrun simctl delete unavailablerimozione di vecchi dispositivi per tempi di esecuzione non più supportati.
russbishop

1
Non ho ~ / Library / Caches / com.apple.dt.Xcode / Downloads (nessuna cartella Download in ~ / Library / Caches / com.apple.dt.Xcode /), mi chiedo perché
augusto99

1
il percorso della cartella che hai elencato non esiste, Xcode 9.4
Peter Cullen

Questo è quello che stavo cercando: non eliminare i dispositivi 12.2 simulati uno per uno, ma eliminare l'intero simulatore 12.2 dal sistema. Il percorso ha funzionato con XCode 10.3. Dopo l'eliminazione, ho dovuto riavviarlo e il conteggio dei simulatori si è appena dimezzato.
catanore

77

Esegui questo comando nel terminale per rimuovere i simulatori a cui non è possibile accedere dalla versione corrente di Xcode (8+?) In uso sulla tua macchina.

xcrun simctl delete unavailable

Inoltre, se stai cercando di recuperare lo spazio relativo al simulatore, Michael Tsai ha scoperto che l'eliminazione dei registri delle sim gli ha salvato 30 GB.

~/Library/Logs/CoreSimulator

2
Grazie! Ovviamente la domanda originale era per Xcode 4 quindi le cose sono cambiate molto da allora!
David H

2
Rilascia quasi 20 GB per me. Grazie
Libor Zapletal

26

Xcode 4.6 ti chiederà di reinstallare tutte le versioni precedenti del simulatore iOS se elimini semplicemente l'SDK. Per evitare ciò, è necessario eliminare anche la cache di Xcode. Quindi non sarai costretto a reinstallare il vecchio SDK all'avvio.

Per rimuovere il simulatore iOS 5.0, eliminali e quindi riavvia Xcode:

  1. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/PhoneSimulator5.0.sdk
  2. ~ / Library / Caches / com.apple.dt.Xcode

Ad esempio, dopo aver eseguito un'installazione pulita di Xcode, ho installato il simulatore iOS 5.0 dalle preferenze di Xcode. Successivamente, ho deciso che 5.1 era sufficiente ma non potevo rimuovere la versione 5.0. Xcode continuava a costringermi a reinstallarlo all'avvio. Dopo aver rimosso sia il file di cache che l'SDK, non è più richiesto.


1
Una risposta leggermente più precisa qui , anche se non l'ho ancora testata io stesso.
Dan Reese

22

Ho avuto lo stesso problema. Stavo finendo lo spazio.

L'eliminazione dei vecchi simulatori di dispositivi NON ha aiutato.

Il mio problema di spazio è stato causato da xCode. Ha mantenuto una copia di ogni versione di iOS sul mio macOS da quando avevo installato xCode.

Elimina la versione iOS che non desideri e libera spazio su disco. Ho risparmiato più di 50 GB di spazio.

inserisci qui la descrizione dell'immagine



NOTA -> non vedi ~/Librarydentro Finder? È nascosto per impostazione predefinita. Usa Terminale digita cd ~/Library/Developer/Xcode/iOS\ DeviceSupport/o google come vedere le cartelle nascoste.



NOTA -> se hai più utenti su una singola macchina macOS, assicurati di trovare la directory SOLO con l'account utente che ha originariamente installato xCode.


Conto 9G sopra - come hai recuperato 75G?
David H

ciao @DavidH - 75 GB erano prima della mia pulizia. Dato che lavoro con xCode da anni, xCode ha installato silenziosamente ogni variante di iOS 7, 8, 9 e 10 sulla mia macchina. In realtà probabilmente ho solo bisogno di iOS10 e iOS11, andando avanti.
rustyMagnet

1
È fantastico, non ho mai saputo di questo posto. Avevo decine di GB qui, avendo installato tutte le versioni di Xcode, mai.
Echelon

La cartella esiste con xCode 9.4 @PeterCullen. Devi solo accedervi dall'account utente che ha originariamente installato xCode. Ho due account utente sul mio Mac che condividono xCode. Solo l'account utente che ha installato xCode può visualizzare questa cartella.
rustyMagnet

1
stai aprendo Finder e selezionando "Vai alla cartella"? La libreria è una cartella nascosta, per impostazione predefinita.
rustyMagnet

10

seguendo alcune delle risposte qui, l'eliminazione di alcuni simulatori dal mio menu Xcode> Finestra> Dispositivi> Simulatori non ha fatto nulla per aiutare il mio spazio su disco morente: inserisci qui la descrizione dell'immagine

tuttavia, cd ~/Library/Developer/Xcode/iOS\ DeviceSupporte correndo du -sh *ho avuto tutti questi ragazzi:

2.9G    10.0.1 (14A403)
1.3G    10.1.1 (14B100)
2.9G    10.3.2 (14F89)
1.3G    10.3.3 (14G60)
1.9G    11.0.1 (15A402)
1.9G    11.0.3 (15A432)
2.0G    11.1.2 (15B202)
2.0G    11.2 (15C114)
2.0G    11.2.1 (15C153)
2.0G    11.2.2 (15C202)
2.0G    11.2.6 (15D100)
2.0G    11.4 (15F79)
2.0G    11.4.1 (15G77)
2.3G    12.0 (16A366)
2.3G    12.0.1 (16A404)
2.3G    12.1 (16B92)

In tutto sono 33 GB!

Seguì un bagno di sangue

vedere maggiori dettagli qui


6

Oltre alla risposta @ childno.de, la directory del tuo Mac

/private/var/db/receipts/

potrebbe ancora contenere iPhoneSimulatorSDK obsoleto .bome .plistfile come questo:

/private/var/db/receipts/com.apple.pkg.iPhoneSimulatorSDK8_4.bom /private/var/db/receipts/com.apple.pkg.iPhoneSimulatorSDK8_4.plist

Questi potrebbero far sì che la scheda Download delle preferenze di Xcode mostri un segno di spunta ( ) per quella versione obsoleta del simulatore.

Per eliminare i simulatori indesiderati, puoi eseguire una ricerca utilizzando questo comando bash dal tuo terminale Mac:

sudo find / -name "*PhoneSimulator*"

Quindi vai alle directory corrispondenti per eliminare manualmente le SimulatorSDK indesiderate


4

In XCode apri Finestra - Dispositivi, quindi seleziona e rimuovi i simulatori obsoleti.


3

Un'altra cosa che puoi fare è modificare l'obiettivo di distribuzione sul valore più alto. Ciò impedirà al menu Scheme di visualizzare versioni precedenti.

Per fare ciò, vai su: Target-> Riepilogo, quindi modifica l'obiettivo di distribuzione.


Forse le cose sono cambiate da quando ho pubblicato la domanda, ma quando l'ho fatto, vedresti i diversi simulatori nel menu Schema, ed è solo complicato scegliere quello giusto.
David H

3

Ho provato tutte le risposte. Nessuno di loro ha funzionato per me.

Quello che ha funzionato per me su Sierra + Xcode 8.2 stava per:

/Library/Developer/CoreSimulator/Devices e l'eliminazione di tutti i dispositivi.

(Forse questo non funzionerà per te, forse questa è una soluzione autonoma, o forse devi farlo in aggiunta ad altre risposte, ma ho fatto tutte le soluzioni qui e quindi non sono sicuro di cosa abbia fatto l'atto). Tieni presente che alcune delle risposte qui sono vecchie e la posizione del simulatore è cambiata. La risposta di Snowcrash sembra essere la più recente.


Posso presumere che tu abbia prima spento Xcode, fatto questo, quindi riavviato Xcode?
David H

@DavidH mi dispiace non ricordo cosa ho fatto. Ho avuto il problema per 3-4 settimane. Ogni volta che succedeva quando stavo passando da un progetto all'altro / sim-dispositivi ... Ho appena provato di tutto e questo sembrava farlo per me ... di nuovo potrebbe qualcos'altro per te
Honey

@DavidH hai provato anche questa risposta
Honey

Per Xcode 10 e più recenti la cartella è: ~/Library/Developer/CoreSimulator/Devices.
blackjacx

3

Ho scritto uno script bash di una riga che eliminerebbe TUTTI i tuoi simulatori:

xcrun simctl list devices | grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" | xargs -L1 xcrun simctl delete
  • xcrun simctl list devices elencherà tutti i simulatori installati sulla tua macchina
  • grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" prenderà l'UUID del dispositivo
  • xargs -L1 xcrun simctl delete tenterà di eliminare il dispositivo per ogni UUID trovato

Se vuoi vedere tutto ciò che verrà eseguito, puoi aggiungere echoprima xcrun, ad es

xcrun simctl list devices | grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" | xargs -L1 echo xcrun simctl delete

3

Alcune persone cercano di risolverlo usando un modo, altri il secondo. Fondamentalmente, ci sono 2 problemi, che se li controlli e risolvi entrambi - nel 99% dovrebbe risolvere questo problema:

  1. I vecchi simulatori di dispositivi situati a YOUR_MAC_NAME(per esempio Macintosh) -> Users-> YOUR_USERNAME( daniel) -> Library-> Developer-> Xcode-> iOS Device Support. Lascia lì, il più nuovo, da oggi lo è 13.2.3 (17B111), ma in futuro cambierà. Il numero più alto (qui 13.2.3) della versione iOS indica che è più recente.

  2. Dopo questo elenco i tuoi dispositivi in Terminalesecuzione xcrun simctl list devices. Molti di loro potrebbero essere unavailable, quindi eliminarli eseguendo xcrun simctl delete unavailable. Libererà anche un po 'di spazio. Per essere sicuro che tutto sia a posto ricontrollalo eseguendo xcrun simctl list devices. Dovresti vedere i dispositivi solo dalla versione più recente (qui 13.2.3) come mostra lo screenshot qui sotto.

inserisci qui la descrizione dell'immagine

Come bonus leggermente meno rilevante per questa domanda, ma ancora libero c'è un po 'di spazio. Vai a YOUR_MAC_NAME(es. Macintosh) -> Users-> YOUR_USERNAME(es. daniel) -> Library-> Developer-> Xcode-> Archives. Vedrai molte applicazioni distribuite archiviate, molto probabilmente non ti serviranno tutte. Prova a eliminare questi, che non vengono più utilizzati.

Utilizzando questi 2 metodi e il metodo bonus sono stato in grado di ottenere 15 GB di spazio extra sul mio Mac.

PS. Eliminare semplicemente i simulatori da Xcode andando su Xcode-> Window-> Devices and Simulators-> Simulators(o semplicemente CMD+ SHIFT+ 2quando si utilizza la scorciatoia da tastiera) e cancellarlo lì non aiuterà. Hai davvero bisogno di seguire i passaggi descritti.


2

Il problema con queste risposte è che, con ogni aggiornamento di Xcode, i menu e le posizioni cambieranno.

Vai a /Applications/Xcode.app/Contents/Developer/Platformsed elimina ciò che non ti serve. Xcode inizierà bene. Se sei affatto preoccupato, puoi semplicemente ripristinare dal Cestino.


2
Dubito seriamente che Xcode scarichi i simulatori che ne richiedi il bundle. Sicuramente entrano nella libreria degli utenti, no? Detto questo, non ne ho mai scaricato uno più vecchio da quando ho avuto il mio problema con Xcode 4.
David H

Per ogni piattaforma (iOS, watchOS, AppleTVOS, MacOS) ho 2 cartelle: ho "iPhoneOS.platform" e "iPhoneSimulator.platform" Quale dovrei eliminare? Ho controllato con il collega, che aveva esattamente tutti e due, ma nessun motivo issue.The In realtà sono qui è a causa di questo problema e qualcuno mi ha detto è perché ho 2 simulatori / Xcodes, ma se ho dont corretto I' ho cancellato la mia altra versione di Xcode e ho anche cancellato il runtime 9.3 ...
Honey

1
Per favore, per favore, non farlo. Nessuno dovrebbe scherzare con i contenuti all'interno del pacchetto Xcode.
russbishop il

1

Su Mac, seleziona / Library / Developer / Xcode / iOS \ DeviceSupport

Supporto per dispositivi iOS


1
Le versioni attuali di Xcode utilizzano una posizione leggermente diversa:/Library/Developer/CoreSimulator/Profiles
Andrew

1

È possibile utilizzare il seguente frammento di codice per eliminare i runtime non disponibili:

echo "rm -rf $(xcrun simctl list runtimes -j |\
      jq ".runtimes[] | select(.isAvailable|not) | .bundlePath" | xargs)"

da eseguire, rimuovere echoo aggiungere | bashalla fine.

Se non hai il jqcomando disponibile, puoi ottenerlo usandobrew install jq


Esattamente ciò di cui hai più bisogno!
David H,

0
  1. Apri Xcode -> Vai a Finestra (dalla barra dei menu) -> Dispositivi e simulatori -> Fai clic su Simulatore -> Fai clic con il pulsante destro del mouse sul simulatore che desideri eliminare -> Fai clic su Elimina

  2. Per eliminare eventuali simulatori indesiderati installati in passato come componente aggiuntivo tramite Xcode.

  • Apri Terminale

  • Digita open / Library / Developer / CoreSimulator / Profiles / Runtimes

  • Elimina simulatori indesiderati


-2

Comando + Spazio

Digita "simulatore"

apri il vecchio simulatore beta che non ti serve più.

fai clic con il pulsante destro del mouse su di esso nel dock, quindi scegli Opzioni> "Mostra nel Finder"

Chiudi l'app, quindi rimuovila dalla cartella.

:)

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.