2011-01-06 8 views
8

Tengo una aplicación para iPhone/iPad que quiero portar a MacOSX. La mayoría de mis clases objetivo C deberían funcionar bien siempre y cuando no contengan cosas de UIKit. Obviamente, la interfaz será diferente.Misma base de código para la aplicación iPhone/Escritorio

¿Cuál es la mejor manera de hacer esto en Xcode? ¿Comenzar un proyecto completamente nuevo? Agregar un nuevo objetivo? ¿Cómo puedo mantener las diferentes plataformas sincronizadas? ¿Debo simplemente usar git con múltiples ramas?

Respuesta

9

Tuve dificultades para configurar un proyecto unificado con objetivos diferentes para los dos tipos de sistema operativo, por lo que generalmente se divide en dos proyectos que comparten archivos fuente.

Para una aplicación que se orientará a Mac y iOS, tiendo a crear un directorio para la aplicación. Coloco los dos proyectos dentro de esto, y configuré un directorio para archivos fuente compartidos, uno para cosas específicas de iOS, y un tercero para cosas específicas de Mac. De esta manera, puede tener diferentes proyectos, pero los archivos compartidos se actualizarán entre ellos a medida que se modifiquen. La única vez que tiene que sincronizar manualmente los dos es cuando se agrega un nuevo archivo compartido a la aplicación y se debe agregar a ambos proyectos de manera independiente.

Debería ser capaz de reestructurar su proyecto existente para soportar esto sin muchos problemas.

+0

¿Puede orientarme sobre cómo usar mi aplicación Mac OS para trabajar en la aplicación iOS? Para que pueda usar eso como una biblioteca para la aplicación IOS. – siva

0

También puede simplemente agregar los archivos de un proyecto como referencias al otro. Simplemente arrástralos desde el proyecto de origen (donde residen los archivos reales) al otro proyecto. El cuadro de diálogo le preguntará si desea copiar los archivos. Elija no. Esto hará que el segundo proyecto apunte a los archivos en el primer proyecto. Las ediciones entran en ambos proyectos.

Tenga cuidado con esto, sin embargo, ya que hay algunas diferencias entre las API en iOS y MacOS, incluso si se llaman igual.

Cuestiones relacionadas