Posso eliminare in sicurezza i contenuti della cartella di dati derivati ​​Xcode?


293

Sto esaurendo lo spazio su disco e ho verificato tramite un'utilità di terze parti che tra l'altro la directory ~ / Library / Developer / Xcode / DerivedData occupa circa 22 GB di spazio su disco.

Ho cercato StackOverflow e ho trovato questo post

Come posso eliminare in modo sicuro nella mia directory ~ / Library / Developer / Xcode / DerivedData?

La risposta accettata a questa domanda suggerisce che non dovrei toccare / rimuovere le cartelle da questa directory. quindi quello che ho fatto è stato

  • Ho trovato una cartella del progetto di build esistente per un'app che ho disponibile su Appstore
  • Eliminata la cartella dalla directory derivata
  • lanciato XCode 5
  • Apri quel progetto
  • Build pulito
  • Testato e compilato su un simulatore
  • ri-archiviato
  • Tutto ha funzionato. Niente è stato rotto.

A meno che non mi sia sfuggito qualcosa nella risposta ai post, voglio assicurarmi chiedendo agli sviluppatori esperti che se elimino tutte le cartelle da DerivedData non mi danneggerà nella costruzione, nel test e nella compilazione di tali progetti.


la risposta accettata alla domanda a cui si fa riferimento è stackoverflow.com/a/7284632/8047 che non dice nulla sulla non eliminazione da DerivedData ... sebbene gli archivi siano importanti per eseguire il debug degli elementi in un secondo momento, ma questa è una directory diversa.
Dan Rosenstark,

Risposte:


372

Sì, puoi eliminare direttamente tutti i file dalla DerivedDatasottocartella (Not DerivedData Folder).

Ciò non influirà sul lavoro del tuo progetto. I contenuti della DerivedDatacartella vengono generati durante il tempo di creazione e puoi eliminarli se lo desideri. Non è un problema.

I contenuti di DerivedDataverranno ricreati quando si ricostruiscono i progetti.

Xcode8 + Aggiornamento

Dall'Xcode8 che ha rimosso l'opzione di progetto dalla scheda della finestra in modo da poter ancora utilizzare il primo modo:

Xcode -> Preferences -> location -> click on small arrow button as i explain in my first answer.

Aggiornamento Xcode7.3 Per rimuovere DeriveData di particolari progetti è sufficiente seguire i seguenti passi:

Vai a Window -> Project:

inserisci qui la descrizione dell'immagine

Puoi trovare l'elenco dei progetti e puoi andare nella DerivedDataCartella o puoi eliminare direttamente i singoli progettiDerivedData

inserisci qui la descrizione dell'immagine


Non sto lavorando su Xcode5 ma in 4.6.3 puoi trovare la DerivedDatacartella come nell'immagine qui sotto:

inserisci qui la descrizione dell'immagine

Dopo aver fatto clic su Preferenze ..

inserisci qui la descrizione dell'immagine

Ottieni questa finestra

inserisci qui la descrizione dell'immagine


1
Grazie mille amico. I contenuti di "Dati derivati" sono sostanzialmente simili ai file memorizzati nella cache e indesiderati di Xcode? Quindi è per questo che va bene cancellarlo per liberare spazio?
Supertecnoboff,

1
@Gone Di cosa stai parlando? I file creati devono andare da qualche parte.
Droppy il

2
Bene, con CMake e altri sistemi di creazione, anche con build out-of-source, i file generati ecc. Sono ancora all'interno del percorso del progetto e vengono eliminati se elimino la struttura delle cartelle o quando pulisco quando eseguo una pulizia. Dal momento che segnerò circa 100 incarichi ogni settimana circa, ottengo un enorme accumulo di file che devo ricordare di eliminare manualmente e utilizzando l'interfaccia utente XCode, i dati di ciascun progetto singolarmente. Quindi sostengo il mio commento precedente, anche se ora ho implementato l'alias di William nel mio .bashrc.
andato il

XCode 8 cambia di nuovo le cose (è sempre stato un dolore nel culo). Ora, dobbiamo andare manualmente alla cartella in /Users/YourUsername/Library/Developer/Xcode/DerivedDataed eliminarli tutti. Come hai modificato per XCode 7, ho pensato che potresti voler modificarlo di nuovo per XCode 8.
sweta.me

1
puoi controllare la mia risposta completa, c'è una risposta multipla nella stessa vecchia che funziona ancora per andare alla preferenza e dalla scheda posizione. :)
Nitin Gohel,

124

Elimina i dati derivati ​​abbastanza spesso da avere un alias per questo. Può risolvere problemi di compilazione. Ho il seguente in /Users/Myusername/.bash_profile

alias purgeallbuilds='rm -rf ~/Library/Developer/Xcode/DerivedData/*'

Quindi nel terminale, scrivo purgeallbuilds e tutte le sottocartelle di DerivedData vengono eliminate.


24
È possibile eliminare la cartella DerivedData stessa. Sarà semplicemente ricreato.
Nick Lockwood,

1
La build fallisce immediatamente in Xcode 8 quando ho eliminato questa cartella. Una volta aggiunto, le cose hanno funzionato di nuovo.
Tim

