Avvisi di file mancanti visualizzati dopo l'aggiornamento a Xcode 4


166

Di recente ho eseguito l'upgrade a Xcode 4 (che è un ottimo aggiornamento) ma ora ricevo alcuni avvisi che non ho ricevuto prima. Ho cercato nei forum e in altri post SO ma non ho trovato il modo di risolverlo.

Gli avvisi che ricevo sono avvisi a livello di progetto per un file mancante. I file che vengono visualizzati sono stati eliminati dalla vista di navigazione del progetto (anche scegliendo di eliminare dal file system). Tuttavia sembra ancora essere mostrato come in qualche modo collegato al progetto, anche se il file non appare più nel navigatore del progetto.

Mi sono guardato intorno e non ho trovato come posso dire a Xcode che questi file sono spariti, smettila di darmi avvertimenti. Ecco uno screenshot che ottengo in Xcode4, ma mai in Xcode 3.

Xcode avviso file mancante 4


Se fossi in te, importerei sempre i tuoi file nel tuo progetto invece di mantenere un link sul loro disco. Ti salva davvero dal mal di testa se sposti i file in un secondo momento.
sudo rm -rf

Risposte:


297

Queste soluzioni sono troppo difficili. Il problema è che hai rimosso il progetto dal filesystem ma SVN pensa ancora che siano lì. Staccare il progetto da SVN funzionerà, lo stesso per rimuovere le cartelle .svn MA che sta per distruggere il tuo repository!

È molto più semplice aprire la console, accedere alla cartella ("cd / pathToYourFolder") e digitare il comando seguente:

svn delete nameOfMissingFile

Se il nome del file mancante include il carattere @ (ad esempio: grafica specifica della retina), assicurarsi che il nome del file termini con il simbolo @:

svn delete nameOfMissingFile@2x.png@

Per i repository GIT:

git rm nameOfMissingFile


20
Ho avuto lo stesso problema e l'ho risolto tramite il terminale usando:svn rm --force nameOfMissingFile
ReachWest il

1
Questa è una risposta migliore di quella contrassegnata come corretta. L'eliminazione di cartelle SVN da un progetto sotto il controllo SVN può essere un mondo intero di dolore. Meglio usare SVN per risolvere il problema. Ho seguito questa risposta per risolvere il mio problema, tuttavia ho avuto il lusso di Cornerstone. Ma per il resto fico. Grazie :)
Jowie l'

1
Questo non sembra funzionare per me. Vorrei aggiungere nuovamente il file e quindi eliminarlo, ma lo stesso avviso viene comunque visualizzato nella build. Ho anche provato ad aggiungere nuovamente i file al progetto e quindi a eliminarli. Sempre lo stesso problema.
Yenyi,

10
Ha funzionato per me, ma prima dovevo creare un file fittizio prima di poterlo eliminare se avessi usato svn. Quindi devi toccare touchOofMissingFile e poi svn cancellare nameOfMissingFile --force
Maciej Swic

9
Inoltre, ho dovuto chiudere ed eliminare xcode perché il problema scompaia.
Twilite,

55

In XCode 4.2. + (Possibilmente in 4+) è possibile evitare il lavoro manuale e la riga di comando:

  1. Seleziona progetto Project Navigator (Command - 1)
  2. Scegli File - Controllo sorgente - Menu Salva
  3. Nel riquadro sinistro, sopra di esso ci sono tre icone, selezionare quella centrale - Vista File
  4. Vedrai l'elenco di tutti i file mancanti
  5. Selezionali tutti e fai clic con il pulsante destro del mouse - Elimina modifiche. Ciò ripristinerà tutti i file eliminati dal server SVN e li inserirà nella cartella SVN locale
  6. Trascina e rilascia quei file nel progetto XCode (Scegli Ordina-Data modificata nel Finder per trovarli facilmente)
  7. Elimina quei file correttamente tramite XCode (seleziona i file e scegli il tasto destro del mouse su Elimina)
  8. Commetti il ​​progetto

E questo è tutto :)

Tutti quei cattivi avvertimenti sono spariti!

Inoltre per Xcode 6+: dopo aver selezionato la 'icona centrale' della vista file, puoi fare clic sulla casella di controllo a sinistra e questo li contrassegnerà come eliminati per SVN al prossimo commit!


1
Necessario solo fino al passaggio 5. In realtà non avevo i file in SVN.
Darren Reely,

Avevo refactoring di un progetto, che riguardava un altro progetto di un codice condiviso e XCode si lamentava dei file mancanti, relativi a SVN. Mi ci è voluto un po 'per capire che si trattava di un problema SVN, dopo aver cercato manualmente il codice sorgente del progetto xml e non ho trovato nulla.
Danfordham,

50

