Cette question a évolué au cours des dernières semaines pour couvrir des problèmes plus généraux avec xcode4 (et la mise à niveau des projets d'anciens xcodes).
Cependant, de nombreux 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:
- Xcode 4 ne parvient pas à archiver une application
- Xcode 4 crée une archive inutilisable
- Xcode 4 ne crée pas de .ipa
- Xcode 4 ne parvient pas à se compiler en raison d'erreurs de préprocesseur
- Xcode 4 ne trouve pas les en-têtes
- Le code complet de Xcode 4 ne fonctionne pas
- Les dépendances du projet ne se compilent pas
- L'ajout d'une dépendance provoque l'un des problèmes ci-dessus
Question originale
Titre: "Fichier de problème lexical ou de préprocesseur introuvable" dans Xcode 4
J'ai un projet dans Xcode 4 qui se construira correctement et fonctionnera sur l'appareil et le simulateur, mais lorsque vous essayez d'archiver des erreurs lors de la recherche de fichiers d'en-têtes 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 recherches sur Google ont montré que de nombreuses personnes avaient ce problème, mais aucune solution. Tout le monde a une solution ou même un indice.
Mise à jour: Les user header
chemins de recherche sont mis à ${BUILT_PRODUCTS_DIR}
dans toutes les configurations. Il se construit bien en utilisant n'importe quelle configuration sauf lors de l'archivage.
Mise à jour 2: Merchant.h
est une classe Core Data qui est générée automatiquement et donc à l'intérieur du .xcdatamodeld
package, cependant les en-têtes sont tous copiés dans le répertoire d'en-têtes public lorsque la bibliothèque est construite.