Questo è un consiglio molto utile. Di solito mi imbatto in carenza di spazio ogni sei anni ed è difficile ricordare quali cartelle debbano essere eliminate. L'alias è decisamente conveniente.
Oliver Zhang

35

XCODE 10 AGGIORNAMENTO

Nella scheda:

  1. Fai clic su Xcode
  2. Preferenze
  3. Posizioni -> Dati derivati

È possibile accedere a tutti i dati derivati ​​e cancellarli eliminandoli.


La sezione Dati derivati ​​definisce solo il percorso dei dati derivati. Non vedo da nessuna parte per visualizzarli ed eliminarli. Perché non farlo semplicemente dalla riga di comando?
AlxVallejo,

2
@AlxVallejo Alla fine dell'indirizzo del percorso, vedrai un'icona che ti porterà alla cartella. Toccalo ed elimina la cartella e verrà ricreata.
Umit Kaya,

34

XCODE 7.2 AGGIORNAMENTO

(Funziona anche per 7.1.1)

  1. Fare clic su Finestra, quindi su Progetti e quindi eliminare i dati derivati .

Come questo:

inserisci qui la descrizione dell'immagine

E poi cancellalo qui:

inserisci qui la descrizione dell'immagine


Spero che aiuti!


2
Ciò ti consentirà di eliminarlo manualmente uno per uno, ma i mezzi utilizzati in altri post sono per eliminare i contenuti della cartella DerivedData in una sola volta
XIII

23
 $ du -h -d=1 ~/Library/Developer/Xcode/*

mostra che almeno due cartelle sono enormi:

 1.5G   /Users/horace/Library/Developer/Xcode/DerivedData
 9.4G   /Users/horace/Library/Developer/Xcode/iOS DeviceSupport

Sentiti libero di rimuovere elementi nelle cartelle:

 rm -rf ~/Library/Developer/Xcode/DerivedData/*

e alcuni in:

 open ~/Library/Developer/Xcode/iOS\ DeviceSupport/

2
santa merda ... eliminando i file dalle versioni precedenti di iOS nella cartella di supporto del dispositivo liberata 28 GB ...
kareem,

17

Ho appena creato un repository github con un piccolo script, che crea un disco RAM. Se punti la tua cartella DerivedData /Volumes/ramdisk, dopo aver espulso il disco tutti i file spariranno .

Accelera la compilazione, elimina anche questo problema

repository xc-launch

Meglio lanciato con DTerm


11

XCode 8: per eliminare i dati derivati ​​per il tuo progetto attuale:

Fai clic sul menu Prodotto

Tieni premuto il tasto Opzione

Fai clic su Clean Build Folder


Quando tengo premuto il tasto opzione, l'opzione Clean Build è disattivata. : /
AlxVallejo

4

XCODE 10 AGGIORNAMENTO

Fai clic su Xcode nella barra di stato, quindi seleziona Preferenze

Nella finestra popup Scegliere posizioni prima dell'ultimo segmento

È possibile accedere alla cartella Dati derivati con una piccola icona a destra

inserisci qui la descrizione dell'immagine


2

~ / Library / Developer / Xcode / DerivedData


Di default si; Uso in ~/tmp/DerivedDatamodo da poter accedere più facilmente ai file / bundle creati.
Droppy,

1

sì, sicuro da eliminare, il mio script cerca e annulla ogni istanza che trova, facilmente modificabile in una directory locale

#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
IFS=$'\n\t'

for drive in Swap Media OSX_10.11.6/$HOME
do
   pushd /Volumes/${drive}  &> /dev/null
   gfind . -depth -name 'DerivedData'|xargs -I '{}' /bin/rm -fR '{}'
   popd &> /dev/null
done


-1

Direi che è sicuro: spesso elimino i contenuti della cartella per molti tipi di progetti iOS, in questo modo . E non ho avuto problemi con build o invio all'App Store. La procedura elimina i dati derivati ​​e pulisce le risorse memorizzate nella cache di un progetto, sia per Xcode 5 che per 6.

A volte, la semplice chiamata di rm -rf nella directory dei dati derivati ​​lascia uno o due file persistenti, ma il mio script scorre fino a quando tutti i file non vengono eliminati.


Ugh. Errore di battitura. Intendevo "fornire"
chiarire l'

Ah, sto collegando allo script che ho fornito in una risposta a un'altra domanda. In questo modo, se mai volessi aggiornare lo script, ho solo bisogno di modificare in un unico posto. Puoi seguire il link?
Sheamus,

Vedo il codice ora. Non ho visto il link prima (se fosse lì) grazie.
Clearlight

-1

Il contenuto di "Dati derivati" viene generato durante il Build-time. Puoi cancellarlo in sicurezza. Seguire i passaggi seguenti per eliminare i "Dati derivati":

  1. Seleziona Xcode -> Preferenze ..

Passo 1

  1. Questo aprirà la finestra pop-up. Seleziona la scheda " Posizioni ". Nella sottoscheda Posizioni è possibile visualizzare " Dati derivati ". Fare clic sull'icona della freccia accanto al percorso.

Passo 2

  1. Questo aprirà la cartella contenente il pulsante destro del mouse "Dati derivati" ed Elimina cartella.

Passaggio 3

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.