Fehlende Datei-Warnungen werden nach dem Upgrade auf Xcode 4 angezeigt

166

Ich habe kürzlich ein Upgrade auf Xcode 4 durchgeführt (was ein großartiges Upgrade ist), aber jetzt erhalte ich einige Warnungen, die ich vorher nicht erhalten habe. Ich habe Foren und andere SO-Beiträge durchgesehen, bin aber nicht darauf gestoßen, wie ich das beheben kann.

Die Warnungen, die ich erhalte, sind Warnungen auf Projektebene für eine fehlende Datei. Die angezeigten Dateien wurden aus der Projektnavigatoransicht gelöscht (auch aus dem Dateisystem löschen). Es scheint jedoch immer noch als irgendwie mit dem Projekt verbunden zu sein, obwohl die Datei nicht mehr im Projektnavigator angezeigt wird.

Ich habe mich umgesehen und nicht gefunden, wie ich Xcode mitteilen kann, dass diese Dateien verschwunden sind. Hören Sie auf, mir Warnungen zu geben. Hier ist ein Screenshot, den ich in Xcode4 bekomme, aber nie in Xcode 3.

Fehlende Datei Warnung Xcode 4

Scott
quelle
Wenn ich Sie wäre, würde ich Ihre Dateien immer in Ihr Projekt importieren, anstatt nur einen Link zu ihnen auf Ihrer Festplatte zu behalten. Es erspart Ihnen wirklich Kopfschmerzen, wenn Sie Dateien später verschieben.
Sudo rm-rf

Antworten:

297

Diese Lösungen sind viel zu schwierig. Das Problem ist, dass Sie das Projekt aus dem Dateisystem entfernt haben, SVN jedoch weiterhin glaubt, dass sie vorhanden sind. Das Trennen des Projekts von SVN funktioniert genauso wie das Entfernen von .svn-Ordnern, ABER das wird Ihr Repository zerstören!

Es ist viel einfacher, die Konsole zu öffnen, zu Ihrem Ordner ("cd / pathToYourFolder") zu navigieren und den folgenden Befehl einzugeben:

svn delete nameOfMissingFile

Wenn der Name Ihrer fehlenden Datei das @ -Zeichen enthält (z. B. Retina-spezifisches Bildmaterial), stellen Sie sicher, dass der Dateiname mit dem @ -Symbol endet:

svn delete [email protected]@

Für GIT-Repositorys:

git rm nameOfMissingFile

Sulthan
quelle
20
Ich hatte das gleiche Problem und löste es über das Terminal mit:svn rm --force nameOfMissingFile
ReachWest
1
Dies ist eine bessere Antwort als die als richtig gekennzeichnete. Das Löschen von SVN-Ordnern aus einem Projekt unter SVN-Kontrolle kann eine ganze Welt voller Schmerzen sein. Verwenden Sie am besten SVN, um das Problem zu lösen. Ich folgte dieser Antwort, um mein eigenes Problem zu lösen, hatte jedoch den Luxus von Cornerstone. Aber sonst cool. Danke :)
Jowie
1
Das scheint bei mir nicht zu funktionieren. Ich würde die Datei wieder hinzufügen und dann löschen, aber die gleiche Warnung wird immer noch im Build angezeigt. Ich habe sogar versucht, die Dateien wieder zum Projekt hinzuzufügen und sie dann zu löschen. Immer noch das gleiche Problem.
Yenyi
10
Es hat bei mir funktioniert, aber ich musste dort zuerst eine Dummy-Datei erstellen, bevor ich sie löschen konnte, wenn ich svn verwendete. Sie müssen also nameOfMissingFile berühren und dann nameOfMissingFile löschen --force
Maciej Swic
9
Ich musste außerdem xcode beenden und töten, damit das Problem behoben werden konnte.
Twilite
55

In XCode 4.2. + (Möglicherweise in 4+) können Sie manuelle Arbeit und Befehlszeile vermeiden:

  1. Projekt auswählen Projektnavigator (Befehl - 1)
  2. Wählen Sie das Menü Datei - Quellcodeverwaltung - Festschreiben
  3. Wählen Sie im linken Bereich darüber drei Symbole aus und wählen Sie das mittlere aus - Dateiansicht
  4. Sie sehen die Liste aller fehlenden Dateien
  5. Wählen Sie alle aus und klicken Sie mit der rechten Maustaste - Änderungen verwerfen. Dadurch werden alle gelöschten Dateien vom SVN-Server wiederhergestellt und in Ihrem lokalen SVN-Ordner abgelegt
  6. Ziehen Sie diese Dateien per Drag & Drop in das XCode-Projekt (wählen Sie im Finder die Option "Sortierdatum geändert", um sie leicht zu finden).
  7. Löschen Sie diese Dateien ordnungsgemäß über XCode (wählen Sie Dateien aus und klicken Sie mit der rechten Maustaste auf Löschen).
  8. Übernehmen Sie das Projekt

