Domanda Aggiornamento Swift 3 / Xcode 8 - 100 di file DerivedData mancanti da errori di copia di lavoro


Ho appena aggiornato l'ultima versione Beta di XCode e Swift ma dopo aver usato il convertitore il mio progetto app ora ha oltre 200 errori gialli di compilazione tutti affermando / "ProjectDirectoy" / DerivedData / XXXXXXXXX / XXXX / XXX / xXXX / xXX manca da copia di lavoro ... dove da XXXXX rappresentano vari percorsi di file nella cartella DerivedData.

Ho provato a eliminare la cartella DerivedData dalla posizione menzionata negli errori.

Ho provato a eliminare tutto nella cartella DerivedData in ~ / Library /.

Ho provato più volte a pulire il progetto, riavviare e fare una nuova build.

Ho provato a disattivare il controllo del codice sorgente nelle preferenze, ma non vedo perché dovrei disattivarlo come era prima dell'aggiornamento, quindi voglio lasciarlo acceso.

Questi errori non sembrano andare via.

Qualche idea?


42
2018-06-22 15:42


origine


risposte:


Stavo affrontando gli stessi avvertimenti dopo aver effettuato l'aggiornamento a xCode 8 GM, oltre 350. La maggior parte di essi contiene file .swift e immagini nel catalogo delle risorse.

È fondamentalmente un problema di controllo del codice sorgente che sembra apparire principalmente quando si spostano / eliminano i file di progetto. Questi sono nuovi avvisi o xCode 8 è solo molto più severo con il controllo del codice sorgente rispetto a xCode 7.

Dopo aver cercato su Google, ho trovato alcune risposte, ma mi sembravano complicate, ad esempio utilizzando la riga di comando o anche suggerendo di spegnere e riaccendere il controllo sorgente.

Ecco cosa ha funzionato per tutti i miei progetti.

Modo corto

Prova prima questo e se non funziona, fai la lunga strada

1) Vai al menu Controllo del codice sorgente (menu in alto accanto a finestra e guida) e fai clic su Aggiorna stato

2) Passare nuovamente al menu Controllo del codice sorgente e fare clic su commit

3) La finestra di commit dovrebbe aprirsi con tutti i commit che xCode ritiene siano necessari. Quindi basta inserire un commit nella casella del campo di testo e premere il pulsante commit.

Ripeti i passaggi 1-3 finché non ci sono più elementi selezionati da xCode quando apri il menu di commit. Non andare al passaggio 4 fino a quando non sono stati eseguiti tutti gli elementi selezionati automaticamente da xCode altrimenti si potrebbe ottenere un errore durante il passaggio 4.

4) Apri nuovamente la finestra di commit e, come indicato nel passaggio 3, non ci dovrebbero essere più elementi selezionati da xCode. Tuttavia dovresti comunque vedere alcuni elementi nella barra laterale sinistra che sono quelli che causano i messaggi di avviso.

Fai clic con il pulsante destro del mouse su un elemento e premi seleziona tutto, inserisci un impegno nel campo di testo e poi premi il pulsante di commit. Tutto dovrebbe essere completato e gli avvisi / errori dovrebbero andare via (opzionalmente premere CommitMenu-> Aggiorna stato di nuovo).

Se non è completo di chiudere / riaprire xCode e ripetere i passaggi 1-4.

Se anche questo non funziona, la lunga strada dovrebbe risolverlo.

Lunga via

Se si utilizza il controllo del codice sorgente e si effettuano regolarmente delle commit rispetto a quanto opzionalmente si fa il punto 1 e si dovrebbe essere in grado di andare direttamente al punto 11.

1) Pulisci dati xcode derrived (opzionalmente)

Di solito non devi farlo, quindi salta questo passaggio al tuo primo tentativo e vai al passaggio 3.

Vai alle preferenze xCode, fai clic sulla scheda "posizioni", quindi vai a avanzato. Fare clic sulla piccola freccia accanto al pulsante di avanzamento per aprire il percorso della cartella derivata. Chiudi xCode completamente e poi elimina tutto il contenuto che si trova in quella cartella derivata.

Come membro Krivvenz ha gentilmente sottolineato nella sua risposta, potrebbe essere necessario opzionalmente farlo. Non ho dovuto farlo da solo, quindi forse saltare questo e provarlo solo se non funziona.

"Ho anche dovuto cambiare la mia opzione DerivedData da relativa a Custom, che può essere trovata in Xcode> Preferenze> Tab Posizioni."

2) Riavvia il tuo progetto xCode e attendi che l'indicizzazione finisca. Questo potrebbe richiedere alcuni minuti perché hai appena cancellato i dati derivati.

3) Vai al menu Controllo del codice sorgente (menu in alto accanto a finestra e guida) e fai clic su Aggiorna stato

