development - xcode multiple targets
Xcode: configuración del proyecto vs. configuración de destino (2)
Estoy creando una biblioteca estática en Mac OS X para uno de nuestros clientes, así como una pequeña aplicación de línea cmd para probar la biblioteca estática. El proyecto de la línea cmd tiene 2 rutas de búsqueda de biblioteca adicionales, lo que significa que estaba enlazando a la versión de depuración en el modo Release y casi me volví loco, así que traté de deshacerme de estas dos rutas, pero no pude encontrar dónde se especificaron . Estaba buscando en la información del proyecto, pero resultó que estaban especificados en la información de destino.
¡¿No entiendo la distinción ?! ¿Por qué hay 2 conjuntos de ajustes, que son esencialmente los mismos? ¿Alguien puede por favor iluminarme?
A menudo tiene múltiples objetivos en un solo proyecto; por ejemplo, puede tener un proyecto de marco con un objetivo para construir como un paquete de .framework dinámico y un destino para crear una biblioteca estática. O su aplicación podría tener un objetivo para construir la aplicación en sí misma, y un objetivo para crear alguna herramienta de línea de comandos auxiliar que necesite instalar.
Siempre que sea posible, sugeriría cambiar la configuración al nivel más alto (en la configuración del proyecto y cambiar simultáneamente las configuraciones de depuración y liberación), y personalizar solo la configuración de destino cuando sea necesario. Aún mejor, mueva tantas configuraciones como sea posible a los archivos xcconfig, que parecen una forma mucho más explícita de especificar la configuración de su compilación.
Un proyecto puede contener múltiples objetivos. Por ejemplo, una aplicación que escribo tiene cuatro: la aplicación en sí misma, un complemento Quick Look, un marco y un paquete que contiene la funcionalidad específica de Mac OS 10.6 en la que se puede cargar dinámicamente.
La configuración del proyecto se aplica a cada objetivo en el proyecto. Cada objetivo puede anular la configuración individual si es necesario, por ejemplo, el SDK de destino de mi proyecto está configurado en 10.5, pero el paquete específico de 10.6 tiene su SDK de destino establecido en 10.6.
En algunos casos, algunas configuraciones no tienen sentido estar en Configuración del proyecto; una de estas, supongo, es la búsqueda de rutas.