Guida allo spazio per sviluppatori

Xcode mi sta occupando tutto lo spazio

Da venti a sessanta gigabyte su un Mac attivo, distribuiti su sei cartelle, nessuna delle quali Xcode ripulisce da sé. Ecco ciascuna, a cosa serve e se puoi cancellarla.

Prova gratuita di 14 giorni, senza carta. Poi 15 $ una volta per 3 computer.

Bytesweep elenca per dimensione le cartelle DerivedData e di supporto dispositivi di Xcode

Misura prima

Un comando ti dice come il totale si divide fra le cartelle di Xcode, così sai quale prendere di mira:

du -sh ~/Library/Developer/Xcode/* ~/Library/Developer/CoreSimulator 2>/dev/null | sort -h

Le sei cartelle

DerivedData — di solito la più grande · sicura da cancellare

Intermedi di build, indici e cache di moduli, una cartella per progetto, conservati per sempre anche per progetti cancellati da tempo.

~/Library/Developer/Xcode/DerivedData

Cancellarla costa una build lenta e nient'altro. È anche la soluzione standard quando Xcode si comporta in modo strano, ed è per questo che ogni sviluppatore iOS conosce questo percorso a memoria.

iOS DeviceSupport — grande · sicura da cancellare

Cache di simboli copiate da ogni dispositivo fisico che hai collegato, una cartella per versione di iOS. Diversi gigabyte ciascuna, e si accumulano per telefoni che non hai più.

~/Library/Developer/Xcode/iOS DeviceSupport

Xcode le ricopia la prossima volta che colleghi un dispositivo con quella versione di iOS: una prima connessione più lenta e nient'altro.

Dispositivi CoreSimulator — grandi · quasi sempre sicuri

Ogni dispositivo simulato ha il proprio file system, e non vengono mai recuperati. Usa il comando di Xcode invece di cancellare cartelle, così il suo database resta coerente:

xcrun simctl delete unavailable

Per andare oltre, xcrun simctl delete all rimuove ogni dispositivo simulato. I runtime dei simulatori si gestiscono in Xcode → Impostazioni → Componenti.

Archivi — piccoli ma insostituibili · da tenere

Ogni build che hai pubblicato, con i suoi simboli di debug dSYM.

~/Library/Developer/Xcode/Archives

Questo è quello da lasciare stare. Senza il dSYM di una build pubblicata non puoi simbolizzare i rapporti di crash degli utenti che la usano: le tracce restano indirizzi esadecimali per sempre. Se qui devi proprio recuperare spazio, tieni gli archivi di ogni versione ancora in circolazione.

E di nuovo dopo la prossima versione di iOS

DerivedData torna il giorno in cui compili, DeviceSupport cresce a ogni dispositivo che colleghi: è una faccenda ricorrente, non una soluzione. Bytesweep trova tutte e sei le cartelle in un passaggio, tiene gli archivi segnati come da rivedere invece che da pulire, e annulla qualsiasi pulizia per sette giorni — cosa che conta il giorno in cui svuoti il progetto sbagliato.

Cache di Swift Package Manager — sicura da cancellare

Repository di dipendenze clonati, riscaricati su richiesta.

~/Library/Caches/org.swift.swiftpm

Vecchi runtime dei simulatori e vecchie versioni di Xcode — con cautela

Un Xcode.app precedente da solo è 15 GB, e i suoi runtime qualche altro. Tieni la versione che ti serve ancora per un vecchio progetto; cancella il resto dal Finder, poi rimuovi i runtime associati in Impostazioni → Componenti.

Due abitudini che lo tengono a bada

Cancella DerivedData per progetto, non in blocco

Ogni sottocartella porta il nome di un progetto. Svuotare l'intera cartella costringe a ricompilare tutto ciò su cui stai lavorando; svuotare quelle dei progetti finiti l'anno scorso non costa assolutamente nulla.

Controlla DeviceSupport dopo ogni versione di iOS

Cresce di una cartella per versione di iOS e per dispositivo collegato, quindi sale in silenzio tutto l'anno. Due minuti ogni settembre evitano che diventi 30 GB.

Trova tutte e sei in una volta

Bytesweep rileva ogni cartella di Xcode dal nome, ne mostra la dimensione, e segna gli archivi come da rivedere invece che da pulire. Tutto ciò che svuoti passa da un punto di ripristino: annullare è a un clic per sette giorni.

Correlati: Docker disk space · la lista completa per Mac

Domande

È sicuro cancellare DerivedData?

Sì. È interamente derivato dal tuo codice, che è esattamente ciò che dice il nome. L'unico costo è che la build successiva di ogni progetto coinvolto sarà completa.

Cancellare DeviceSupport rompe il debug sul mio telefono?

No. Xcode ricopia i simboli la prossima volta che colleghi un dispositivo con quella versione di iOS. La prima connessione dopo richiede qualche minuto in più.

Posso cancellare gli archivi di Xcode?

Puoi, ma pensaci prima. Gli archivi contengono i dSYM delle build pubblicate, e senza di essi i rapporti di crash di quelle versioni non si possono simbolizzare. Tieni tutto ciò che è ancora in mano agli utenti; cancella pure le vecchie beta.

Perché Xcode.app è così grande?

Circa 15 GB, perché porta con sé toolchain, SDK e runtime dei simulatori per ogni piattaforma supportata da Apple. Puoi rimuovere i runtime inutilizzati in Xcode → Impostazioni → Componenti, ma il bundle dell'app è quello che è.

Xcode ripulisce qualcosa di tutto questo automaticamente?

No. Nessuna di queste cartelle ha un limite di dimensione o una scadenza. È esattamente il motivo per cui questa pagina esiste.