96 votes

Compiler, de construire ou d’archiver des problèmes avec Xcode 4 (et dépendances)

Cette question a évolué au cours des dernières semaines, afin de couvrir les questions plus générales avec (et des projets de réaménagement forme âgées s).

Cependant, la plupart des problèmes peuvent être résolus en suivant les mêmes directives.

Si vous avez des questions suivantes, essayez les méthodes de la accepté de répondre:

  • Xcode 4 ne parvient pas à archiver une Application
  • Xcode 4 crée un inutilisables archive
  • Xcode 4 ne prend pas en créer un .ipa
  • Xcode 4 ne peut pas compiler en raison d'erreurs de préprocesseur
  • Xcode 4 ne peut pas trouver les en-têtes
  • Xcode 4 du code ne fonctionne pas
  • Projet dépendances ne compile pas
  • L'ajout d'une dépendance qui provoque l'une quelconque des questions ci-dessus

Question D'Origine

Titre: "lexical ou préprocesseur problème de fichier non trouvé" dans Xcode 4

J'ai un projet dans Xcode 4 qui va construire fine et exécuté sur le périphérique et sur simulateur, mais lorsque vous essayez d'Archiver des erreurs lors de la recherche pour les en-têtes des fichiers 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 de Googler a montrer de nombreuses personnes ont ce problème mais pas de solution. Quelqu'un a une solution ou même un indice.

Mise à jour: L' user header chemins de recherche sont définies à l' ${BUILT_PRODUCTS_DIR} dans toutes les configurations. Il s'appuie fine à l'aide de toute configuration, sauf lors de l'archivage.

Mise à jour 2: Merchant.h est une Base de Données de la classe et qui est auto-généré et donc à l'intérieur de .xcdatamodeld paquet, cependant les en-têtes sont toutes copiées au public les en-têtes de répertoire lors de la bibliothèque est construite.

119voto

rjstelling Points 12180

NB: Les étapes ci-dessous permettra de résoudre 90% de votre Xcode archives cependant, d'après les commentaires, il est suggéré que vous essayez de cesser de fumer Xcode d'abord. Cela peut vous épargner des heures de réglage de peaufinage.

  1. Cochez la case "l'utilisateur en-tête chemins" sont corrects (Ajouter "" sur les chemins de l'espace, à la fois dans votre projet et dépendances)
  2. Set "Toujours à la recherche de chemins de l'utilisateur" sur "OUI"
  3. Créer un groupe d'appel de l'Indexation "en-têtes" dans votre projet et faites glisser les en-têtes de ce groupe, NE PAS ajouter à toutes les cibles lorsque vous y êtes invité. Cela inclut les en-têtes à l'intérieur de votre .xcdatamodeld, vous aurez besoin de faire un clic droit et afficher le contenu du paquet pour les trouver.
  4. Pour toutes les dépendances de définir Ignorer"Installer" paramètre de construction de "Oui"
  5. Le déplacement de tous les "Public" en-têtes dans les Phases de construction de "Projet"
  6. Définissez le Paramètre de construction "du Répertoire d'Installation sur votre Cible à l' $(LOCAL_APPS_DIR)
  7. Modifier la cible paramètre de construction de "scanner tous les fichiers source pour les inclut" sur "OUI". (lien)
  8. Avec les nouvelles versions de Xcode (> 4.2) vous pouvez lire cette question relative aux espaces de travail.
  9. Manuellement supprimer le projet.xcworkspace fichiers de forme tous les projets référencés

13voto

richardsun Points 2627

J’ai eu le même problème dans XCode 4 : « Lexical ou question préprocesseur MyFile.h introuvable ». Toutefois, MyFile.m n’était pas une bibliothèque statique, juste une classe standard. Et MyFile.m et MyFile.h ont été inclus correctement et indexé dans le projet.

Donc... J’ai quitter le simulateur et XCode avant de reprendre leur et le problème a disparu.

11voto

doc taco Points 99

J’ai trouvé que le problème a disparu lorsque j’ai changé le cible build paramètre « scan inclut tous les fichiers source pour » de non à Oui.

6voto

David Avendasora Points 2111

J’ai pu résoudre ce problème sans aucune modification à l’un des paramètres de la génération en copiant simplement les fichiers .h dans le répertoire du projet dans le finder. Je n’ai pas ajouter eux au projet du tout. Juste de les avoir dans le système de fichiers du projet répertoire semble être suffisant pour permettre la liaison implicite de Xcode fonctionner correctement. Plus de détails ici.

4voto

dizy Points 3755

J'ai eu un drôle de problème de ce genre. Changer de "Scanner tous les fichiers de ressources..." sur " Oui " n'a pas aidé. J'ai pris un coup d'oeil dans le Cadre des Chemins de Recherche et remarqué que j'avais

  • $(héritée)
  • "$(SRCROOT)"
  • "$(SRCROOT)/mon/corriger/chemin"

Il me semblait juste, mais est toujours à la peine. J'ai ensuite essayé le réarrangement de l'ordre de 2 & 3 et tout d'un coup, il construit amende. Donc je ne sais pas pourquoi c'était le hoquet, mais je voulais l'ajouter à la liste de choses à essayer au cas où il permet à quelqu'un d'autre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X