Und das ist es :)

All diese bösen Warnungen sind weg!

Zusätzlich für Xcode 6+: Nachdem Sie das Dateisymbol 'mittleres Symbol' ausgewählt haben, können Sie auf das Kontrollkästchen links klicken. Dadurch werden sie beim nächsten Festschreiben als für SVN gelöscht markiert!

Alex
quelle
1
Nur bis Schritt 5 erforderlich. Ich hatte die Dateien nicht in SVN.
Darren Reely
Ich hatte ein Projekt überarbeitet, das sich auf ein anderes Projekt aufgrund eines gemeinsam genutzten Codes auswirkte, und XCode beschwerte sich über fehlende Dateien im Zusammenhang mit SVN. Ich habe eine Weile gebraucht, um herauszufinden, dass es sich um ein SVN-Problem handelt, nachdem ich die Projektquellen-XML manuell durchsucht und nichts gefunden habe.
Danfordham
50

In Xcode5 und Xcode6 haben die folgenden Schritte für mich funktioniert

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

dann

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

Shamsudheen TK
quelle
Auf Xcode 8.3.2 funktionierte dies ungefähr zehn Minuten lang und dann kamen alle Warnungen sofort zurück :(
Bob
27

Es hat etwas mit versteckten .svn-Ordnern in Ihrem Projekt zu tun.

Ich habe dieses Problem gelöst, indem ich das Projekt von svn getrennt habe.

ein. Öffnen Sie das Terminal und geben Sie die folgenden Befehle ein:

defaults write com.apple.finder AppleShowAllFiles TRUE


killall Finder

Auf diese Weise können Sie die .svn-Ordner in Ihrem Projekt anzeigen

b. Löschen Sie jeden .svn-Ordner in Ihren Projektordnern / Unterordnern

c. Versteckte Dateien wieder aktivieren:

defaults write com.apple.finder AppleShowAllFiles FALSE

killall Finder

d. Jetzt ist Ihr Projekt von svn getrennt und Sie erhalten keine Build-Probleme mehr.

e. Fügen Sie Ihr Projekt erneut zu svn oder was auch immer hinzu.

Ich bin selbst ein Anfänger und dies war meine Art, mit diesem Problem umzugehen, daher bin ich mir nicht sicher, ob dies der beste Weg ist. Jedenfalls wurde das Problem gelöst.

Robert Neagu
quelle
3
Es ist keine gute Idee, mit versteckten SVN-Ordnern und -Dateien herumzuspielen, da dies zu einem Wirrwarr von SVN führen könnte. Verwenden Sie am besten den Befehl svn delete, um fehlende Dateien aufzuräumen.
Jowie
Dies ist der Weg, den ich tatsächlich eingeschlagen habe. Ja, es löscht alle gespeicherten SVN-Informationen, aber das war tatsächlich etwas, das jemand anderes in ein bestimmtes Projekt gesteckt hatte, das ich nicht behalten wollte. Ich wollte neu anfangen und kümmerte mich nicht darum, die jeweilige Versionierung beizubehalten.
Scott
Ich "killall Finder" nur durch Relaunch. Das Problem ist jetzt weg. Vielen Dank
JHHoang
9

Das hat bei mir funktioniert:

File-> Source Control->Hide Working Copy Status

dann

File-> Source Control->Show Working Copy Status

Tyson
quelle
6

Ich habe es folgendermaßen gelöst:

  1. Überprüfen Sie den Pfad zur fehlenden Datei.
  2. Erstellen Sie fehlende Dateien an geeigneten Stellen in Ihrem Projektverzeichnis
  3. Fügen Sie sie mit "Dateien zu" Projekt "hinzufügen" zu Ihrem Projekt hinzu und erstellen Sie nur Referenzen (kopieren Sie die Dateien nicht).
  4. Die Warnungen sollten an dieser Stelle verschwinden.
  5. Löschen Sie die Dateien in Xcode und stellen Sie sicher, dass Sie auf "Löschen" anstatt auf "Standard nur Referenz löschen" klicken.
  6. Du bist fertig.
askorisch
quelle
4

Ich hatte diesen Fehler und fand keine andere Möglichkeit, ihn zu lösen, als eine leere Datei an dieser Position zu erstellen und sie dann zu löschen. Dies geschah mit Dateien, die ich aus dem Projekt gelöscht hatte, und das Bereinigen, Erstellen und manuelle Löschen des Verzeichnisses für abgeleitete Daten funktionierte ebenfalls nicht. Ich glaube, es ist ein Fehler, und dass es ziemlich schmerzhaft sein kann, wenn es mit mehr als ein paar Dateien passiert.

Jano
quelle
Traurig, hoffte, dass es einen einfacheren Weg gibt, um dieses Problem zu umgehen. Ich habe ungefähr 20 Dateien, daher wird das Erstellen und Löschen ziemlich schmerzhaft sein.
Scott
4

Ich hatte auch dieses Problem, und wie user151215 beschrieben hat, liegt es an .svn-Ordnern.

Ich hatte einen alten .svn-Ordner, nicht im Projekt selbst, sondern im übergeordneten Ordner des Projekts.

Der fehlerhafte .svn-Ordner enthält eine Eintragsdatei, die Ihre fehlenden Dateien enthält. Sie können also Teminal verwenden und nach einer fehlenden Dateinamenzeichenfolge suchen, z. B. grep -lir BagController.m yourRootDevDir / *

Einfacher als das Aktivieren versteckter Dateien im Finder, verwenden Sie einfach das Terminal. CD in das entsprechende Verzeichnis und mv .svn ~ / .Trash

Hoffe das hilft!

Nick H247
quelle
4

Gehen Sie in das entsprechende Verzeichnis und führen Sie Folgendes aus:

svn revert fileName
Shaun McCarthy
quelle
3

Ich habe das Problem auf folgende Weise behandelt:

Starten Sie das Terminal und die CD in das Projektverzeichnis. (Beispiel: cd /Users/Mauro/Src/Pippero-1.2/)

Geben Sie dann den folgenden Befehl ein:

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

Der Befehl sucht rekursiv nach Dateien (und Ordnern) mit dem Namen .svn und löscht diese

Mauro Delrio
quelle
Das hat bei mir nicht funktioniert, aber in jedes Verzeichnis zu gehen und die einzelnen .svn-Ordner zu löschen, hat funktioniert. so viel für dich, mein Mann!
Gonzobrains
2

Ich benutze svn und schaffe es, dieses Problem durch zu lösen

svn delete pathToMissingFile

Dadurch werden die lokale SVN-Kopie der fehlenden Datei sowie die Kopie im Remote-Repository entfernt.

oder

svn revert pathToMissingFile

Dadurch werden Änderungen an der fehlenden Datei verworfen, was bedeutet, dass die fehlende Datei wieder an den ursprünglichen Ort zurückgesetzt wird.

Jibeex
quelle
1

All das hat nicht funktioniert, um das gleiche Problem zu lösen, das ich hatte. Bei einer Suche habe ich verstanden, dass das Problem, das ich hatte, mit SVN-Konflikten zusammenhängt.

Ich fand heraus, dass es Konflikte über die Befehlszeile gab:

svn status

Dann mussten alle in Konflikt stehenden Dateien aufgelöst werden

svn resolved filename1 filename2 ...

Sobald die Konflikte gelöst waren, wurden die Warnungen von Xcode entfernt

gfrigon
quelle
1
  1. Übernehmen und pushen Sie Ihre Änderungen.
  2. Starten Sie Xcode neu.
sehr schön
quelle
1

Es ist sehr einfach,

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

und Vergiss nicht zu tun cmd+shift+k

Kavin Kumar Arumugam
quelle
0

Drücken Sie nach dem Erstellen Cmd + 7 und wählen Sie die neueste Erstellungsaktion aus. Sieht es ein bisschen nach gutem alten Xcode aus? :) :) Geben Sie hier die Bildbeschreibung ein

