Esta pregunta ha evolucionado durante las últimas semanas para cubrir cuestiones más generales con xcode4 (y los proyectos de actualización son más antiguos xcodes).
Sin embargo, muchos de los problemas se pueden resolver siguiendo el mismo conjunto de instrucciones.
Si tiene alguno de los siguientes problemas, pruebe los métodos de la respuesta aceptada:
- Xcode 4 no puede archivar una aplicación
- Xcode 4 crea un archivo inutilizable
- Xcode 4 no crea un .ipa
- Xcode 4 no se compila debido a errores del preprocesador
- Xcode 4 no puede encontrar encabezados
- El código completo de Xcode 4 no funciona
- Las dependencias del proyecto no se compilan
- Agregar una dependencia causa cualquiera de los problemas anteriores
Pregunta original
Título: "archivo de problema léxico o preprocesador no encontrado" en Xcode 4
Tengo un proyecto en Xcode 4 que se compilará bien y se ejecutará en el dispositivo y el simulador, pero cuando intento Archivarlo, se producen errores al buscar archivos de encabezados asociados con una biblioteca estática:
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 da el error
lexical or preprocessor issue file not found
Muchas búsquedas en Google han demostrado que muchas personas tienen este problema, pero no tienen solución. Cualquiera tiene una solución o incluso una pista.
Actualización: Las user header
rutas de búsqueda se fijan a ${BUILT_PRODUCTS_DIR}
en todas las configuraciones. Se construye bien usando cualquier configuración, excepto al archivar.
Actualización 2: Merchant.h
es una clase de datos básicos que se genera automáticamente y, por lo tanto, está dentro del .xcdatamodeld
paquete; sin embargo, todos los encabezados se copian en el directorio de encabezados públicos cuando se crea la biblioteca.
fuente
Tuve el mismo problema en XCode 4: "No se encontró el problema léxico o del preprocesador MyFile.h". Sin embargo, MyFile.m no era una biblioteca estática, solo una clase estándar. Y MyFile.m y MyFile.h se incluyeron correctamente e indexaron en el proyecto.
Entonces ... salí de XCode y el Simulador, luego los reinicié y el problema desapareció.
fuente
Descubrí que el problema desapareció cuando cambié la configuración de compilación de destino "escanear todos los archivos de origen en busca de inclusiones" de no a sí.
fuente
Pude resolver este problema sin ningún cambio en ninguna de las configuraciones de compilación simplemente copiando los archivos .h en el directorio del Proyecto en el buscador. NO los agregué al proyecto en absoluto. Simplemente tenerlos en el directorio del sistema de archivos del proyecto parecía ser suficiente para permitir que el enlace implícito de Xcode funcionara correctamente. Más detalles aquí .
fuente
Tuve un problema extraño como este. Cambiar "Analizar todos los archivos de recursos ..." a Sí no ayudó. Eché un vistazo a las rutas de búsqueda de Framework y noté que tenía
Parecía correcto pero seguía fallando. Luego intenté reorganizar el orden de 2 y 3 y, de repente, se construyó bien. Así que no estoy seguro de por qué fue el problema, pero quería agregarlo a la lista de cosas para probar en caso de que ayude a alguien más.
fuente
Mi solución fue cambiar mi
a
y todo empezó a funcionar de nuevo. Lo inusual fue que había dejado de funcionar repentinamente después de construir varias veces.
fuente
El problema se resolvió solo cuando configuré
Configuración de compilación-> Proyecto-> Rutas de búsqueda a Sí
fuente
Tenía lo mismo: 2 objetivos en mi proyecto ( Project y ProjectTest of
GHUnit
). Cuando mi esquema se configuró en Project , la importación<GHUnitIOS/GHUnit.h>
fue un problema de "archivo de problema léxico o preprocesador no encontrado" . Pero cuando configuré como esquema ProjectTest , todo estaba bien. Entonces, también he agregadoGHUnitIOS.framework
en Project .fuente
Parece que las rutas de búsqueda de su encabezado son incorrectas y no están configuradas correctamente en su configuración de compilación para el esquema activo. Verifíquelos y actualice su pregunta con la configuración actual.
fuente
Tengo problemas similares en el simulador, pero no el dispositivo y los campos de ruta de búsqueda de mi encabezado están vacíos (parece ser el predeterminado). Pero cambiar los espacios de trabajo parece haber resuelto el problema. Quizás podría intentar crear un nuevo espacio de trabajo, agregarle su proyecto y ver si eso ayuda. Ahora estoy investigando por qué.
fuente
Recibía este error de "archivo no encontrado" para un archivo .h en particular en mi proyecto. Resolví el problema eliminando ese archivo .h del proyecto (seleccionando "Eliminar referencias") y volviéndolo a agregar.
fuente
Añadiendo más variantes: tuve dos instancias de
foo.m
en laCompile Source
fase de compilación, lo que de alguna manera causó "Encabezado no encontrado"foo.h
.fuente
Otra oportunidad:
En el proyecto del espacio de trabajo: mire en Target la sección Fases de construcción. Como dicen muchos manuales, debe tener una Fase de creación de archivos de copia para copiar todos sus encabezados a otro lugar, ya que iOS Framework no puede contener archivos de encabezado para compartir (este es mi caso).
Elija la opción Copiar archivos como destino "Directorio de productos". U otro directorio de su estilo donde residirán los encabezados.
Eso funcionó para mí. Probablemente la compilación del directorio Archive (o Release) sea muy diferente de lo esperado en la compilación de Debug.
También verifique en la configuración de su espacio de trabajo su directorio de compilación.
XD
fuente
Para mí, este problema ocurrió después de agregar nuevos archivos al proyecto; un .my .h en blanco derivado de NSObject. Así es como lo resolví:
Luego los volví a agregar y también funcionó.
Definitivamente un error en xCode ...
fuente