2012-03-15 13 views
11

Como muchos otros aquí SO, tengo problemas al usar bibliotecas en mi espacio de trabajo XCode. La idea es tener mi proyecto principal (MyApp) y dos bibliotecas (lib1 y lib2) que se agregaron al espacio de trabajo una vez que se finalizó el código.XCode 4.2 y el uso de una biblioteca estática que causa problemas

Para el fondo, lib1 depende de lib2, ya que hay algunos protocolos que deben implementarse para hacer uso de lib2. MyApp depende de ambos. He intentado seguir las guías de Apple, lo que implica que lo que me gustaría es simple. Después de eso, he seguido casi todas las publicaciones aquí en SO que han aparecido en mis búsquedas (2 días en Google), además de muchos otros blogs y publicaciones que dicen tener soluciones, muchas de las cuales son específicas de XCode 3.

Sin embargo, mi proyecto no se compila. Estoy usando Xcode 4.2 en OS 10.6 (actualizar a Lion no es una opción). ¿Hay un tutorial simple para seguir sobre cómo crear un proyecto de biblioteca y usar esta biblioteca en una aplicación?

Me encontré con this answer mientras escribía esta pregunta (donde la pregunta tenía el mismo error que tenía), la cual veré, pero he llegado al punto de copiar los archivos de origen solo para que funcione una demostración.

ACTUALIZACIÓN:

Aquí está la lista de cuestiones que han surgido. Tengo que añadir más cuando estas se deriven:

  • **directory not found for option '-L/Users/myhomedir/iphoneprojects/MyApp/../BLProfile/build/Release-iphoneos'**
+0

No explicó qué error obtiene o qué no funciona. – sch

+0

@sch Voy a tratar de publicar algunos errores, pero con el intento de una solución, surgen nuevos errores. Pero la pregunta aún se mantiene sin los errores, hay un conjunto simple de instrucciones en algún lugar sobre cómo crear un proyecto de biblioteca y realmente usarlo. –

Respuesta

23

Aquí es cómo crear una biblioteca estática y un proyecto que lo utilizan.

Paso 1: Cree un área de trabajo: Archivo> Nuevo> Espacio de trabajo. Esto no es obligatorio, pero ayuda a organizar los proyectos.

Paso 2: Crear un proyecto de biblioteca estática: Archivo> Nuevo> Proyecto> Marco y Biblioteca> Biblioteca Cocoa Touch estático. Vamos a llamarlo MyLib.

Paso 3: Crear un proyecto de aplicación: Archivo> Nuevo> Proyecto> aplicación> aplicación vacía, o cualquier otra plantilla de aplicación. Llamemos a este proyecto MyApp. Si colocó los proyectos en carpetas diferentes, es posible que tenga que usar una ruta diferente.

Ahora tiene los siguientes proyectos en el área de trabajo.

Project structure

Paso 4: configurar la aplicación para que encuentre los .h archivos de la biblioteca. Para hacerlo, agregue la carpeta principal "../" y marque la casilla de verificación recursiva .

Header Search Path

Paso 5: Enlace la aplicación a la biblioteca.

enter image description here

+0

El paso donde establecí la ruta de búsqueda del encabezado, no obtengo la ventana emergente que tiene la opción recursiva. –

+1

@MikeD - Haga doble clic en la línea ** Rutas de búsqueda del encabezado del usuario **, o simplemente presione la tecla Intro y escriba ** ../\ * \ ***. – sch

+0

Entendido. Gracias. –

0
  1. Abrir Proyecto Principal en la que desea añadir biblioteca estática.
  2. Guardar como espacio de trabajo.
  3. Agregue el paquete de proyecto de la biblioteca. No es necesario verificar la copia al agregar el paquete del proyecto.
  4. Actualiza la ubicación de preferencias de Xcode a Personal-Relativo al espacio de trabajo. Productos como 'construir'/productos y productos intermedios como Construir/Intermedios
  5. En su proyecto principal -> Destino -> Valores de creación, añade una cabecera y la biblioteca Ruta de búsqueda como $ (BUILD_PRODUCTS_DIR)
  6. Construir Proyecto Biblioteca. Por lo tanto, se creará una nueva biblioteca en la ruta de compilación mencionada.
  7. Elimina la biblioteca existente de las Fases de compilación y pasa a la papelera. Fases de compilación abierta -> Enlace binario con bibliotecas y agregue la biblioteca recién creada desde el directorio de compilación.
Cuestiones relacionadas