Como añadir una librería estática con Xcode 4 a un proyecto iOS

Autor: | Última modificación: 22 de abril de 2024 | Tiempo de Lectura: 2 minutos
Temas en este post:

Librería estática en iOS

Lamentablemente, con iOS no se pueden usar librerías (bibliotecas, para los puristas) dinámicas, o frameworks. Por lo tanto, la única forma (a parte de importar los archivos .h y .m) de aprovechar código ajeno o reaprovechar código común de otros proyectos, es usar una librería estática. Ahora bien, ¿cómo puñetas se incluye una librería estática a un proyecto de Xcode 4? A lo mejor es que soy torpe, pero he buscado y rebuscado y no encontré ninguna instrucción clara de como proceder.

CHDataStructures

Como creía necesitar una clase pila (Stack), opté por usar CHDataStructures, una librería con varias estructuras de datos clásicas (pilas, árboles, colas, tablas hash y demás) implementadas en Objective C. Digo creía, por que luego resultó ser un error, al observar con más atención a NSArray. En otro artículo explicaré esto con más detalle y por qué realmente no necesitamos para nada CHDataStructures. En fin,  después de mucho patalear y probar, he aquí el procedimiento paso a paso que hay que seguir para incluir una librería estática (la que sea) a un proyecto de Xcode 4.

Añadir una librería estática a Xcode 4

Paso 1: Añade las fuentes de tu librería a un «Source Tree»

Ve a las preferencias de Xcode 4 y selecciona la pestaña Source trees. Añade una nueva donde el name y display name son MI_LIB_SRC.

Paso 2: Añade el proyecto de la librería a tu proyecto

Selecciona tu proyecto y del menú contextual selecciona «Add files to project». Selecciona el proyecto de la librería y añadelo. Asegúrate de no copiarlo sino sólo crear una referencia. El proyecto de tu librería estática debería de aparecer ahora como un subproyecto dentro del tuyo.

Paso 3: Asegúrate de que tu librería también sea compilada al compilar tu proyecto

Tenemos que modificar tu target de aplicación.  Selecciona el target de aplicación y vete a la pestaña «Build Phases». Abre el grupo «target dependencies» y añade la librería (el archivo libXXX.a). Ve a «Build Settings» y modifica los «User Header Search paths». Haz doble clic sobre el valor y escribe $(MI_LIB_SRC). Asegúrate de seleccionar la opción recursiva.

Paso 3a: Modifica el User Header Search Paths a nivel de proyecto

Tenemos que hacer una modificación similar a nivel del proyecto (no solo del target).  Selecciona tu proyecto y ve a la pestaña Build Settings. Modifica el User Header Search Paths. Haz doble clic sobre el valor y escribe $(MI_LIB_SRC). Asegúrate de seleccionar la opción recursiva.

Paso 4: Asegúrate de que tu librería estática está enlazada con tu ejecutable

Selecciona tu target de aplicación  y abre la pestaña Build Phases. Abre el grupo Link Binary With Libraries y añade tu librería estática. Encomiéndate a Santa Rita, abogada de lo imposible y compila. Debería de funcionar.

Fernando Rodríguez

Sígueme en twitter. Cursos de desarrollo iPhone

Posts Relacionados