Vinculación de una biblioteca estática a un proyecto de iOS en XCode 4

Tengo un proyecto ( AQGridView ) que se comstack en una biblioteca estática, pero parece que no puedo agregarlo a mi proyecto.

Arrastrar el proyecto a mi proyecto crea un espacio de trabajo, y si trato de vincular el archivo libAQGridView.a desde el directorio DerivedData , no lo reconoce como una biblioteca. No estoy seguro de lo que estoy haciendo mal.

Este es el proyecto AQGridView . ¿Alguien sabe específicamente cómo usarlo en un proyecto XCode 4?

Lo hago de la siguiente manera:

  1. Arrastre en el proyecto de biblioteca estática. Si tiene abierto el proyecto de biblioteca estática en Xcode, ciérrelo ahora.
  2. Seleccione el proyecto principal en el navegador del proyecto (el proyecto al que estoy agregando la biblioteca estática) y en el editor, bajo el encabezado TARGETS en la columna de la izquierda, seleccione el objective de mi proyecto principal y vaya a la pestaña Crear fases.
  3. Haga clic en “+” para Dependencias de destino y agregue la dependencia de destino del icono de biblioteca desde el proyecto de biblioteca estática agregado.
  4. Haga clic en “+” para Enlace binario con bibliotecas y agregue el icono de la biblioteca que se encuentra debajo de la carpeta “Espacio de trabajo”.
  5. También puede ser necesario ingresar una Ruta de búsqueda de encabezado para los encabezados del proyecto de biblioteca estática si así es como se vinculan los encabezados en el propio proyecto de biblioteca estática.

Si no ve el proyecto de biblioteca estática nested bajo el proyecto principal en el navegador de proyecto del proyecto principal, la razón más probable es que el propio proyecto Xcode de la biblioteca estática todavía esté abierto. Salga de Xcode y abra el proyecto principal que tiene el proyecto de biblioteca estática anidada en él sin abrir el proyecto original de la biblioteca estática, y debería verlo aparecer como un proyecto nested en su proyecto principal.

Menú Xcode> Ver> Utilidades> File Inspector

Seleccione el archivo de biblioteca estática, y luego configure ‘Tipo de archivo’ como ‘código de objeto Mach-O’ en ‘Identidad y tipo’.

Se supone que los espacios de trabajo lo hacen más fácil, pero no sé si lo hacen. La forma en que lo hago es crear un espacio de trabajo, agregar mi proyecto principal, agregar mi proyecto de biblioteca. A continuación, vaya a las fases de comstackción del proyecto principal y agregue la biblioteca en la sección “Enlace binario con bibliotecas” y agregue la biblioteca. Eso debería ser todo lo que sea necesario, al menos esa es mi lectura, pero no lo es. Lo que hago es entrar en las preferencias de Xcode, luego en el panel Árboles de origen. Agregue un árbol fuente que apunte a los encabezados de su biblioteca estática, luego regrese a la configuración de comstackción para su proyecto, luego a la clave Rutas de búsqueda de encabezado e ingrese $ {foo} allí, donde “foo” es lo que usted llamó el árbol fuente .

Eso es lo que funciona para mí, aunque no sé si esa es la mejor o más fácil forma de hacerlo.

Encuentre su archivo .a en el buscador y arrástrelo a su proyecto.

Seleccione ‘copiar elementos en la carpeta del grupo de destino (si es necesario)’ y agregue sus encabezados a su proyecto.

Ahora, XCode 4 debería vincularse automáticamente con ese marco para usted.

Aquí está cómo se vería la biblioteca en su proyecto:

Sigue la documentación de Apple.

En breve:

  1. Enlaza tu objective con la biblioteca.
  2. Agregue -ObjC a ‘Otros indicadores de enlazador’ ( OTHER_LDFLAGS ) en la configuración de comstackción del objective.

Además, necesitaba agregar la biblioteca al esquema de mi proyecto principal ya que la biblioteca no estaba visible en las dependencias del objective.

La respuesta de Halle me funciona con una sola adición:

  1. Verifique en la configuración de comstackción de la biblioteca estática el valor de ruta de carpeta de encabezados privada (o pública) y cópiela.
  2. Agregue el valor copiado al proyecto del cliente. Ruta de búsqueda del encabezado de la configuración de comstackción o la ruta de búsqueda del encabezado del usuario según la directiva de inclusión que esté utilizando.