Come svuotare le cache e pulire tutti i target Xcode 4 e versioni successive


238

Jonathan suggerisce qui: Xcode Include i file .xib che sono stati eliminati! che la pulizia di tutte le destinazioni e lo svuotamento delle cache risolverà il problema con Xcode inclusi i file .xib eliminati ma non riesco a trovare un modo per svuotare la cache in Xcode 4.

Come farlo in Xcode 4?


Ecco la mia [soluzione di script di shell] [1], che elimina i dati derivati, sia per xCode 5 che 6. [1]: stackoverflow.com/a/27977848/1231948
Sheamus,

Risposte:


514

Comando-Opzione-Maiusc-K per ripulire la cartella di compilazione. Ancora meglio, uscire da Xcode e ripulire manualmente ~ / Library / Developer / Xcode / DerivedData . Rimuovi tutto il suo contenuto perché c'è un bug in cui Xcode eseguirà una vecchia versione del tuo progetto che è lì da qualche parte. (Xcode 4.2 ti mostrerà la cartella Dati derivati: scegli Finestra> Organizer e passa alla scheda Progetti. Fai clic sulla freccia destra a destra del nome della cartella Dati derivati.)

Nel simulatore, scegli Simulatore iOS> Ripristina contenuto e impostazioni.

Infine, per completezza, è possibile eliminare il contenuto di / var / cartelle ; un po 'di cache succede anche lì.

ATTENZIONE: L'eliminazione di / var / cartelle può causare problemi e potrebbe essere necessario ripristinare o reinstallare il sistema operativo dopo averlo fatto.

EDIT: Ho appena imparato che se hai paura di cimentarti con / var / cartelle / puoi usare il seguente comando nel Terminale per eliminare in modo più mirato:

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"

EDIT: per alcuni problemi relativi a Swift ho trovato utile eliminare ~ / Library / Caches / com.apple.dt.Xcode . Perdi così tanto, come le tue copie di riserva dei set di documenti della documentazione scaricata, ma può valerne la pena.


6
Bello, pulire il percorso: Library / Developer / Xcode / DerivedData + reimpostare il contenuto e l'impostazione del simulatore funziona!
Tieme

10
Il percorso sembra essere nella mia directory home (nota tilde): ~ / Library / Developer / Xcode / DerivedData Forse questo era ovvio per gli altri, ma nel caso in cui qualcun altro abbia il problema ...
Victor Van Hee

37
Hehe, essendo un übern00b ho eliminato / var / db dove ho trovato qualcosa che proveniva da Xcode / il mio progetto. Questo mi è costato cinque ore di journaling nel file system, riparazione e reinstallazione di Lion, ecc. Attenzione! :-)
Jonas Byström il

4
@Jonas Mi sono sentito obbligato ad aggiungere un avviso al consiglio "delete / var / cartelle". Non è per i non iniziati!
LearnCocos2D,

7
Non eseguire rm -rf / var / cartelle con sudo o finirai per riparare come me :)
Josip B.

68

Command-Option-Shift-K dovrebbe farlo. In alternativa, vai al menu del prodotto, premi il tasto opzione, ora l'opzione "Pulisci" cambierà in "Pulisci cartella build ..." seleziona quell'opzione.


No, peccato .. Ho appena cambiato e rinominato un file xib e pulito l'app come hai detto, ma si carica comunque senza errori.
Tieme

2
Wow, mai nuovo su quel trucco con i tasti alt per i menu di Mac OS X !!! Ciò definisce davvero il significato di "Alt" ernate.
trusktr,

20

Oltre a fare quanto segue, potresti riscontrare questo problema se i file dello Storyboard dell'app sono localizzati. Innanzitutto, esegui ciascuno di questi:

  • Build pulito
  • Ripristina simulatore
  • Riavvia Xcode
  • Elimina la tua DerivedDatacartella in ~ / Library / Developer / Xcode / DerivedData
  • Riavvia il computer

Ciò che alla fine ha funzionato per me è stata la rigenerazione dei file di localizzazione dello storyboard e l'eliminazione della localizzazione inglese (che non era necessaria perché la locale di base è l'inglese). Per ricaricare le stringhe dello Storyboard, vedi questa risposta su StackOverflow .

Avevo notato che le parti non testuali del mio Storyboard venivano aggiornate, ma non il testo localizzato. Se hai una localizzazione nella tua app, ti consiglio di verificare che le tue localizzazioni siano aggiornate (anche se sono .stringsfile).


2
L'eliminazione del contenuto (non dell'intera cartella) delle cartelle / var / l'ha fatto per me! Se stai cercando /var/folders ... Scegli Vai a Cartella dal menu Vai del Finder e inserisci / var / come posizione della cartella.
Patricia,

+1 sull'istruzione / var / cartelle ... pulizia ed eliminazione di DerivedData ha funzionato parzialmente, ma quello ha funzionato
EeKay,

1
1. Clean Build 2. Ripristina simulatore 3. Riavvia Xcode che ha risolto il mio problema.
Alan Dong,

AVVERTIMENTO! Attenzione che la cancellazione dei contenuti /var/folders/può causare seri problemi e potrebbe comportare la necessità di reinstallare completamente OSx dalla console di ripristino!
Magnus W,

18

