Xcode: problema "file xxx.png mancante dalla copia di lavoro" nella costruzione del progetto


265

Dopo aver eliminato / aggiunto alcuni file png al progetto, ho ricevuto dei messaggi durante la costruzione del progetto.

"File ProjectPath \ aaa \ xxx.png mancante dalla copia di lavoro."

Tutti questi file si trovano nel progetto e l'applicazione è in esecuzione. Tuttavia, questi messaggi sono fastidiosi. Sembrava il file .plist, ma non si fa menzione di questi file. Cosa devo fare per rimuovere questi messaggi?


Risposte:


495

L'avviso scompare non appena si eseguono le modifiche (Xcode 8).


2
Ho scoperto che dovevo solo eseguire il commit delle mie modifiche sotto git dopo aver spostato alcuni file in una directory diversa.
Chris Livdahl,

@LearnSwift Clean Cmd + Shift + K, elimina ~ / Library / Developer / Xcode / DerivedData / *?
Alexander Vasenin,

2
@AlexanderVasenin nessuno dei due
Impara Swift il

7
Per me era sufficiente mettere in scena i cambiamenti. Buono a sapersi.
charmingToad

13
Come hai detto, mi sono assicurato di impegnarmi e spingere le mie ultime modifiche. Ma fare proprio questo non ha rimosso gli errori. Quindi ho fatto Xcode> Controllo del codice sorgente> Elimina TUTTE le modifiche e ho ripulito tutti gli errori.
EdwardM,

97

Sembra che questo problema possa avere cause diverse, ma è spesso in relazione con il software di controllo del codice sorgente.

Nel mio caso, l'ho risolto andando su Git e aggiungendo di nuovo i file. Intendo eseguire il comando seguente:

git add .

Dopo aver installato Xcode 8 e aver aggiornato il codice a swift 3, ho riscontrato oltre 300 problemi che richiedevano correzioni di sintassi (progetto massiccio). Invece, ho ripristinato da un backup e aggiornato a rapido 2.3 ... tutto è andato bene, tranne per un mucchio di questi messaggi "mancanti". Questo comando ha funzionato come un incantesimo: sono tornato in attività!
Dan Ross,

Questo è ciò che ha funzionato per me. Il problema è iniziato quando ho rimosso quello che avevo in Pods a favore di Cartagine
Sebastian Sastre,

1
Questo funziona anche per me. Sembra che il file sia sotto il controllo del codice sorgente e che anche git debba essere aggiornato.
Shardon,

dopo che git commette l'avvertimento è scomparso
carmen_munich,

3
Per altri: devi trovarti nella cartella principale del tuo progetto Xcode eseguendo il comando "git add". comando: / MyXcodeProjects / AwesomeApp /
Philip Borges il

59

Puoi anche disabilitare il controllo del codice sorgente deselezionando

Xcode -> Preferenze -> Controllo del codice sorgente -> Abilita controllo del codice sorgente

se lo gestisci tramite riga di comando o qualsiasi altra app.


questo ha fatto per me, un po 'fastidioso vederlo nell'IDE, dovrebbero supportare bene il controllo del codice sorgente o niente affatto
samiq,

1
Ho fatto due azioni: 1) "deseleziona", 2) "controlla" per Abilita controllo del codice sorgente. Gli avvertimenti sono scomparsi.
Viktor,

58

In XCode -> SoureControl:

Update+ l'ha Refresh Statusfatto per me.


