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

Jonathan suggerisce qui: Xcode include i file .xib che sono stati cancellati! che pulire tutti gli obiettivi e svuotare le cache risolverà il problema con Xcode compresi i file .xib eliminati ma non riesco a trovare un modo per svuotare la cache in Xcode 4.

Come farlo in Xcode 4?

Comando-Opzione-Maiusc-K per pulire la cartella di build. Ancora meglio, esci da Xcode e pulisci manualmente ~ / Library / Developer / Xcode / DerivedData . Rimuovi tutti i suoi contenuti 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 iOS Simulator> Ripristina contenuto e impostazioni.

Infine, per completezza, puoi cancellare il contenuto di / var / folders ; ci sono anche alcuni caching.

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

EDIT: Ho appena saputo che se hai paura di cimentarti con / var / folders / puoi usare il seguente comando nel Terminale per eliminarlo 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 cancellare ~ / Library / Caches / com.apple.dt.Xcode . Si perde molto quando si esegue questa operazione, ad esempio le copie di riserva dei documenti doc della documentazione scaricata, ma può valerne la pena.

Comando-Opzione-Shift-K dovrebbe farlo. In alternativa, vai al menu del prodotto, premi il tasto opzione, ora l’opzione “Pulisci” cambierà in “Pulisci cartella di compilazione …” seleziona tale opzione.

Ho trovato un altro modo oltre al comando + opzione + MAIUSC + K. In XCode 4.2 c’è un organizzatore che può essere aperto dall’icona in alto a destra. Puoi pulire tutti gli archivi e le opzioni di progetto salvate da lì. Questo ha aiutato la mia situazione (vedevo vecchi file rimossi nel mainBundle).

Oltre a fare quanto segue, potresti riscontrare questo problema se i file della Storyboard della tua app sono localizzati. Innanzitutto, fai ciascuno di questi:

  • Clean Build
  • Reimposta simulatore
  • Riavvia Xcode
  • Elimina la cartella DerivedData in ~ / Library / Developer / Xcode / DerivedData
  • Elimina il contenuto (non l’intera cartella) di / var / folders
  • Riavvia il computer

Ciò che alla fine ha funzionato per me è stato la rigenerazione dei file di localizzazione dello storyboard e l’eliminazione della localizzazione in inglese (che non era necessaria perché le impostazioni internazionali di base sono l’inglese). Per ricaricare le stringhe di Storyboard, vedere 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 si .strings file .strings ).

Mi sono strappato 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 avevo in qualche modo realizzato una versione localizzata del file MainStoryboard.storyboard. Così quando ho eseguito l’app sul mio telefono ha mostrato la versione danese … e il simulatore ha mostrato la versione inglese.

Sì, sono nuovo! 🙂

Per cancellare tutti i dati derivati ​​e la cache dei moduli in /var/folders 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 ha appena risolto un fatal error: malformsd or corrupted AST file: 'Unable to load module "/var/folders/ error per me.

Ho avuto alcuni problemi con Xcode 5.1 in crash su di me, quando ho aperto la finestra del documento.

Non sono sicuro della causa, perché stavo aggiornando anche i documenti, 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 cancellato. Ho eliminato i contenuti di ~ / Library / Developer / Xcode / DerivedData / ModuleCache e ~ / Library / Preferences / com.apple.Xcode.plist e tutto sembra funzionare, dopo aver riavviato Xcode.

Devi stare attento al file xib. Ho provato tutto quanto sopra e niente ha funzionato per me. Stavo usando UIButtons personalizzati definiti nello xib e ho capito che potrebbe essere correlato al fatto che avevo assegnato degli attributi che non stavano cambiando a livello di codice. Se hai definito immagini o testo lì, rimuovili. Quando lo feci, i miei cambiamenti programmatici iniziarono ad avere effetto.

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, semplicemente chiamando rm -rf nella directory Derived Data lascia un file o due persistenti, ma il mio script va in loop finché tutti i file non vengono cancellati.

Ho provato quasi tutto ma non ho potuto aiutare, ciò che mi ha aiutato è stato 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 per disabilitare questo ovviamente

ecco come

1.Avvia 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, uscire dal Terminale e riavviare il Mac. Quando si effettua il login in OS X, SIP sarà disabilitato.

Quando si utilizza un “Modello dati”, ci sono opzioni nell’ispettore per generare classi, per me questo era il caso in quanto esisteva già una class con il nome esistente.

Codegen: l’ho risolto per me.

inserisci la descrizione dell'immagine qui