In Xcode5 e Xcode6, i passaggi seguenti hanno funzionato per me

Xcode-> Preferences-> Source Control->uncheck Enable Source Control

poi

Xcode-> Preferences-> Source Control->check Enable Source Control


Su Xcode 8.3.2, ha funzionato per circa dieci minuti e poi tutti gli avvisi sono tornati subito :(
Bob

27

Ha qualcosa a che fare con le cartelle nascoste .svn nel tuo progetto.

Ho risolto questo problema staccando il progetto da svn.

un. Apri il terminale e digita i seguenti comandi:

defaults write com.apple.finder AppleShowAllFiles TRUE


killall Finder

Ciò ti consentirà di visualizzare le cartelle .svn all'interno del tuo progetto

b. Elimina tutte le cartelle .svn nelle cartelle / sottocartelle del progetto

c. Riattiva i file nascosti:

defaults write com.apple.finder AppleShowAllFiles FALSE

killall Finder

d. Ora il tuo progetto è staccato da svn e non hai più problemi di compilazione.

e. Aggiungi nuovamente il tuo progetto a svn o altro.

Anch'io sono un principiante e questo è stato il mio modo di affrontare questo problema, quindi non sono sicuro che sia il modo migliore di procedere. Comunque, il problema è stato risolto.


3
Non è una buona idea andare in giro a scherzare con cartelle e file nascosti SVN, potresti finire in un pasticcio aggrovigliato di SVN. Meglio usare il comando svn delete per riordinare i file mancanti.
jowie,

Questo è il percorso che ho effettivamente seguito. Sì, elimina tutte le informazioni SVN salvate, ma in realtà era qualcosa che qualcun altro aveva inserito in un particolare progetto che non volevo mantenere. Volevo ricominciare da capo e non mi importava di mantenere il particolare controllo delle versioni.
Scott

Ho appena "killall Finder" rilanciandolo. Il problema è sparito ora. Grazie
JHHoang

9

Questo ha funzionato per me:

File-> Source Control->Hide Working Copy Status

poi

File-> Source Control->Show Working Copy Status


6

L'ho risolto nel modo seguente:

  1. Controlla il percorso del file mancante.
  2. Creare file mancanti in posizioni appropriate all'interno della directory del progetto
  3. Aggiungili al tuo progetto usando "Aggiungi file a" progetto "" e crea solo riferimenti (non copiare i file)
  4. Gli avvisi dovrebbero scomparire a questo punto.
  5. Dall'interno di Xcode elimina i file assicurandoti di fare clic su "Elimina" anziché sul predefinito "Elimina solo riferimento"
  6. Hai finito.

4

Ho avuto quel bug e non ho trovato alcun modo per risolverlo se non quello di creare un file vuoto in quella posizione e quindi eliminarlo. È successo con i file che avevo eliminato dal progetto e neanche la pulizia, la creazione, l'eliminazione manuale della directory dei dati derivati ​​non funzionava. Credo che sia un bug e che possa essere abbastanza doloroso se succede con più di un paio di file.


Triste, speravo che ci fosse un modo più semplice per aggirare questo problema. Ho circa 20 file, quindi la creazione e l'eliminazione sarà piuttosto dolorosa.
Scott,

4

Ho anche avuto questo problema, e come user151215 lo ha descritto È dovuto alle cartelle .svn.

Avevo una vecchia cartella .svn, non nel progetto stesso ma nella cartella padre dei progetti.

la cartella .svn offensiva avrà un file di voci che contiene i file mancanti. Quindi puoi usare Teminal e cercare una stringa del nome file mancante, ad esempio grep -lir BagController.m yourRootDevDir / *

più semplice dell'abilitazione di file nascosti nel Finder, basta usare il terminale. cd nella directory pertinente e mv .svn ~ / .Trash

Spero che questo ti aiuti!



3

Ho usato il seguente modo per affrontare il problema:

Avviare il terminale e il cd nella directory del progetto. (es: cd /Users/Mauro/Src/Pippero-1.2/)

Quindi immettere il seguente comando:

find . -name .svn -exec rm -rf { } \;

il comando ricercherà ricorsivamente i file (e la cartella) chiamati .svn e li eliminerà


questo non ha funzionato per me, ma andando in ogni directory ed eliminando le singole cartelle .svn ha fatto. così grandi per te, amico mio!
gonzobrains,


2

Sto usando svn e riesco a risolvere questo problema

svn delete pathToMissingFile

che rimuoverà la copia svn locale del file mancante e la copia nel repository remoto.

o

svn revert pathToMissingFile

che sta per scartare le modifiche sul file mancante, il che significa riportare il file mancante nella posizione in cui si trovava.


1

Tutto quanto sopra non ha funzionato per risolvere lo stesso tipo di problema che ho avuto. Facendo qualche ricerca, ho capito che il problema che avevo era legato ai conflitti SVN.

Ho scoperto che c'erano dei conflitti usando la riga di comando:

svn status

Quindi tutti i file in conflitto dovevano essere risolti

svn resolved filename1 filename2 ...

Una volta risolti i conflitti, gli avvisi erano spariti da Xcode


1
  1. Impegnati e spingi i tuoi cambiamenti.
  2. Riavvia Xcode.

1

È molto semplice,

Xcode -> Preferences -> Source Control -> uncheck Enable Source Control

e non dimenticare di fare cmd+shift+k


0

Premi Cmd + 7 dopo la compilazione e seleziona l'ultima azione di compilazione. Sembra un po 'il buon vecchio Xcode? :) inserisci qui la descrizione dell'immagine


