Cette question a évolué au cours des dernières semaines pour couvrir des problèmes plus généraux liés à xcode4 (et aux projets de mise à niveau plus anciens (xcode s).
Cependant, bon nombre des problèmes peuvent être résolus en suivant le même ensemble d'instructions.
Si vous rencontrez l'un des problèmes suivants, essayez les méthodes de la réponse acceptée:
Titre: "Fichier de problème lexical ou de préprocesseur introuvable" dans Xcode 4
J'ai un projet dans Xcode 4 qui va bien se construire et s'exécuter sur le périphérique et le simulateur, mais lorsque vous essayez de l'archiver, des erreurs se produisent lors de la recherche de fichiers d'en-tête associés à une bibliothèque statique:
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 donne l'erreur
lexical or preprocessor issue file not found
Beaucoup Google a montré que beaucoup de gens avaient ce problème mais pas de solution. Tout le monde a un correctif ou même un indice.
Mise à jour: Le user header
les chemins de recherche sont définis sur ${BUILT_PRODUCTS_DIR}
dans toutes les configurations. Il se construit bien avec n’importe quelle configuration, sauf lors de l’archivage.
Mise à jour 2: Merchant.h
est une classe de données de base générée automatiquement et donc à l'intérieur de .xcdatamodeld
package, toutefois, les en-têtes sont tous copiés dans le répertoire des en-têtes publics lors de la construction de la bibliothèque.
NB: Les étapes ci-dessous résoudront 90% des problèmes d’archivage de votre Xcode. Toutefois, à partir des commentaires, nous vous suggérons d’essayer d’abord de quitter Xcode . Cela peut vous faire économiser des heures de mise au point.
$(LOCAL_APPS_DIR)
J'ai eu le même problème dans XCode 4: "Problème lexical ou du préprocesseur MyFile.h introuvable". Cependant, MyFile.m n'était pas une bibliothèque statique, mais une classe standard. Et MyFile.m et MyFile.h ont été correctement inclus et indexés dans le projet.
Alors ... j'ai quitté XCode et le simulateur, puis je les ai redémarrés et le problème a disparu.
J'ai constaté que le problème avait disparu lorsque j'ai modifié le paramètre de construction cible "Analyser tous les fichiers source pour les inclus" de non à oui.
J'ai pu résoudre ce problème sans modifier aucun des paramètres de construction en copiant simplement les fichiers .h dans le répertoire du projet dans le Finder. Je ne les ai pas du tout ajoutés au projet. Le simple fait de les avoir dans le répertoire du système de fichiers du projet semblait suffisant pour permettre à la liaison implicite de Xcode de fonctionner correctement. Plus de détails ici .
Ma solution était de changer mon
#import "HeaderFile.h"
à
#import <FrameworkName/HeaderFile.h>
et tout a recommencé à fonctionner. Ce qui était inhabituel, c’est qu’il avait cessé de fonctionner soudainement après avoir été construit plusieurs fois.
J'ai eu un problème étrange comme celui-ci. Changer "Analyser tous les fichiers de ressources ..." en Oui n'a pas aidé. J'ai jeté un coup d'oeil aux chemins de recherche de cadre et ai remarqué que j'avais
Cela semblait juste mais échouait toujours. J'ai ensuite essayé de réorganiser l'ordre de 2 et 3 et tout d'un coup, tout s'est bien déroulé. Donc, je ne sais pas pourquoi c'était un hickup, mais je voulais l'ajouter à la liste des choses à essayer au cas où cela aiderait quelqu'un d'autre.
Le problème s'est résolu quand j'ai mis
Construire Paramètres-> Projet-> Chemins de recherche à Oui
J'ai eu le même - 2 cibles dans mon projet (Project et ProjectTest de GHUnit
). Lorsque mon schéma a été configuré pour Project, l'importation de <GHUnitIOS/GHUnit.h>
était le problème de "fichier de problème lexical ou de préprocesseur introuvable". Mais quand j'ai défini comme un schéma ProjectTest, tout allait bien. Donc, j'ai ajouté GHUnitIOS.framework
dans Projet aussi.
Je recevais cette erreur "fichier non trouvé" pour un fichier .h particulier dans mon projet. J'ai résolu le problème en supprimant ce fichier .h du projet (en sélectionnant "Supprimer les références") et en le rajoutant.
On dirait que vos chemins de recherche d'en-tête sont incorrects et non configurés correctement dans vos paramètres de construction pour le schéma actif. Vérifiez-les et mettez à jour votre question avec le paramètre actuel.
Ajout de plus de variante: J'ai eu deux instances de foo.m
dans le Compile Source
phase de construction, causée par certains "En-tête non trouvé" pour foo.h
.
J'ai des problèmes similaires sur le simulateur, mais pas l'appareil et les champs de mon chemin de recherche d'en-tête sont vides (il semble être par défaut). Mais le changement d’espaces de travail semble avoir résolu le problème. Vous pourriez peut-être essayer de créer un nouvel espace de travail, y ajouter votre projet et voir si cela vous aide. Maintenant, je cherche pourquoi.
Une autre chance:
Dans le projet d'espace de travail: regardez dans la section Cible pour les phases de construction. Comme de nombreux manuels l'indiquent, vous devez disposer d'une phase de création de fichiers pour copier tous vos en-têtes vers un autre emplacement, car iOS Framework ne peut pas contenir de fichiers d'en-tête à partager (c'est mon cas).
Choisissez pour ces options Copier les fichiers comme destination "Répertoire des produits". Ou un autre répertoire de votre comme où les en-têtes résideront.
Cela a fonctionné pour moi. Le répertoire de construction pour Archive (ou version) est probablement très différent de celui attendu dans la construction pour Debug.
Vérifiez également dans les paramètres de votre espace de travail votre répertoire de construction.
XD
Pour moi, ce problème est survenu après que j'ai ajouté de nouveaux fichiers au projet. un espace vide .m et .h dérivé de NSObject. Voici comment j'ai résolu le problème:
Je les ai ensuite rajoutées ensuite et cela a également fonctionné.
Certainement un bug dans xCode ...