Error de compilation utilizando el proyecto Xcode con el objective de marco de OS X y el objective de la biblioteca estática de iOS

Estoy escribiendo una biblioteca de código reutilizable para OS X e iOS. Creé un proyecto Xcode con 2 objectives. Un objective es un marco para OS X. El otro es una biblioteca estática para iOS.

Descubrí que las comstackciones del objective del marco OS X intentan usar los encabezados de iOS. Lo sé porque TARGET_OS_IPHONE está definido, lo que provoca que la compilation intente encontrar UIKit.h, etc. Esto, por supuesto, hace que las comstackciones para el objective del marco falle, ya que el objective del marco OS X no se vincula a los frameworks iOS.

Verifiqué la configuration de compilation para el objective del marco OS X para la goofiness, pero no encontré nada. El SDK base está configurado como "Mac OS X 10.6". Tenga en count que cuando creé el proyecto Xcode, utilicé la plantilla Cocoa Framework y luego agregué el objective de biblioteca estática iOS.

¿Qué otra cosa podría hacer que el objective del marco OS X use el SDK incorrecto?

Gracias, -KIRBY

Tu problema es que Xcode se ha confundido. Opción click la window emergente Resumen y restablezca su SDK activo en Base SDK. Probablemente encontrará que el objective de Mac está configurado para uno de los objectives de iOS, lo que termina causando todo tipo de hilaridades como las que ha visto

He tenido algunos problemas ridículos al poner tanto un objective de Mac como de iPhone en el mismo file de proyecto Xcode, muy parecido a lo que describes en su pregunta y comentario adjunto. Mi solución es tener un file de proyecto Xcode por separado para Mac y iOS. Todavía puede compartir files entre los proyectos, aunque debe mantener cada uno actualizado de forma individual, pero da como resultado un comportamiento less glitchy.

Estoy haciendo algo muy similar a lo que describes. Tengo varios frameworks privados que se comparten entre nuestra aplicación de iOS y nuestra aplicación OS-X. Cada uno de estos frameworks reside en su propio proyecto, con dos objectives. Un marco dynamic de Mac OS y un "marco estático" especial de iOS utilizando una plantilla especial que agregamos a Xcode: es un proyecto de código abierto . IOS iOS universal de Karl Stenerud. Ahora nunca experimenté la estupidez que describes, y estoy seguro de que es solo algo que borró (o agregó) erróneamente en la configuration del proyecto / destino.

Lo que recomendaré como un "método de debugging" para la configuration del proyecto es este.

Ten un buen editor de text abierto para ti. Vaya, por ejemplo, a la configuration de compilation de la versión estática de iOS. Elija los botones "Todos" y "Combinados". Ahora select todas las líneas y Copiar (command-C). Vaya al editor de text y pegue. Tendrás una buena descripción de text de todas las configuraciones.

Ahora cree un nuevo proyecto de plantilla en Xcode y haga lo mismo en otro file de text. Ahora compara estos files, para ver si hay discrepancias.

Haz esto en los 3 niveles. 1. Configuración de nivel de proyecto 2. Configuraciones de static lib de iOS 3. Marco de OS-C.