Ho trovato un altro modo oltre al comando + opzione + maiusc + K. In XCode 4.2 è presente un organizzatore che può essere aperto dall'icona in alto a destra. Da qui puoi pulire tutti gli archivi e le opzioni di progetto salvate. Questo ha aiutato la mia situazione (stavo vedendo i vecchi file rimossi nel pacchetto principale).


3
Sì, questo è un modo più semplice di pulire manualmente ~ / Library / Developer / Xcode / DerivedData manualmente
Tieme

10

Mi sono tolto i capelli dalla testa perché pensavo di avere lo stesso problema. Durante la creazione dell'app non ho ottenuto lo stesso risultato sul mio iPhone come sul simulatore.

Il problema era che in qualche modo avevo creato una versione localizzata del file MainStoryboard.storyboard. Quindi quando ho eseguito l'app sul mio telefono ha mostrato la versione danese ... e il simulatore ha mostrato la versione inglese.

Sì, sono nuovo! :)


2
Ho avuto problemi simili. Comando-opzione-maiusc-K non serve a nulla. Rimosso ... DerivedData, nessuna soluzione. Ho scoperto che cambiando il livello superiore XIB cambia solo la versione inglese e stavo testando con la versione olandese del XIB. Sospiro ...
pescando dal

1
Inoltre, tieni presente che esistono modi per localizzare la tua app in cui vengono creati file di testo separati per ogni lingua. In questi casi, cambiare .xib non fa nulla.
dandan78,

7

Per cancellare tutti i dati derivati ​​e la cache del modulo in /var/foldersuso usa questo piccolo script ruby .

derivedDataFolder = Dir.glob(Dir.home + "/Library/Developer/Xcode/DerivedData/*")
moduleCache = Dir.glob("/var/folders/**/com.apple.DeveloperTools*")
FileUtils.rm_rf derivedDataFolder + moduleCache

Questo mi ha appena risolto un fatal error: malformed or corrupted AST file: 'Unable to load module "/var/folders/errore.


1
L'errore apparente che causa "errore fatale: file AST non valido o danneggiato:" Impossibile caricare il modulo "e l'errore della soluzione delicata suggerita da Xcode, si verifica ancora in Xcode 6.1. E la soluzione per uscire da Xcode e ripulire manualmente ~ / Library / Developer / Xcode / DerivedData funziona ancora manualmente. Non avevo bisogno di pulire tutto lì dentro; solo due sottocartelle: ModuleCache e la sottocartella il cui nome è rilevante per il progetto problema.
Jerry Krinock,

5

Ho avuto alcuni problemi con l'arresto anomalo di Xcode 5.1 su di me, quando ho aperto la finestra del documento.

Non sono sicuro della causa, perché stavo anche aggiornando i docset, mentre ho aperto la finestra.

Bene, in Xcode 5 la directory dei moduli ora risiede nella cartella dei dati derivati, che per ovvi motivi non ho eliminato. Ho cancellato il contenuto di ~ / Library / Developer / Xcode / DerivedData / ModuleCache e ~ / Library / Preferences / com.apple.Xcode.plist e tutto sembra funzionare, dopo aver riavviato Xcode.


1

Quando si utilizza un "Modello di dati", nell'ispettore ci sono opzioni per generare classi, per me questo è stato il caso in quanto esisteva già una classe con il nome esistente.

Codegen: risolto per me.

inserisci qui la descrizione dell'immagine


1

Il mio "DerivedData" con Xcode 10.2 e Mojave era qui:

MacHD / Users / [MyUser] / Libreria / Developer / Xcode


0

Devi stare attento al file xib. Ho provato tutto quanto sopra e niente ha funzionato per me. Stavo usando UIButton personalizzati definiti in xib, e mi sono reso conto che potrebbe essere correlato al fatto che lì avevo assegnato attributi che non stavano cambiando a livello di programmazione. Se hai definito immagini o testo lì, rimuovili. Quando l'ho fatto, le mie modifiche programmatiche hanno iniziato ad avere effetto.


0

Ecco la mia soluzione di script di shell , che elimina i dati derivati ​​e pulisce le risorse memorizzate nella cache di un progetto, per Xcode 4, 5 e 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.


0

Ho provato quasi tutto ma non ho potuto aiutare, ciò che mi ha aiutato a disabilitare SIP (System Integration Protection) n funziona, non so cosa succede quando e come ma il file di sistema viene confuso da qualche parte e causa questo ... anche se potrebbero esserci dei rischi disabilitarlo ovviamente

ecco come

1.Accendi il Mac e tieni premuti i tasti [comando] + [R] per accedere alla partizione di ripristino.

2.Dalla partizione di ripristino, fare clic su Utilità dalla barra dei menu, quindi selezionare Terminale.

3.Immettere il seguente comando nel Terminale e premere Invio per eseguirlo: csrutil disable

4.Una volta eseguito il comando, esci dal Terminale e riavvia il Mac. Quando accedi di nuovo a OS X, SIP sarà disabilitato.


1
Sembra davvero rischioso. Cosa fa SIP?
Tieme,

System Integrity Protection protegge i file e le directory di sistema che sono contrassegnati per la protezione. In pratica aggiunge più sicurezza al tuo sistema, limitando anche la potenza del comando sudo
Castro Zwelithini,
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.