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


90

Vorrei rimuovere i vecchi dati (sostituibili?) E i contenuti di DerivedData sembrano un probabile candidato. Dato che si chiama DerivedData , presumo che si tratti di informazioni che, se mancanti, verrebbero generate durante una fase di compilazione e, se presenti, vengono utilizzate durante quella stessa fase. Sembra logico quindi che io possa cancellare tutti i dati del vecchio progetto senza paura e se dovessi mai costruire quel vecchio progetto, la prima volta che ci vorrebbe più tempo del normale, deve ricreare tutti questi dati derivati.

Mi sbaglio qui?


8
Sii MOLTO CONSAPEVOLE che, come spiega Joshua, quella cartella insanguinata contiene "dati dSYM per il debug successivo. ... non eliminare se vuoi essere in grado di eseguire il debug delle versioni distribuite della tua applicazione"
Fattie

Forse dovrei usare ogni trucco di markup SO oltre all'enfasi per richiamare quel punto nella mia risposta. :-D Block-quoted-star-slash-commented-code-bold-italic-bulleted-list, ecc.
Joshua Nozzi

17
@JoeBlow in realtà, come spiega Joshua, è la directory Archives che contiene "dati dSYM per il debug successivo". La directory Archives è una sorella della directory DerivedData , il che significa che è allo stesso livello, sotto ~/Library/Developer/Xcode, di DerivedData , quindi "quella cartella insanguinata" (DerivedData) NON contiene i dati dSYM e il suo contenuto può essere eliminato in sicurezza.
mluisbrown

4
Ogni volta che rilascio una nuova versione, copio il .xcarchive da Xcode nel mio repository git e lo tengo sotto il controllo della versione: questo è un buon modo per essere sempre in grado di ottenere vecchi .dSYM senza dipendere dalle directory Xcode di una particolare macchina.
Bill

Risposte:


123

La cartella Derived Data contiene tutte le informazioni di build intermedie, le destinazioni di debug e di rilascio, nonché l'indice del progetto. È utile eliminare i dati derivati ​​quando si hanno problemi di indice dispari (completamento del codice non funzionante correttamente, reindicizzazione costante o anche solo un progetto lento). L'eliminazione dell'intera cartella distrugge queste informazioni per tutti i progetti di cui Xcode 4 è a conoscenza.

La cartella Archivi (una sorella di Dati derivati) contiene il formato archiviato dei tuoi obiettivi. Cioè, una build di rilascio e dati dSYM per il debug successivo. Non dovresti eliminarlo se vuoi essere in grado di eseguire il debug delle versioni distribuite dell'applicazione.

È possibile eseguire il nuke dei dati derivati ​​per un determinato progetto aprendo la finestra Organizer e selezionando la scheda Progetti. Selezionare il progetto desiderato e fare clic sul pulsante Elimina accanto al percorso Dati derivati. Questo è più uno "sciopero chirurgico" per progetti problematici.


1
Sicuro. Vai alla riga di comando e digita "man rm" - impazzisci. :-)
Joshua Nozzi

9
Sospiro. Lo so rm. Volevo trovare un modo per risolvere la cartella collegata al progetto, ad es ~/Library/Developer/Xcode/DerivedData/MyProject-hghjhjhkjh/. Il modo più semplice che ho trovato è impostare la cartella DerivedData relativa alla cartella del progetto, tramite le preferenze di XCode.
asgoth

4
Solo una breve nota: in XCode 6.x , projectssono nella loro finestra (non nell'Organizer).
Olie

1
Mi piace il tuo gergo militare XD
Josh

1
FWIW molti nuovi strumenti di distribuzione (AppCenter, HockeyApp, Crashlytics, ecc.) Ti chiedono di consegnare i file dSYM in modo da non doverli archiviare da solo.
Honey

38

Il contenuto dei "Dati derivati" viene generato durante la fase di compilazione. Puoi eliminarlo in sicurezza. Seguire i passaggi seguenti per eliminare i "Dati derivati":

  1. Seleziona Xcode -> Preferenze ..

Passo 1

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

Passo 2

  1. Si aprirà la cartella contenente "Dati derivati". Fare clic con il pulsante destro del mouse ed eliminare la cartella.

Passaggio 3


Quindi, quando la mia app è nel simulatore ma non viene eseguita dal codice e se elimino e poi eseguo di nuovo dal codice, causerà problemi?
Manthan

@Manthan: No, questo non creerà alcun problema.
Jayprakash Dubey

30

Sì, quei dati vengono generati durante il tempo di compilazione e puoi eliminarli se lo desideri, non è un problema.

Verrà ricreato quando lo ricostruirai.

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.