Questa domanda si è evoluta nelle ultime settimane per coprire questioni più generali xcode4 (e l'aggiornamento dei progetti da più vecchio xcodeS).
Tuttavia molti dei problemi possono essere risolti seguendo la stessa serie di istruzioni.
Se riscontri uno dei seguenti problemi, prova i metodi nella risposta accettata:
- Xcode 4 non riesce ad archiviare un'app
- Xcode 4 crea un archivio inutilizzabile
- Xcode 4 non crea un .ipa
- Xcode 4 non riesce a compilare a causa di errori del preprocessore
- Xcode 4 non riesce a trovare le intestazioni
- Il codice completo di Xcode 4 non funziona
- Le dipendenze del progetto non verranno compilate
- L'aggiunta di una dipendenza causa uno dei problemi di cui sopra
Domanda originale
Titolo: "file problema lessicale o preprocessore non trovato" in Xcode 4
Ho un progetto in Xcode 4 che verrà costruito correttamente e verrà eseguito sul dispositivo e sul simulatore, ma quando si tenta di archiviarlo si verifica un errore durante la ricerca di file di intestazione associati a una libreria statica:
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 restituisce l'errore
lexical or preprocessor issue file not found
Molto Googling ha mostrano molte persone stanno avendo questo problema ma nessuna soluzione. Qualcuno ha una soluzione o anche un indizio.
Aggiornamento: I user header
percorsi di ricerca sono impostati ${BUILT_PRODUCTS_DIR}
in tutte le configurazioni. Si costruisce bene usando qualsiasi configurazione tranne durante l'archiviazione.
Aggiornamento 2: Merchant.h
è una classe Core Data che viene generata automaticamente e quindi all'interno del .xcdatamodeld
pacchetto, tuttavia le intestazioni vengono tutte copiate nella directory delle intestazioni pubbliche quando la libreria viene compilata.