Sì, sembra il vecchio XCode, ma non risolve il problema con il nuovo XCode dicendo che ho dei file mancanti. Mi piace la vista, ma sembra che stia solo mascherando il problema con XCode.
Scott,

0

Nel mio caso

  1. Apro semplicemente SvnX.
  2. Tutti i file mancanti sono contrassegnati in rosso. Selezionali ed eliminali.
  3. Quindi tutti gli avvisi Xcode erano spariti.

0

La risposta di Alex ha risolto il problema dei file mancanti.

Ho avuto un altro problema (anche se non è correlato ai file mancanti, penso che questo sarebbe l'argomento migliore)

  1. Avevo bisogno di copiare una serie di immagini nel mio progetto.
  2. Ho semplicemente creato un gruppo (anche se so che quel gruppo non si associa alla cartella fisica) e ho trascinato le immagini nel gruppo (selezionata l'opzione "Copia in ...").
  3. Lo stato SVN li ha mostrati tutti in "A".
  4. Ora, quando sono entrato nel vero file system, ho scoperto che tutte le immagini sono state copiate nella cartella principale del mio progetto. Dato che non aveva un bell'aspetto, ho creato una cartella fisica all'interno della cartella delle immagini nel mio progetto e ho copiato tutte le immagini aggiunte lì.
  5. SVN ha quindi mostrato tutti i file in rosso.
  6. Ho cancellato i riferimenti di tutti i file rossi.
  7. Con l'opzione "Aggiungi file", ho quindi aggiunto le immagini dalla cartella appena creata.
  8. Ora SVN non riesce a mostrare lo stato dei file come "A", e in nessun modo posso controllarli.
  9. Ho provato molti passaggi come eliminarli aggiungendoli di nuovo da un'altra cartella ecc., Ma non c'è stata fortuna.

Ho risolto questo andando direttamente nel repository, creare una nuova directory sotto le immagini in modo che la cartella fisica sia ora nel server SVN

Ho quindi preso un aggiornamento della fonte e ho ottenuto la directory appena creata nella mia copia di lavoro (anche se non è stata aggiunta al progetto).

Ho quindi copiato le immagini in quella directory e le ho aggiunte al progetto usando l'opzione "Aggiungi file", che mi ha riportato lo stato "A" e sono stato in grado di controllare i file.

Volevo solo condividere questo ..... perché mi ci è voluto molto tempo.

-anoop


In questo caso, vai al Terminale e alla radice del tuo progetto. Crea la cartella con "svn mkdir name_of_the_folder". Trascina e rilascia i file con Finder da name_of_the_folder al tuo progetto (o nella cartella stessa per aggiungere tutti i file). Il problema è quando si crea una cartella senza "svn mkdir" la cartella non viene aggiunta all'SVN.
Alex

0

Non eliminare il file direttamente nella cartella .xcode. Elimina i file dal navigatore del progetto xcode. (Fare clic con il tasto destro su quel file e scegliere Sposta nel cestino).

Ora, per cancellare questo problema aggiungere gli stessi file nella stessa posizione. Ed elimina dal navigatore del progetto.


0

Non dovevo fare niente. Ho impegnato il mio codice e l'ho inviato. XCODE disattivato. Abbattuto di nuovo e tutto ha funzionato.


0

Panoramica:

Nel mio caso c'era un progetto xcode chiamato Samplenel seguente percorso di cartella /folder1/folder2.

C'era un .gitfile all'interno del /folder1/folder2/Sample/quale è previsto.

Causa ultima:

C'era un altro .gitfile nella directory principale ( /folder1) che stava causando il problema. Le cartelle potrebbero essere state eliminate lasciando il .gitfile

Soluzione

rm -rf /folder1/.git

Traccia

Se lo spostamento del progetto in una posizione completamente nuova risolve il problema in cui non vi era alcun .gitfile nelle directory principali nella gerarchia, è un indizio che la soluzione sopra potrebbe funzionare.

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.