tutorial online español curso aprender objective-c cocoa cocoa-touch static-libraries

objective-c - online - solidity español



¿Cómo construir una biblioteca estática Objective-C? (4)

(usando el tutorial como punto de partida)

ahora crea un segundo objetivo en la biblioteca xcodeproj para el otro sistema operativo.

configure las configuraciones sdk de cada objetivo usando un archivo xcconfig (uno para cada sistema operativo). reutilice estos archivos xcconfig en sus otras librerías. esto también permite un control global fácil de las configuraciones de construcción.

configure referencias de enlaces y dependencias en sus objetivos (aplicaciones) como de costumbre, pero seleccione la biblioteca de destino correcta.

agregue un objetivo agregado al proyecto de biblioteca para metacompilación simple / mantenimiento fácil.

- o -

hazlo todo introduciendo una capa de scripting o creando una herramienta de compilación personalizada.

Tengo algunas clases de Objective-C, que actualmente estoy usando tanto en una aplicación Cocoa (Mac OS X) como en una aplicación Cocoa-Touch (iOS). Actualmente, cuando actualizo esas clases, tengo que copiar esos archivos .h y .m actualizados en ambos proyectos. No es gran cosa, pero los voy a utilizar en muchos más proyectos.

Entonces, quiero construir estas clases en una biblioteca estática Objective-C. Y luego vincular contra esa biblioteca en todos los otros proyectos.

¿Hay alguna forma de crear una biblioteca estática de modo que funcione con las aplicaciones Cocoa y Cocoa-Touch?

Intenté construir una biblioteca estática de Cocoa con estas clases, pero recibo varios errores cuando trato de vincularla con esa biblioteca en mi aplicación Cocoa, y estoy seguro de que provienen del hecho de que no lo estoy haciendo. derecho.

Entonces, ¿cómo creo una biblioteca estática Objective-C de la manera correcta ? ¿Debo construir una biblioteca estática Cocoa-Touch y Cocoa? ¿O puedo simplemente hacer uno? ¿Cómo se hace esto?

¿Hay algún tutorial bien hecho sobre este tema?

He buscado en la web y parece que no puedo encontrar un tutorial exhaustivo sobre este tema, por lo que he planteado la pregunta aquí, con la esperanza de que se publique una gran respuesta y esta pregunta puede servir como un recurso para mí y para los futuros interrogadores.


Para XCode 5. Estas respuestas parecen un poco desactualizadas. Puede ver los pasos principales aquí http://www.raywenderlich.com/41377/creating-a-status-library-in-ios-tutorial . Pero Xcode 5 hace mucho más trabajo para usted y ahora funciona casi como usted lo desea.

1.Crear nueva aplicación de biblioteca estática en Xcode

2. Puedes eliminar los archivos que crea y agregar los tuyos. Agregue sus métodos, etc.

3. Pequeño problema con las bibliotecas estáticas, es que solo puedes construirlo para el dispositivo o ejecutarlo en el simulador. Por lo tanto, debemos crear una biblioteca que admita ARM e i386 Architectures, para ello necesitamos crear un binario universal (de modo que sea compatible con el simulador y las compilaciones de dispositivos).

Crea un nuevo objetivo (Archivo> Nuevo> Destino).

4.Seleccione Nuevo objetivo y luego agregue una nueva fase de compilación (Editor> Agregar fase de compilación> Agregar ejecución Ejecutar fase de compilación

5. Seleccione la fase de compilación e ingrese la secuencia de comandos desde este enlace en la ventana Ejecutar script. https://gist.github.com/sponno/7228256

6. Ahora necesita construir cada arquitectura (simulador y dispositivo con iOS)

6.2.Seleccione nuestra biblioteca y luego Dispositivo iOS, haga clic en compilar o ejecutar (Comando + B)

6.3.Luego, para el simulador (seleccione el icono de la biblioteca en la esquina superior izquierda de Xcode y luego el simulador de iOS)

7. Ahora quiere construir el icono de BullsEye> Dispositivo iOS. Este será el objetivo agregado y combinará nuestras dos bibliotecas en un nuevo archivo universal.

8. Vamos a ver si todo esto funcionó. Se amplió la carpeta "Productos" en el árbol de la izquierda, se hace clic derecho en el archivo que termina con ".a" y "Mostrar en el buscador"

9.Si todo esto funciona, debería ver los siguientes archivos en el buscador. Verás el

10. El último paso es fácil, simplemente arrastre el "archivo library.a" y la carpeta "includes" a su nuevo proyecto Xcode.

En su nuevo proyecto, no tendrá que hacer nada más, aparte de importar los archivos de encabezado que desea usar, pero no tiene que cambiar los indicadores de vinculación o las rutas de búsqueda de encabezado. Simplemente funcionará.

(se agradece cualquier comentario) o edite mi publicación para mejorar la claridad.

** PUNTOS DE BONIFICACIÓN *** Instale VVDocumenter https://github.com/onevcat/VVDocumenter-Xcode y utilícelo para documentar cualquier archivo header.h que comparta con la biblioteca.

Ahora cualquiera que esté usando su biblioteca puede optar + clic para mostrar la ayuda contextual para sus clases.


También encontré esto "Construyendo una biblioteca estática con Jenkins" que es realmente bueno. Habla sobre cómo configurar correctamente una lib estática, cómo hacer que Jenkins la construya automáticamente y luego colocar los archivos .a y .h resultantes en un lugar desde donde los puedes capturar.

Combina eso con CocoaPods o Maven (aún no lo he hecho) y podrías tener un pequeño ecosistema bastante agradable.


Terminé encontrando este tutorial y realmente funcionó muy bien. Si alguien aún desea ofrecer asistencia, hágala y lo más probable es que la modifique y marque como la respuesta aceptada.