iphone - studio - xcode requirements
¿Cómo se crean proyectos híbridos de Xcode para Mac y iPhone? (4)
¿No puedes usar el modismo PIMPL ? ¿Y / o tener un encabezado común para ambos pero usar un archivo de implementación diferente basado en la arquitectura de destino o SDK?
Estoy trabajando en un proyecto que debe contener dos objetivos. Uno para construir un Framework para usar en el desarrollo de Mac y otro para crear una biblioteca estática para usar en el desarrollo de iPhone.
En el código común no hay problema para #ifdef entre las plataformas, pero simplemente no puedo obtener los objetivos y las dependencias correctas.
La primera pregunta es, ¿qué SDK base usar? Por ejemplo, si uso Mac 10.5, no puedo incluir el marco UIKit (está marcado en rojo y no muestra los archivos del encabezado si lo amplío). Incluso si el objetivo que realmente se vincula contra él se crea para iPhone OS ...
La otra pregunta es, ¿qué hay de Foundation.framework, o cosas como Security.framework? Cómo lidiar con ellos, ya que solo puedo incluir una de las versiones (Mac o iPhone SDK) ...
¿Alguien tiene un consejo para mí? Me gustaría tener una estructura de proyecto limpia y definitivamente la misma base de código para ambos objetivos ... ¿Las configuraciones son el camino a seguir?
¡Gracias!
Probablemente la manera más fácil (en términos de lo que tienes que hacer) de hacerlo es de dos proyectos (que puedes resumir como subproyectos de un proyecto ficticio de paraguas si quieres) que usan el mismo conjunto de fuentes, una dirigida a Mac OS X, el otro iPhone OS.
Alternativamente, ¿no puede crear dos objetivos separados dentro del mismo proyecto y modificar el "SDK base" desde la pestaña "Generar" de la ventana "Obtener información" para cada uno? No tengo Xcode frente a mí para verificar, pero creo que te dejará hacer esto.
(Por supuesto, con cualquiera de los enfoques, puede agregar un tercer objetivo: una biblioteca estática para el simulador, ¡que será útil al realizar pruebas!)
En realidad no es tan malo. Simplemente cree un segundo objetivo del tipo apropiado y luego cambie la configuración de compilación "Base SDK". Luego asegúrese de agregar todos los archivos necesarios. Si desea compilar ambos al mismo tiempo, cree un objetivo agregado. Para un ejemplo práctico, vea mi proyecto SS Promise .
Sólo para hacerle saber:
Terminé teniendo un proyecto con diferentes objetivos para las diferentes plataformas. Pero no incluí el marco en el que dependo en los objetivos en sí, sino que más bien lo agregué a la configuración de compilación de los demás enlaces Flags :
-framework Foundation -framework Security
Puedes verlo en el proyecto que hice en github .