Diese Frage hat sich in den letzten Wochen weiterentwickelt, um allgemeinere Fragen zu behandeln xcode4 (und Upgrades von älteren Projekten xcodes).
Viele der Probleme können jedoch durch Befolgen derselben Anweisungen gelöst werden.
Wenn Sie eines der folgenden Probleme haben, probieren Sie die Methoden in der akzeptierten Antwort aus:
- Xcode 4 kann eine App nicht archivieren
- Xcode 4 erstellt ein unbrauchbares Archiv
- Xcode 4 erstellt keine .ipa
- Xcode 4 kann aufgrund von Präprozessorfehlern nicht kompiliert werden
- Xcode 4 kann keine Header finden
- Der vollständige Code von Xcode 4 funktioniert nicht
- Projektabhängigkeiten werden nicht kompiliert
- Das Hinzufügen einer Abhängigkeit verursacht eines der oben genannten Probleme
Ursprüngliche Frage
Titel: "Lexikon- oder Präprozessor-Problemdatei nicht gefunden" in Xcode 4
Ich habe ein Projekt in Xcode 4, das gut funktioniert und auf dem Gerät und dem Simulator ausgeführt wird, aber beim Versuch, es zu archivieren, treten Fehler auf, wenn nach Header-Dateien gesucht wird, die einer statischen Bibliothek zugeordnet sind:
In file included from /Volumes/Development/Path/LBProject/LBProject/LBProject-Prefix.pch:15:
In file included from /Volumes/Development/Path/LBProject/LBFDefines.h:23:
In file included from /Volumes/Development/Path/LBProject/Classes/LBProjectAppDelegate.h:11:
In file included from /Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDirectoryManager.h:10:
/Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDataModel.h:11:9: fatal error: 'Merchant.h' file not found [1]
#import "Merchant.h"
^
1 error generated.
Xcode gibt den Fehler aus
lexical or preprocessor issue file not found
Viel Googeln hat gezeigt, dass viele Menschen dieses Problem haben, aber keine Lösung. Jeder hat eine Lösung oder sogar eine Ahnung.
Update: Die user header
Suchpfade sind ${BUILT_PRODUCTS_DIR}
in allen Konfigurationen eingestellt. Es funktioniert mit jeder Konfiguration, außer bei der Archivierung.
Update 2: Merchant.h
ist eine Core Data-Klasse, die automatisch generiert wird und sich daher im .xcdatamodeld
Paket befindet. Die Header werden jedoch alle beim Erstellen der Bibliothek in das öffentliche Header-Verzeichnis kopiert.
quelle
Ich hatte das gleiche Problem in XCode 4: "Lexikalisches oder Präprozessor-Problem MyFile.h nicht gefunden". MyFile.m war jedoch keine statische Bibliothek, sondern nur eine Standardklasse. Und MyFile.m und MyFile.h wurden ordnungsgemäß aufgenommen und im Projekt indiziert.
Also ... Ich habe XCode und den Simulator beendet, sie dann neu gestartet und das Problem ist verschwunden.
quelle
Ich stellte fest, dass das Problem behoben war, als ich die Ziel-Build-Einstellung "Alle Quelldateien nach Includes durchsuchen" von "Nein" in "Ja" änderte.
quelle
Ich konnte dieses Problem beheben, ohne Änderungen an den Build-Einstellungen vorzunehmen, indem ich einfach die .h-Dateien in das Projektverzeichnis im Finder kopierte. Ich habe sie NICHT zum Projekt hinzugefügt. Nur sie im Dateisystemverzeichnis des Projekts zu haben, schien ausreichend zu sein, damit die implizite Verknüpfung von Xcode ordnungsgemäß funktioniert. Weitere Details hier .
quelle
Ich hatte so ein komisches Problem. Das Ändern von "Alle Ressourcendateien scannen ..." in "Ja" hat nicht geholfen. Ich habe mir die Framework-Suchpfade angesehen und festgestellt, dass dies der Fall war
Es schien richtig zu sein, scheiterte aber immer noch. Ich habe dann versucht, die Reihenfolge 2 & 3 neu zu ordnen, und plötzlich hat es gut funktioniert. Ich bin mir also nicht sicher, warum das so schlimm war, wollte es aber zur Liste der Dinge hinzufügen, die ich ausprobieren sollte, falls es jemand anderem hilft.
quelle
Meine Lösung bestand darin, meine zu ändern
zu
und alles fing wieder an zu arbeiten. Was ungewöhnlich war, war, dass es nach einigen Bauarbeiten plötzlich nicht mehr funktionierte.
quelle
Das Problem hat sich beim Einstellen von selbst gelöst
Build-Einstellungen-> Projekt-> Suchpfade zu Ja
quelle
Ich hatte das gleiche - 2 Ziele in meinem Projekt ( Project und ProjectTest of
GHUnit
). Als mein Schema für Project eingerichtet wurde , war der Import von "<GHUnitIOS/GHUnit.h>
Problem der lexikalischen oder Präprozessor- Problemdatei nicht gefunden" . Aber als ich ProjectTest als Schema festlegte , war alles in Ordnung. Also habe ich auchGHUnitIOS.framework
in Project hinzugefügt .quelle
Anscheinend sind Ihre Header-Suchpfade falsch und in Ihren Build-Einstellungen für das aktive Schema nicht richtig konfiguriert. Überprüfen Sie sie und aktualisieren Sie Ihre Frage mit der aktuellen Einstellung.
quelle
Ich habe ähnliche Probleme mit dem Simulator, aber nicht mit dem Gerät. Die Felder für den Header-Suchpfad sind leer (scheint Standard zu sein). Das Ändern von Arbeitsbereichen scheint das Problem jedoch gelöst zu haben. Vielleicht können Sie versuchen, einen neuen Arbeitsbereich zu erstellen, Ihr Projekt hinzufügen und prüfen, ob dies hilfreich ist. Jetzt untersuche ich warum.
quelle
Ich habe den Fehler "Datei nicht gefunden" für eine bestimmte .h-Datei in meinem Projekt erhalten. Ich habe das Problem behoben, indem ich diese .h-Datei aus dem Projekt entfernt ("Referenzen entfernen" ausgewählt) und erneut hinzugefügt habe.
quelle
Hinzufügen einer weiteren Variante: Ich hatte zwei Instanzen
foo.m
in derCompile Source
Erstellungsphase, für die zum Teil "Header nicht gefunden" verursacht wurdefoo.h
.quelle
Noch eine Chance:
Im Arbeitsbereichsprojekt: Achten Sie im Abschnitt Ziel auf Phasen erstellen. Wie in vielen Handbüchern angegeben, benötigen Sie eine Erstellungsphase zum Kopieren von Dateien, um alle Ihre Header an einen anderen Ort zu kopieren, da iOS Framework keine Header-Dateien enthalten kann, die freigegeben werden sollen (dies ist mein Fall).
Wählen Sie für diese Dateien als Zieloption die Option "Produktverzeichnis". Oder ein anderes Verzeichnis von Ihnen, in dem sich die Header befinden.
Das hat bei mir funktioniert. Wahrscheinlich unterscheidet sich der Build für das Archiv- (oder Release-) Verzeichnis stark von dem für Build für Debug erwarteten.
Überprüfen Sie auch in Ihren Arbeitsbereichseinstellungen Ihr Build-Verzeichnis.
XD
quelle
Bei mir trat dieses Problem auf, nachdem ich dem Projekt neue Dateien hinzugefügt hatte. ein leeres .m und .h abgeleitet von NSObject. So habe ich es gelöst:
Ich habe sie danach wieder hinzugefügt und es hat auch funktioniert.
Auf jeden Fall ein Fehler in xCode ...
quelle