Knuku
quelle
Ja, es sieht aus wie der alte XCode, aber es löst nicht das Problem mit dem neuen XCode, der besagt, dass ich fehlende Dateien habe. Ich mag die Ansicht, aber dies scheint nur das Problem mit XCode zu maskieren.
Scott
0

In meinem Fall

  1. Ich öffne einfach SvnX.
  2. Alle fehlenden Dateien sind rot markiert. Wählen Sie sie aus und löschen Sie sie.
  3. Dann waren alle Xcode-Warnungen verschwunden.
Apoc
quelle
0

Die Antwort von Alex hat mein Problem mit fehlenden Dateien behoben.

Ich hatte ein anderes Problem (obwohl es nicht mit fehlenden Dateien zusammenhängt, denke ich, dass dies das bessere Thema wäre)

  1. Ich musste eine Reihe von Bildern in mein Projekt kopieren.
  2. Ich habe einfach eine Gruppe erstellt (obwohl ich weiß, dass diese Gruppe nicht dem physischen Ordner zugeordnet ist) und die Bilder in die Gruppe gezogen (ausgewählte Option "Kopieren nach ...").
  3. Der SVN-Status zeigte alle in "A".
  4. Als ich nun in das eigentliche Dateisystem ging, stellte ich fest, dass alle Bilder in den Stammordner meines Projekts kopiert wurden. Da es nicht gut aussah, habe ich in meinem Projekt einen physischen Ordner im Bilderordner erstellt und alle hinzugefügten Bilder dort kopiert.
  5. SVN zeigte dann alle Dateien in rot an.
  6. Ich habe die Referenzen aller roten Dateien gelöscht.
  7. Mit der Option "Datei hinzufügen" habe ich dann die Bilder aus dem neu erstellten Ordner hinzugefügt.
  8. Jetzt zeigt SVN den Status der Dateien nicht als "A" an und ich kann sie auf keinen Fall einchecken.
  9. Es wurden viele Schritte ausprobiert, z. B. das erneute Hinzufügen aus einem anderen Ordner usw., aber es gab kein Glück.

