2010-09-19 13 views
19

Desde hace un tiempo estoy matando el tiempo libre creando un juego de herramientas de programación en 2D/biblioteca. Está escrito en Objective C, y consiste en un sistema de renderizado OpenGL y un montón de IA, código de física, un montón de contenedores especializados y otras cosas relacionadas con el juego. Además del mecanismo de Vista basado en OpenGL (obviamente), la mayoría de este código debería ser fácilmente portátil para iOS, ya que solo usa el Foundation Framework y ese marco parece estar implementado en iOS. Hasta ahora solo he estado probando los diversos componentes usando un Cocoa NSOpenGLView pero ahora quiero crear una biblioteca OS X/iOS.Biblioteca para aplicaciones iOS y OS X?

Mi pregunta es:

¿Cuál es la mejor estrategia para la creación de una biblioteca de Objective-C que se puede integrar en cualquiera de las aplicaciones de iOS u OS X?

de diálogo El Xcode 'Nuevo proyecto' ofrece solamente:

iPhone OS; Biblioteca:
- Cocoa Touch Static Library.

Mac OS X, Marco y Biblioteca:
- Marco cacao
- Biblioteca cacao
- Bundle
- BSD C Biblioteca
- STL C++ Biblioteca
- JNI Biblioteca

A primera vista, ninguno de estos parece estar destinado a crear una biblioteca que pueda integrarse en aplicaciones OS X o iOS.

Respuesta

10

Bueno, finalmente encontró el conjunto correcto de términos de búsqueda de Google, por lo que para responder a mi propia pregunta (DOH!), Parece ser posible compartir código, al menos entre las aplicaciones del iPhone y, posiblemente, también iPhone y aplicaciones OS X dentro de ciertos límites. Hay que crear una 'biblioteca estática' 'y utilizar referencias entre proyectos':

http://www.clintharris.net/2009/iphone-app-shared-libraries/
http://www.amateurinmotion.com/articles/2009/02/08/creating-a-static-library-for-iphone.html
http://zetetic.net/blog/2010/02/15/building-static-libraries-to-share-code-on-iphone-and-mac-os-x-projects/
http://weston-fl.com/blog/?p=808

no hemos probado nada de esto todavía, pero parece prometedor.

+0

Solo el primer enlace funciona. Otros 3 están muertos. – Pang

6

Puede hacerlo con Objetivos.

Cree un nuevo proyecto para una Biblioteca de cacao. A continuación, agregue un nuevo objetivo para una biblioteca estática de iOS. A medida que crea nuevos archivos, asegúrese de que se agreguen a los objetivos adecuados (es decir, presumiblemente ambos en su caso) y configure los valores de compilación por destino según sea necesario.

Los proyectos que usen su biblioteca en las diferentes plataformas deberán vincularse con el producto adecuado, pero no será necesario duplicar el código.

+0

Supongo que un objetivo de marco único no puede manejar ambos. Especialmente configurar 'SDKROOT' para el último iOS y OS X SDK no parece funcionar. – Rivera