4) Passare nuovamente al menu Controllo del codice sorgente e fare clic su commit

5) La finestra di commit dovrebbe aprirsi con tutti i commit che xCode ritiene siano necessari. Avevo più di 250 anni perché non avevo mai usato il controllo del codice sorgente prima.

6) Fai clic su commit changes in basso a destra

7) Ho ricevuto un errore e l'operazione non è terminata (se funziona per te piuttosto che andare a 11)

8) Vai al menu Controllo del codice sorgente e fai clic su Aggiorna stato

9) Vai a Source Control e fai clic su commit

10) Fai clic su commit changes in basso a destra. Questa volta ha suggerito circa 30 commit in meno e non ho avuto errori. Se continui ad avere errori nel tuo secondo tentativo, prova a chiudere Xcode completamente e poi a riaprirlo e a ripetere questo passaggio.

11) Vai al menu Controllo del codice sorgente e fai clic su Aggiorna stato

12) Vai al menu di controllo del codice sorgente e fai clic su commit

13) Questa volta non ci dovrebbero essere modifiche raccomandate da xCode ma vedrete comunque molti file nel menu di commit a sinistra (non selezionato). Si tratta di questi file che stanno lanciando gli avvisi di copia di lavoro, che dovrebbero anche essere ancora lì.

14) Seleziona ognuno di questi file nella barra laterale sinistra del menu di commit. Puoi fare clic con il tasto destro e premere il segno di spunta su tutto

15) Fai clic su commit changes in basso a destra

16) Ho ricevuto un errore e l'operazione non è stata completata. Così ho provato di nuovo e lo stesso errore, quindi ho chiuso il menu di commit. Se completa per te va bene.

17) Vai al menu Controllo del codice sorgente e fai clic su Aggiorna stato

Boom tutti gli avvertimenti sono scomparsi.

18) Chiudi il tuo progetto e xCode completamente

19) Apri di nuovo il tuo progetto

20) Vai al menu Controllo del codice sorgente e fai clic su Aggiorna stato

21) Vai al menu Controllo del codice sorgente e fai clic su commit

22) Improvvisamente ho suggerito più di 150 commit. Assicurati che tutti i suggerimenti siano selezionati e poi fai clic su commit e dovrebbe essere completato senza errori.

23) Pulisci il tuo progetto (Prodotto-> Pulisci)

24) Vai al menu Controllo del codice sorgente e fai clic su commit. Non ci dovrebbero essere cambiamenti richiesti e non ci dovrebbero essere anche file nella barra laterale di sinistra.

Dopo tutto questo non ho più avvertimenti, non ho bisogno di eliminare il controllo del codice sorgente e tutto funziona come al solito.

Se ricevi più errori in futuro, dì perché hai spostato di nuovo un file, piuttosto che eseguire nuovamente i commit, assicurandoti che sia tutto selezionato.

Spero che questo ti aiuti.


94
2017-09-12 14:33



Questo è un bug in XCode. Gli avvisi sui file mancanti scompaiono non appena si git-commit l'albero del progetto.


13
2017-11-01 15:03



Avevo una cartella .git canaglia in una cartella genitore che non 'andava' a niente-

verifica nel menu "Controllo del codice sorgente" che tutte le tue "Copie di lavoro" in realtà connettersi a una vera cartella di controllo del codice sorgente

NESSUNA di queste "soluzioni" ha funzionato per me, tranne questo rimuovendo la cartella .git di rogue


4
2017-09-19 15:33



Rimozione di DerivedData e git add. dal terminale, anche senza commettere, risolto questo problema per me.


3
2018-01-23 02:44



Basta mostrare tutti i file nascosti e quindi eliminare la cartella git Apri Terminale ed esegui questo comando per mostrare tutti i file nascosti "defaults scrivi com.apple.finder AppleShowAllFiles SÌ killall Finder "


2
2017-09-22 02:39



Segui questi passi.

  1. Apri svn o albero dei sorgenti.
  2. Questi file arriveranno lì.
  3. Rimuovi questi file dall'albero dei sorgenti o svn.
  4. Ora vieni al progetto xcode.
  5. Ora effettua il commit del codice una volta. Tutti gli avvertimenti

1
2017-09-28 11:11



Ho risolto questo problema rimuovendo il .git directory in "yourProject" / Pod. Ed è possibile rimuovere il .git directory nella directory principale del "tuoProject".


1
2017-10-01 22:37



Penso di aver risolto il problema ora eliminando tutte le istanze della mia cartella DerivedData e seguendo le istruzioni di crashoverride777. Ho anche dovuto cambiare la mia opzione DerivedData da relativa a Custom, che può essere trovata in Xcode> Preferenze> Scheda Posizioni.


1
2017-10-04 10:21