Ich habe dies behoben, indem ich direkt in das Repository gegangen bin und ein neues Verzeichnis unter Images erstellt habe, sodass sich der physische Ordner jetzt auf dem SVN-Server befindet

Ich habe dann ein Update der Quelle vorgenommen und das neu erstellte Verzeichnis in meine Arbeitskopie aufgenommen (obwohl es nicht zum Projekt hinzugefügt wurde).

Ich habe dann die Bilder in dieses Verzeichnis kopiert und sie mit der Option "Datei hinzufügen" zum Projekt hinzugefügt, wodurch ich wieder den Status "A" erhielt und die Dateien einchecken konnte.

Ich wollte das nur teilen ... weil es mir viel Zeit gekostet hat.

-anoop

anoop4real
quelle
In diesem Fall gehen Sie zum Terminal und zum Stammverzeichnis Ihres Projekts. Erstellen Sie den Ordner mit "svn mkdir name_of_the_folder". Ziehen Sie Dateien mit dem Finder per Drag & Drop aus dem Namen des Ordners in Ihr Projekt (oder ordnen Sie sie selbst, um alle Dateien hinzuzufügen). Problem ist, wenn Sie einen Ordner erstellen, ohne dass der Ordner "svn mkdir" nicht zum SVN hinzugefügt wird.
Alex
0

Löschen Sie die Datei nicht direkt in Ihrem .xcode-Ordner. Löschen Sie Dateien aus dem xcode project navigator. (Klicken Sie mit der rechten Maustaste auf diese Datei und wählen Sie In den Papierkorb verschieben).

Um dieses Problem zu beheben, fügen Sie dieselben Dateien am selben Speicherort hinzu. Und aus dem Projektnavigator löschen.

Gowtham R.
quelle
0

Ich musste nichts tun. Ich habe meinen Code festgeschrieben und hochgeschoben. XCODE ausgeschaltet. Zog es wieder runter und alles funktionierte einfach.

VBaarathi
quelle
0

Überblick:

In meinem Fall gab es ein xcode-Projekt, das Sampleim folgenden Ordnerpfad aufgerufen wurde/folder1/folder2 .

Da war eine .gitAkte drin/folder1/folder2/Sample/ die erwartet wird.

Ursache:

Es gab eine andere .gitDatei im übergeordneten Verzeichnis ( /folder1), die das Problem verursachte. Die Ordner wurden möglicherweise gelöscht und hinterlassen die.git Datei

Lösung

rm -rf /folder1/.git

Hinweis

Wenn das Verschieben Ihres Projekts an einen völlig neuen Speicherort das Problem behebt, bei dem keine .gitDatei in den übergeordneten Verzeichnissen in der Hierarchie vorhanden war, ist dies ein Hinweis darauf, dass die oben genannte Lösung funktionieren könnte.

user1046037
quelle