Colección de citas famosas - Slogan de motivación - Proceso detallado de encapsulación de biblioteca estática (SDK) para iOS

Proceso detallado de encapsulación de biblioteca estática (SDK) para iOS

Recientemente, debido a necesidades comerciales, la empresa necesita proporcionar un SDK para el desarrollo integrado por parte de empresas de terceros. Es un poco confuso sin experiencia previa en desarrollo en esta área. Luego verifiqué información relevante en Internet, la estudié durante un día y empaqueté con éxito el primer paquete SDK en mi proceso de desarrollo de iOS. Al mismo tiempo, también deja una nota más completa para futuros desarrollos del SDK.

El nombre completo en inglés de SDK es: kit de desarrollo de software. Cuando se traduce al chino, significa "kit de desarrollo de software". Entiendo personalmente que es un kit de herramientas, que puede entenderse como uno de. nuestras empresas en desarrollo.

2. ¿Cómo implementar la encapsulación del SDK?

1. Abra la herramienta de desarrollo Xcode para crear nuestra clase de herramienta

Nota: la herramienta de desarrollo utilizada en este artículo es xcode9.3

Después de la creación es completado

Después de la creación, creamos dos nuevos archivos heredados de la clase base, uno para encapsular las solicitudes de red y otro para encapsular los métodos que debemos proporcionar a otros y los parámetros que deben cambiarse dinámicamente.

2. Agregue solicitudes de red al SDK y encapsúlelas juntas

Debido a que algunos datos en el SDK que encapsulamos involucran solicitudes de red, cuando encapsulamos, también agregamos la red que necesita. para ser utilizado La solicitud también está encapsulada.

1) Utilice cocoapods para importar la biblioteca de terceros AFNetWorking

Para un uso específico, consulte el contenido de Evernote, incluidos los problemas encontrados al usar cocoapods y sus soluciones: /shard/ s58/nl/ 10186702/6820a297-24d1-480f-af32-8a054e4d64a6/?

2). Si hay una referencia de biblioteca de terceros involucrada en el SDK empaquetado, se debe hacer referencia a ella en el archivo .m.

3. Después de completar los archivos que desea encapsular, comience a encapsular

Primero realice la configuración de edición, en el producto -->Esquema--->Editar esquema

Esto debe ser liberado, el modo de depuración no se puede usar. Elija si el SDK se ejecuta en iOS, tvOS o watchOS 4. Aquí elegimos iOS

Busque enlaces en la configuración de compilación y configure Mach-O. Escriba Para la biblioteca estática

, agregue las clases que deben exponerse en las Fases de compilación --- >encabezados y arrastre el archivo .h que desea exponer en el Proyecto a Público para la exposición del archivo

Completado Después de todas las configuraciones, realizamos la edición en máquinas reales y la edición en simuladores y finalmente las fusionamos en un SDK de terceros que puede ejecutarse en máquinas y simuladores reales.

4. En este punto , nuestro paquete SDK está a punto de llegar al final. Un paso: fusionarlo en un SDK que pueda ejecutarse en máquinas y emuladores reales

Seleccione el paquete editado, aquí está Demo_SDK.framework y haga clic derecho para mostrar el contenido del archivo

Encuentre esto Después de dos archivos, comenzamos a fusionarlos y obtenemos el SDK que queremos

1). Abra la terminal ---> Ingrese lipo -create más la ruta del archivo.

1. Es verdadero El archivo de la máquina, 2 es el archivo del simulador, 3 es la dirección de la salida fusionada.

Nota: el archivo que fusionamos es Demo_SDK, no todos los archivos

Fusionar en todas partes El archivo termina en lipo

Cambie el nombre del archivo fusionado para que sea el mismo que el nombre del archivo antes de fusionarlo y elimine el sufijo. Reemplace los archivos antes de fusionarlos con los archivos fusionados

Una vez completada la combinación, copie el SDK que empaquetamos y haga referencia a él en otros proyectos

Resumen: hay muchas capturas de pantalla para. Cuida a novatos como yo, espero que todos lo entiendan.

Esta es la primera vez que escribo, así que no comentes si no te gusta. Esta es solo mi nota personal. Si hay algún problema, espero que puedas señalarlo y discutirlo y aprender juntos. (?ω?)?

Enlace de demostración: /usuario/