Sto pensando che ciò potrebbe essere dovuto alle immagini che hanno "@" nel nome del file, come la convenzione "@ 2x" e "@ 3x". SVN utilizza quel simbolo per la sintassi della revisione (per evitarlo quando si lavora con SVN nella riga di comando, è sufficiente aggiungere una "@" alla fine poiché l'ultima occorrenza è quella utilizzata per provare a determinare le informazioni di revisione). La semplice esecuzione di Update ha funzionato per me. Quando ho aggiunto alcune nuove immagini, in realtà ho dovuto selezionare manualmente "aggiungi" anche nelle varianti 2x / 3x nel pannello Impostazioni File. Strano.
Android3000,

1
Questo! così importante. Il problema si presenta anche se si rinomina una cartella contenente file. In altre parole, xcode ci dà avvisi perché non abbiamo ancora eseguito il commit del nostro codice! clap clap clap
Warpzit

4
Questo ha funzionato per me. Ho dovuto chiudere Xcode e riaprire il progetto ed eseguirlo.
jaytrixz,

44

Nel mio caso, il file mancava dal controllo del codice sorgente.
Per risolvere, ho dovuto scartare questo file (fai attenzione a scartare solo il file mancante, non tutto il tuo progetto):

  1. Xcode-> Controllo sorgente-> commit
  2. Fare clic con il tasto destro del mouse sul file mancante
  3. Scegli Ignora modifiche

Funziona per me, ho rimosso la cartella DerivedData e gli avvisi erano per i file come "db.xcindexdb"
tontonCD

1
Innanzitutto, mi sono assicurato di impegnare e spingere le mie ultime modifiche. Poi ho fatto Xcode> Controllo del codice sorgente> Elimina tutte le modifiche e ho ripulito tutti gli errori.
EdwardM,

19

Disabilita il controllo del codice sorgente, pulisci cartella build ( Alt+Shift+Cmd+K), quindi abilita nuovamente il controllo del codice sorgente.

Xcode -> Preferenze -> Controllo del codice sorgente -> Abilita controllo del codice sorgente


1
risposta corretta ... ma la risposta esatta @emrekyv ha pubblicato 3 mesi prima ... Aumenta il voto
eric,

@eric mi ha suggerito solo di disabilitare il controllo del codice sorgente, ho mostrato come farlo funzionare correttamente.
George,

18

Nel mio caso, Xcode aveva in qualche modo trovato vecchie .svndirectory che facevano riferimento ai file mancanti. Ho dovuto andare fino un livello sopra la mia cartella di progetto per trovare quei file Svn. Una volta eliminato, ho riavviato Xcode e tutto è andato bene.


Sì, questo accade quando si elimina qualcosa da un progetto sotto il controllo versione quando è ancora indicato dal controllo versione (nel mio caso, svn). L'uso di "svn update" per ripristinare i file mancanti, quindi la loro eliminazione nel modo corretto usando "svn delete", ha risolto il problema.
ChrisB,

12

Ho avuto un problema simile con una manciata di file che erano stati eliminati da tempo dal mio progetto Xcode mentre stavo ancora usando Xcode 7.

La mia soluzione era:

  1. Crea file con i nomi di cui si lamentava Xcode (non hanno bisogno di alcun contenuto)
  2. Aggiungi i file al mio progetto Xcode (in Xcode fai clic con il pulsante destro del mouse sulla mia directory principale del progetto, fai clic su Aggiungi file a my_project_name e seleziona i file che sono stati appena creati
  3. Seleziona i nuovi file aggiunti ed eliminali: seleziona Sposta nel cestino.

Questo mi ha eliminato gli avvertimenti per me.


Questo ha funzionato anche per me. Ho avuto il problema dopo aver copiato un progetto esistente per creare un derivato, ma con funzionalità ridotte ⇒ meno file di origine.
Stefan,

9

Da aggiungere alla risposta di Alexander Vasenin ...

Prima ho commesso e spinto le mie modifiche

Menu principale Xcode> Controllo del codice sorgente> Conferma

Quindi ho scartato tutte le modifiche per eliminare gli errori

Menu principale Xcode> Controllo del codice sorgente> Elimina tutte le modifiche

Successivamente, gli errori che indicano che "file xxx.png manca dalla copia di lavoro" sono scomparsi.


Cosa succede se il progetto non utilizza il controllo versione o un sistema di controllo versione non supportato da XCode.
Martin,

8

Questo si verifica quando si elimina il file su Xcode, ma non lo si è detto al server svn.

Vai allo strumento da riga di comando ed elimina direttamente il file.

svn delete missingFile.m 

e commettilo

svn commit -m "Deleting file"

notare che se si elimina la cartella .svn, l'avviso scompare ma si perde la comunicazione con il server svn.


5

L'ho capito.

basta aprire lo strumento SVN di terze parti, trovare i file mancati, Ripristina; È tutto.


5

Ho avuto lo stesso problema e l'ho risolto aggiungendo git. Apri lo strumento da riga di comando

cd "project folder path"
git add .

Successivamente, riavvia il progetto Xcode e riapri il progetto.


E se non usi git?
Martin,

4

Mostra su target-> fasi di costruzione -> copia le risorse del pacchetto. e pulisci comando di creazione cartella + maiusc + alt + k


3
Grazie, ma non si trovano nelle fasi di compilazione e anche la pulizia della cartella di compilazione non aiuta.
Iban,

4

Ho dovuto andare manualmente in Terminale e rimuovere i file con git rm ProjectPath\aaa\xxx.pnge quindi impegnarmi. Dopo di che tutto ha funzionato bene.


3

Ottenuto questo per ogni progetto dopo essere passato a XCode 8. Ciò ha risolto:

Con il tasto Opzione premuto, Prodotto (nel menu del titolo) -> Pulisci cartella build.


2

Nel mio caso, ho avuto dati errati dai miei vecchi progetti nel simulatore. Risolto ripristinando il contenuto e le impostazioni nel simulatore:

Simulatore -> Ripristina contenuto e impostazioni ...


1

Per me ha funzionato:

Dal momento che non ho mai usato Git, ho creato un nuovo progetto (XCode 8, non riuscivo a vedere il solito "usa Git" o comunque il segno di spunta era etichettato). Quindi ho eliminato senza mezzi termini tutti i file in questo nuovo progetto; è andato al vecchio progetto incasinato, ha copiato tutto nella cartella del progetto, è tornato al progetto appena creato, incollato il vecchio materiale, aperto quello - tutti gli avvertimenti sui file che non esistono da mesi sono spariti. Dita incrociate.


1

Ho avuto lo stesso problema e l'ho risolto semplicemente trascinando i file specificati dal Finder nel navigatore del progetto (assicurandomi che nella finestra di dialogo sia selezionato "copia file") e eseguissi il commit dei file.


1

Questi avvisi non sono avvisi di costruzione, riguardano il repository SVN.

È corretto che le directory mostrate non esistano più, CocoaPods archivia Pods/Headers/{Private,Public}ora le intestazioni . Devi aggiornare la tua copia di lavoro per riflettere tali modifiche.


Non uso il controllo versione all'interno di XCode e il problema è stato riscontrato.
Martin

1

Nel mio caso, trascino e rilascia un numero di file nella finestra del mio progetto Xcode per aggiungerli. Ha fatto copie nella mia directory di origine ma non le ha messe dove volevo che andassero (le ha messe alla radice della mia directory, le ho volute in una sottodirectory). Senza pensare, li ho semplicemente presi nel Finder e li ho spostati nella directory in cui li volevo. Dopo essere tornati nella finestra del progetto, ovviamente non sono riuscito a trovarli, quindi li ho eliminati nella finestra e li ho aggiunti di nuovo. Dopo la compilazione ho iniziato a ricevere questi errori.

Ho pensato, come alcuni citano sopra che era un problema git ma quando ho eseguito "git ls-tree --full-tree -r HEAD" non ho visto affatto i file ??

Ad ogni modo, per risolvere tutto ciò che ho fatto è stato utilizzare il comando di menu "Aggiungi file ..." per aggiungere ciascuno dei file nella posizione predefinita, fare una build pulita, quindi eliminarli dalla finestra del progetto (usando lo spostamento nel cestino) e si è sbarazzato di tutti gli errori.


1

Ho ricevuto gli avvisi e inoltre non è stato possibile eseguire il commit delle modifiche in XCode (usando svn). Tutto quello che dovevo fare era riavviare XCode e il problema è scomparso.


1

Questo funziona per me: Xcode -> ("opzione + clic") Prodotto -> Clean Build Folder ... Di
riavviare xCode


0

Nel mio caso si è trattato di un problema con git e un file system senza distinzione tra maiuscole e minuscole.

Avevo inavvertitamente inviato lo stesso file due volte, utilizzando percorsi di file che differivano solo nel caso:

MyProject/Resources/foo.png
MyProject/resources/foo.png

Xcode si lamentava di uno dei file mancanti.

Risolto eliminando i file offensivi e aggiungendo nuovamente.

cd MyProject
mv Resources/foo.png /tmp
git rm Resources/foo.png
git rm resources/foo.png
git commit
mv /tmp/foo.png Resources
git add Resources/foo.png
git commit

0

Questo è sicuramente correlato al controllo del codice sorgente. Ho rinominato e spostato un paio di file plist non impegnati e ho riscontrato questo errore. Sto usando svn. Sono stato in grado di risolvere questo problema Source Control - Commitrimuovendo i vecchi file di riferimento.


Ho riscontrato il problema e non utilizzo il controllo versione di cui XCode è a conoscenza. Tutto il controllo della versione eseguito al di fuori di XCode.
Martin,
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.