English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Explicación de la creación de CocoaPods en IOS

Después de aprender a usar las bibliotecas de dependencias Pods de otros, seguro que tienes muchas ganas de crear tus propias dependencias Pods. Hoy vamos a desvelar el misterio del proceso de creación de bibliotecas de dependencias Pods. Todo el proceso de creación se realiza con un ejemplo que implementé con el nombre de WZMarqueeView de efecto de cuadro de anuncios, los pasos son los siguientes:

Primero, cree su propio repositorio github

CocoaPods se alojan en github (el enlace oficial es:https://github.com/CocoaPods) Todas las bibliotecas de dependencias Pods también dependen de github, por lo tanto, el primer paso es crear nuestro propio repositorio github. La interfaz de creación del repositorio se muestra en la siguiente figura:


En la figura anterior, se marcan con números en total6En el siguiente, la descripción correspondiente es como se muestra a continuación:

1、Nombre del repositorio

El nombre del repositorio, aquí escriba WZMarqueeView, es obligatorio rellenarlo;

2、Descripción

La información de descripción del repositorio, opcional;

3、publicidad del repositorio

Aquí solo se puede seleccionar Público, una razón es que el Privado cuesta dinero, y la otra es que si es Privado, no hay necesidad de compartirlo con nadie más;

4、¿crear un archivo README predeterminado?

Cualquier repositorio completo necesita un documento de descripción README, se recomienda marcarlo. Por supuesto, si no le importa la molestia, también puede crearlo manualmente más tarde;

5、¿agregar archivo .gitignore?

El archivo .gitignore registra varios tipos de archivos, todos los tipos de archivos que contiene este archivo no se incluirán en la gestión de versiones de git. La elección depende de las necesidades personales;

6、tipo de licencia

Todos los repositorios regulares deben tener un archivo de licencia, las bibliotecas de dependencias Pods tienen requisitos más estrictos para este archivo, es obligatorio tenerlo. Por lo tanto, es mejor que github lo cree aquí, o también puede crearlo usted mismo más tarde. El tipo de licencia que uso es MIT.

Después de que se hayan llenado todos los ítems anteriores, haga clic en el botón Create repository para crear. La interfaz de creación exitosa se muestra como se ve en la figura a continuación:


Hasta aquí, el proceso de creación del repositorio se ha completado.

Segundo, clonar el repositorio localmente
Para facilitar la eliminación de contenido en el repositorio, primero necesita clonar el repositorio localmente, hay varios métodos de operación, se recomienda usar la línea de comandos:

$ git clone https://github.com/wangzz/WZMarqueeView.git

Después de completar la operación, los archivos correspondientes en github se copiarán al sistema local, la estructura de directorio es la siguiente:

El archivo .gitignore en el repositorio de github es un archivo oculto que comienza con un punto, por lo tanto, solo se pueden ver dos.
Todas las adiciones, eliminaciones y modificaciones de archivos que realicemos estarán en esta carpeta.

Tercero: agregar archivos necesarios para crear la biblioteca de dependencias Pods a la carpeta del repositorio local git

Nota: todos los archivos descritos a continuación deben colocarse en la raíz del repositorio git clonado en el paso anterior.
1con la extensión .podspec
Este archivo es el archivo de descripción de la biblioteca de dependencias de Pods, cada biblioteca de dependencias de Pods debe tener y solo debe tener un archivo de descripción. El nombre del archivo debe coincidir con el nombre de la biblioteca de dependencias que queremos crear. Mi biblioteca de dependencias WZMarqueeView tiene el archivo correspondiente WZMarqueeView.podspec.
1.1 El contenido del archivo podspec

El contenido guardado de WZMarqueeView.podspec es:

Pod::Spec.new do |s|
 s.name       = "WZMarqueeView"
 s.version     = "1.0.0"
 s.summary     = "Un view de carrusel utilizado en iOS."
 s.description   = <<-DESC
            Es un view de carrusel utilizado en iOS, implementado por Objective-C.
            DESC
 s.homepage     = "https:"//github.com/wangzz/WZMarqueeView"
 # s.screenshots   = "www.example.com/screenshots_1", "www.example.com/screenshots_2"
 s.license     = 'MIT'
 s.author      = { "王中周" => "wzzvictory_tjsd@"163.com" }
 s.source      = { :git => "https:"//github.com/wangzz/WZMarqueeView.git", :tag => s.version.to_s }
 # s.social_media_url = 'https:'//twitter.com/NAME''
 s.platform   = :ios, ''4.3'
 # s.ios.deployment_target = ''5.0''
 # s.osx.deployment_target = ''10.7'
 s.requires_arc = true
 s.source_files = 'WZMarqueeView'/*'
 # s.resources = 'Assets'
 # s.ios.exclude_files = 'Classes'/osx'
 # s.osx.exclude_files = 'Classes'/ios'
 # s.public_header_files = 'Classes'/**/*.h'
 s.frameworks = 'Foundation', 'CoreGraphics', 'UIKit'
end

Este archivo es un archivo ruby, y todas las entradas son fáciles de entender.
Entre los parámetros que necesitan ser explicados hay varios:
① s.license
El tipo de licencia utilizado por la biblioteca de dependencias Pods, todos pueden rellenar la opción correspondiente.
② s.source_files
Representa la ruta de los archivos de origen, note que esta ruta es relativa al archivo podspec.
③ s.frameworks
Los frameworks necesarios, no se necesita agregar el sufijo .frameworks.

1.2 Cómo crear un archivo podspec

Hay dos vías para que todos creen su archivo podspec:
① Copie mi archivo podspec y modifique los parámetros correspondientes, se recomienda usar este método.
② Ejecute el siguiente comando de creación:

$ pod spec create WZMarqueeView

también se creará un archivo llamado WZMarqueeView.podspec. Pero al abrir el archivo creado, se encontrará que hay demasiado contenido dentro, mucho de lo que no necesitamos.

2archivo de licencia
CocoaPods requiere que todas las bibliotecas de dependencias Pods tengan un archivo de licencia, de lo contrario no se pasará la verificación. Hay muchos tipos de licencias, se puede consultar el sitio web tl;dr Legal. Al crear el repositorio de github, ya he elegido el tipo de licencia MIT.

3archivo principal de clase
La creación de la biblioteca de dependencias Pods es para facilitar que otros usen nuestros resultados, por ejemplo, la clase WZMarqueeView que quiero compartir con todos, es algo que quiero proporcionar a los usuarios en general, por supuesto, este tipo de clase es indispensable. Puse los dos archivos de esta clase en una carpeta llamada WZMarqueeView, la estructura de directorio correspondiente se muestra en la imagen:

que contiene dos archivos: WZMarqueeView.h y WZMarqueeView.m

4proyecto de demostración
Para enseñar rápidamente a otros a usar nuestra biblioteca de dependencias Pods, generalmente es necesario proporcionar un proyecto de demostración. El proyecto de demostración que he creado se colocó en una carpeta llamada WZMarqueeViewDemo, que contiene los archivos como se muestra en la imagen a continuación:

5、README.md
使用github的人应该都熟悉这个文件,它是一个成功github仓库必不可少的一部分,使用的是markdown标记语言,用于对仓库的详细说明。

以上所说的5个是创建Pods依赖库所需最基础的文件,其中1、2、3是必需的,4、5是可选但强烈推荐的。
添加完这些文件以后,我的github本地仓库目录就变成了下图所示的样子:

四、将修改文件提交到github
经过步骤三,向本地的git仓库中添加了不少文件,现在需要将它们提交到github仓库中去。提交过程分为以下几步:
1、pod验证
Ejecute los siguientes comandos:

$ set the new version to 1.0.0
$ set the new tag to 1.0.0

这两条命令是为pod添加版本号并打上tag。然后执行pod验证命令:

$ pod lib lint

如果一切正常,这条命令执行完后会出现下面的输出:

 -> WZMarqueeView (1.0.0)
WZMarqueeView passed validation.

到此,pod验证就结束了。
需要说明的是,在执行pod验证命令的时候,如果打印出了任何warning或者error信息,验证都会失败!如果验证出现异常,打印的信息会很详细,大家可以根据对应提示做出修改。

2、将本地git仓库修改内容上传到github仓库
依次执行以下命令:

$ git add -A && git commit -m "Release 1.0.0."
$ git tag '1.0.0'
$ git push --tags
$ git push origin master

上述命令均属于git的范畴,这里不再赘述。如果一切正常,github上就应该能看到自己刚添加的内容了。如下图所示:

五、将podspec文件上传到CocoaPods官方仓库中
经过前面的四步操作,你可能以为已经结束了,不幸的是还早着呢。

Para que una dependencia Pods sea realmente utilizable,还需要进行最后一步操作,将我们刚才生成的podspec文件上传到CocoaPods官方的Specs仓库中,链接为:https://github.com/CocoaPods/Specs

Al abrir este enlace descubrirás que todos los dependerientes Pods que podemos usar, así como los que podemos buscar con el comando pod search, suben sus archivos podspec a este repositorio, lo que significa que solo al subir nuestro archivo podspec a este repositorio, podemos convertirnos en una verdadera dependencia Pods y otros pueden usarla normalmente!

De acuerdo con las reglas de git, para agregar archivos a un repositorio de otra persona, primero debe fork un repositorio de otra persona, realizar las modificaciones correspondientes y luego push a la versión original del repositorio, esperando que el autor apruebe y luego fusionarlo al repositorio original.

Después de entender el flujo, naturalmente sabrá qué hacer:
1Fork una copia del repositorio oficial de CocoaPods Specs
Ingrese al enlace del repositorio oficial, haga clic en el botón de fork en la esquina superior derecha de la pantalla, como se muestra en la siguiente imagen:



Luego, todos encontrarán que debajo de su nombre habrá una rama de un repositorio. Por ejemplo, mi rama es:

2Clonar el repositorio fork al local
Ejecute los siguientes comandos:

$ git clone https://github.com/wangzz/Specs.git

Nota: todos deben reemplazar la dirección del repositorio correspondiente con la suya propia.
Este repositorio es bastante grande, necesita paciencia.

3Agregar su archivo podspec al repositorio local de Specs
Después de clonar el repositorio de Specs a local, se colocará en una carpeta llamada Specs. El principio de almacenamiento de archivos podspec en el repositorio de Specs es:
> carpeta con el nombre de la biblioteca dependiente de Pods---> carpeta con el nombre de la versión---> archivo podspec
Siguiendo este principio, necesito crear una carpeta llamada WZMarqueeView en la carpeta Specs, luego ingresar a la carpeta WZMarqueeView y crear una carpeta con el nombre1Ingrese a la carpeta .0.0, y luego ingrese a1Dentro de la carpeta .0.0, y copie el archivo WZMarqueeView.podspec que creó anteriormente.
No es difícil entender que si en el futuro hay una actualización de la clase WZMarqueeView, simplemente cree una carpeta con el nombre de la versión correspondiente bajo la carpeta WZMarqueeView para guardar el archivo podspec de la versión correspondiente.
Después de que se completen estas operaciones, la estructura de directorios será como se muestra a continuación:

4Subir las modificaciones del repositorio local de Specs a github
Ejecute los siguientes comandos:

$ git add -A && git commit -m "Agregar archivo podspec de WZMarqueeView"
$ git push origin master

Después de que se realice con éxito, podrá ver el archivo recién subido en el repositorio de Specs fork que tiene en github.

5Subir las modificaciones realizadas en su Specs fork al repositorio oficial de Specs de CocoaPods
Al ingresar a su repositorio de Specs fork, verá un botón verde en la esquina superior izquierda de la pantalla:


Haga clic en este botón y se mostrará la interfaz como se muestra en la siguiente imagen:

Haga clic en el botón verde Create Pull Request de la imagen y puede pull los cambios que hemos hecho en el Specs que hemos fork a la biblioteca oficial de Specs de CocoaPods.

Hasta este punto, el resto del trabajo es solo esperar, esperar a que el personal de mantenimiento de CocoaPods revise y combine los cambios que hemos pull en el repositorio oficial de Specs, este proceso generalmente toma alrededor de un día. Si hay algún mensaje, como que la revisión no fue aprobada, o que fue aprobada, CocoaPods oficial enviará un correo electrónico para notificarlo.
Cuando la revisión sea aprobada, podremos ver la carpeta que subimos en el repositorio oficial de Specs.

6、ver el progreso de la revisión
Por supuesto, también podemos ver el progreso de la revisión, abra este enlace:https://github.com/CocoaPods/Specs/pullsAquí se pueden ver todas las solicitudes de pull del repositorio de Specs, como se muestra en la siguiente imagen:

El círculo rojo indica la solicitud que acabo de pull, y al hacer clic en él, se puede ver el progreso de la revisión correspondiente.

Sexto, ver nuestras bibliotecas de dependencias de Pods creadas
Si ha recibido un correo electrónico de aprobación del oficial de CocoaPods, es posible que desee ejecutar el comando pod search en su computadora para ver si puede buscar la biblioteca de dependencias de Pods que creó. Sin embargo,肯定会失望,因为还需要执行一条命令才能在我们的 computadora local usar el comando search para buscar nuestras dependencias:

$ pod setup

En el primer artículo de mi serie de tutoriales de CocoaPods: Detalles de CocoaPods----En la última parte de la sección avanzada se presentó este comando, que actualizará todos los árboles de dependencias de Pods localmente. Después de ejecutar este comando, ejecute:

$ pod search WZMarqueeView

¡Entonces se mostrará la información de presentación correspondiente!

Después de tanto hablar, aquí es cuando el proceso de creación de la biblioteca de dependencias de Pods se considera realmente finalizado. Amigos, ¿lo lograron? ¿Encuentran algún problema? ¡Por favor, dejen un mensaje!

Séptimo, documentos de referencia

1、http://guides.cocoapods.org

Te gustará