2011-09-30 17 views
30

Im incorporando el SDK de Facebook en una actualización y recibo advertencias del compilador para cuatro archivos, en uno de mis objetivos cada archivo recibe dos advertencias como estas.reglas de compilación para xcode/iPhone

[WARN] advertencia: hay una regla para procesar el archivo '$ (project_dir)/APP_NAME /Facebook.h' de tipo sourcecode.ch para la arquitectura ARMv7

[WARN] aviso: no hay regla para procesar archivos '$ (project_dir)/APP_NAME /Facebook.h' de tipo sourcecode.ch para la arquitectura ARMv6

y en el otro objetivo de cada archivo sólo genera una advertencia,

[WARN] aviso: no hay regla para archivo de proceso '$ (PROJECT_DIR)/APP_NAME /FBConnect.h 'de tipo sourcecode.ch para la arquitectura i386

en la documentación del SDK de Facebook que dicen que añada a las arquitecturas i386 válidos en las configuraciones de generación, pero no dicen nada acerca de cualquier' reglas de compilación 'lo extraño es que ya incorporé el mismo SDK de Facebook en otra aplicación sin un solo problema. La única diferencia que puedo ver es que este proyecto ya tenía dos objetivos, y (cada uno de) estos avisos solo provienen de uno de ellos. ¿Alguien puede darme una pista sobre cómo hacer una regla de compilación para estos cuatro archivos? ¿Necesito reglas de compilación para armv6 y armv7 AND i386?

la configuración de compilación es exactamente la misma excepto por un archivo -info.plist diferente y un archivo .pch diferente cada uno. Debo añadir que la funcionalidad de Facebook está funcionando bien en el simulador, pero no en ningún dispositivo de prueba que utilice ninguno de los objetivos de compilación.

muchas gracias.

Respuesta

115

Suponiendo que está utilizando Xcode 4, es probable que el comprobador de dependencias esté confundido porque hay archivos .h en la lista de archivos C que deben compilarse.

Vaya ... Navegue hasta la pestaña "Crear fases" de su destino. (Haga clic en el proyecto, luego haga clic en el nombre del objetivo, luego haga clic en la pestaña "Fases de compilación")

Asegúrese de no arrastrar ningún archivo .h en la sección "Compilar fuentes".

Al importar un código, es común arrastrar todo el lote en esa sección, sin darse cuenta de que los archivos .h no están compilados técnicamente, y el comprobador de dependencias no es lo suficientemente inteligente como para escupir más mensajes de error.

+0

Muchas gracias por esto.No me di cuenta de que TODOS los demás archivos enumerados allí son SOLAMENTE archivos .m. Subí .h allí, eliminarlo resuelve el problema. Salud. – GeneCode

+0

gracias budy, pasé mucho tiempo para esto – iBhavik

+0

gracias, resolví mi problema .. – inancsevinc

8

http://dhilipsiva.blogspot.in/2012/10/xcode-warning-no-rule-to-process-file.html

La lista sólo debe tener archivos .m. No sé si podemos poner un archivo .c en él, pero no debería haber ningún otro tipo de archivo. Me gusta que algunos desarrolladores incluso arrastraron archivos Javascript a las fuentes compiladas. Si enfrenta el mismo problema, probablemente debería remove any non '.m' archivos de la lista de fuentes compiladas. Aquí es cómo lo haces, suponiendo que estés ejecutando en Xcode4.

Abre la pestaña "Crear fases" del objetivo del proyecto. (Haga clic en el proyecto, luego en el nombre del objetivo y luego en la pestaña "Crear fases"). En la sección de fuentes compiladas, asegúrese de que no tiene ningún archivo que no sea .m.

Happy Hacking.

+3

+1 por mencionar que CUALQUIER archivo que no sea .m debe eliminarse. Me quedé con un archivo .c –

+0

+1 para 'eliminar cualquier frase que no sea' .m '' en negrita. Yo uso ZipArchive para descomprimir un archivo descargado. Todos los archivos de encabezado se compilaron en tiempo de ejecución. Se eliminaron los archivos de encabezado como se describe y se eliminaron 8 advertencias. –