Crear biblioteca de componentes para iOS

Repositorio de biblioteca de índice

Archivo de índice (archivo .podspec)

1. Antes de crear una biblioteca privada, primero debe crear una biblioteca de índice.

1) Primero verifique la biblioteca de índice de la computadora actual

bajo el repositorio

2) Cree una nueva biblioteca en gitlab. Esta biblioteca se utiliza para guardar el archivo podspec de la biblioteca privada, por lo que generalmente la llamamos xxxSpec para distinguir la función de esta biblioteca.

3) Cree una biblioteca de índice local y luego asóciela con la biblioteca de índice remota que acaba de crear. ¡ Preste atención! ! ! ¡La biblioteca de índice remota en este momento está vacía! ¡vacío! ¡vacío! Pero debe haber una rama maestra, para que pueda agregar un archivo Léame.

Dos métodos: método 01-https; método 02-ssh (el método ssh requiere que SSH esté configurado por adelantado )

repositorio de pod agregar nombre de biblioteca de índice local dirección git de biblioteca de índice remota

Ejemplo: repositorio de pods para agregar  Pinnet Spec  http://code.pinnettech.cn/pinnet/IESP880/IOS/PinnetSpec.git

4)  Compruebe si la instalación se realizó correctamente

cd a la nueva biblioteca de índice

cd ~/.cocoapods/repos/ Especificaciones de Pinnet 

Verificar el repositorio de archivos de índice

pelusa de repositorio de vaina.

Eliminar repositorio local

eliminación del repositorio de pods  [nombre de la biblioteca de índice]

Actualice la información de caché de la biblioteca de índice Pod local

actualización del repositorio de pods --detallado

2. Cree una biblioteca privada local (biblioteca de componentes)

1) Crear una biblioteca privada local

cd a la carpeta de la biblioteca privada local para ser creado y ejecutado

pod lib crear [nombre de la biblioteca del componente] 

El nombre de la biblioteca de componentes aquí debe ser coherente con el nombre creado en el almacén remoto.

Por ejemplo: pod lib crea PinnetHeaderSegment

Error [!] /usr/bin/git clon https://github.com/CocoaPods/pod-template.git  xxx

Clonando en ' xxx '...

fatal: no se puede acceder a 'https://github.com/CocoaPods/pod-template.git/': error: 02FFF036: biblioteca del sistema: func (4095): restablecimiento de conexión por parte del par

o

fatal: no se puede acceder a 'https://github.com/CocoaPods/pod-template.git/': problema con el certificado SSL: no se puede obtener el certificado del emisor local

Quitar proxy

configuración de git --global http.proxy

git config --global --unset http.proxy

2) Consulte la figura siguiente para conocer la configuración de parámetros.

​​​​​​​

3) Una vez completada la configuración, se abrirá automáticamente un proyecto HeaderSegmentView-Example. La jerarquía se muestra a continuación

4) Elimine el archivo ReemplazoMe.m en la carpeta Clases y reemplácelo con el código de la biblioteca de componentes.

5) Instale la biblioteca de pods

cd a la carpeta Ejemplo y ejecutar

instalación de pod

espera un tiempo

6) Modifique el archivo de configuración xxx.podspec

P s:

(A) s.homepage debe modificarse a la dirección de la página de inicio de la biblioteca privada remota, no a la dirección de la biblioteca de índice privada. ! !

(B) s.source debe modificarse a la dirección git de la biblioteca privada remota (elija usar una dirección HTTPS). ! !

(C) s.version El número de versión de la biblioteca privada generalmente se cambia a 1.0.0

3. Sube la biblioteca privada local

1) Cree una biblioteca privada remota en gitlab. ¡Aviso! ! ! Esta biblioteca almacena el código de la biblioteca privada remota, ¡no la confunda con la biblioteca de índice remota! ! !

git remoto agregar origen dirección de almacén remoto  ## Cuando la dirección no está asociada, debe agregar la dirección de almacén remoto asociada

2) Enviar la biblioteca privada local a la biblioteca privada remota

cd a la carpeta de la biblioteca privada local PinnetHeaderSegment y ejecute

①Construya una base de código git local

inicio de git

git status  ## Compruebe si el archivo se ha modificado desde el último envío ( los archivos rojos indican que no se han actualizado en el caché )

②Actualice el archivo rojo al caché

git add nombre de archivo##Subir un solo archivo 

git add   ##Subir todos los archivos

git status ##El archivo  actualizado correctamente se vuelve verde

Enviar documentos

git commit -m 'Información de confirmación' 

④ Primero extraiga el código remoto

git pull origen maestro 

O git rama --set-upstream-to=origin/master master

El error "fatal: negarse a fusionar historiales no relacionados" (es decir, historiales de envío de proyectos que no conocen la existencia de los demás y tienen historiales no coincidentes) puede ser ejecutado por git pull origin master --allow-un related-histories 

Luego, el comando anterior puede ingresar al modo vi. Después de ingresar la información de actualización según se le solicite, presione la tecla [ESC] para saltar al modo de comando, presione la tecla dos puntos y luego presione [wq] para guardar y salir de la edición de vi. estado.

Problema fatal: no se pudo encontrar el maestro de referencia remoto

Aún no hay archivos en este almacén. Está vacío. Puede enviar las modificaciones locales directamente. No es necesario realizar ninguna extracción.

报错 fatal: 'origen' no parece ser un repositorio de git

fatal: no se pudo leer desde el repositorio remoto.

Ubicación de la carpeta Re-CD

git remoto agregar origen dirección de almacén remoto#Asociar dirección

⑤Envíe el caché local a la base de código remota

Antes de enviar la modificación, confirme nuevamente que no se realizará ninguna modificación, modifique el valor de la etiqueta en el archivo de especificaciones y luego presione

git push -u origen maestro 

Envíe la versión a la rama maestra (-f fuerza el envío y sobrescribe todos los archivos anteriores)

git push origen maestro -f

4. Realizar verificación local

comando inicial

pod lib pelusa --verbose  --allow-warnings

Si depende de otras bibliotecas de terceros

pod lib lint  --verbose  --allow-warnings --sources="dirección de biblioteca cocoapods, dirección remota de biblioteca privada"

Si otras bibliotecas privadas de terceros dependen de otras bibliotecas, debe agregar --use-libraries

pod lib lint  --verbose  --use-libraries --allow-warnings --sources="dirección de biblioteca cocoapods, dirección remota de biblioteca privada"

Mostrar xxx  pasó la validación. Indica que la verificación pasó

PD:

--verbose : Algunos errores no gramaticales no proporcionan el motivo del error. En este momento, puede usarlo para ver el proceso de verificación detallado para ayudar a localizar el error.
--allow-warnings : indica que se permiten advertencias.
--use-libraries : Indica el uso de bibliotecas o frameworks estáticos, esto se utiliza principalmente para resolver el problema cuando confiamos en algunas bibliotecas de framework y el mensaje de verificación no puede encontrar la biblioteca.

--sources='master,privateSpecs' : Especifique la fuente. Por ejemplo, si su pod privado depende de bibliotecas públicas y privadas, debe especificar la fuente, porque de forma predeterminada solo buscará las dependencias correspondientes en la fuente pública. .

报错[!]  xxx  no pasó la validación debido a 1 error.

Debe resolver todos los errores en el proyecto de ejemplo y volver a enviarlo.

ERROR | [iOS] desconocido: se encontró un error desconocido (CDN: la URL troncal no se pudo descargar: https://cdn.cocoapods.org/all_pods_versions_a_1_5.txt Respuesta: el certificado SSL de igual o la clave remota SSH no estaba bien) durante la validación.

Ejecute pod repo remove trunk  para eliminar la siguiente fuente de repositorio

trompa

- Tipo: CDN

- URL: https://cdn.cocoapods.org/

- Ruta: /Users/ xxx /.cocoapods/repos/trunk

报错ERROR | [iOS] desconocido: se encontró un error desconocido (no se pudo encontrar una especificación para `PinnetBase` que depende de `PinnetHeaderSegment`

O reportar un error

[!] No se pudo determinar el tipo de repositorio para la URL: `https:// xxx /`: SSL_connect devolvió=1 errno=0 state=SSLv3 leyó el certificado del servidor B: falló la verificación del certificado (no se pudo obtener el certificado del emisor local)

O informar un error [!]Se encontraron varias especificaciones para 'xxx'

No se hace referencia a la ejecución de la biblioteca de terceros de Github

pod  lib  lint --verbose --use-libraries --allow-warnings --sources='http://code.pinnettech.cn/pinnet/IESP880/IOS/PinnetSpec.git'

Hay referencias a bibliotecas de terceros de github para su ejecución.

pod  lib  lint --verbose --use-libraries --allow-warnings --sources=' https://github.com/CocoaPods/Specs.git , http://code.pinnettech.cn/pinnet/IESP880/IOS /PinnetSpec.git'

5. Etiqueta

La etiqueta debe ser coherente con el número de versión escrito en el archivo de especificaciones , ¡consistente, consistente! ! ! Todo lo que se modifique en versiones posteriores deberá volver a etiquetarse.

Número de versión de la etiqueta git (debe ser coherente con el número de versión escrito en el archivo de especificaciones)

origen de git push --etiquetas

6.Verificación remota

1) Después de agregar la etiqueta, realice la verificación remota. De hecho, es lo mismo que la verificación local. ¿Cómo se realiza la verificación local? El control remoto solo necesita cambiar el campo lib según las especificaciones. Por ejemplo, el mío

pelusa de especificación de pod --verbose --allow-warnings

Si depende de otras bibliotecas de terceros

pod spec lint  --verbose  --allow-warnings --sources="dirección de biblioteca cocoapods, dirección remota de biblioteca privada"

Si otras bibliotecas privadas de terceros dependen de otras bibliotecas, debe agregar --use-libraries

pod spec lint  --verbose  --use-libraries --allow-warnings --sources="dirección de biblioteca cocoapods, dirección remota de biblioteca privada"

No se hace referencia a la ejecución de la biblioteca de terceros de Github

pelusa de especificación  de pod  --verbose --use-libraries --allow-warnings --sources='http://code.pinnettech.cn/pinnet/IESP880/IOS/PinnetSpec.git'

Hay referencias a bibliotecas de terceros de github para su ejecución.

pelusa de especificación  de pod  --verbose --use-libraries --allow-warnings --sources=' https://github.com/CocoaPods/Specs.git , http://code.pinnettech.cn/pinnet/IESP880/IOS /PinnetSpec.git'

报错- ERROR | [iOS] desconocido: se encontró un error desconocido ([!] /usr/bin/git clone http://code.pinnettech.cn/pinnet/IESP880/IOS/PinnetSearchBar.git /var/folders/sn/56pkr11n0vv91b5q37mjgxf80000gn/T/ d20221021-1427-1o5usog --template= --single-branch --profundidad 1 --branch 1.0.0

Clonando en '/var/folders/sn/56pkr11n0vv91b5q37mjgxf80000gn/T/d20221021-1427-1o5usog'...

Advertencia: No se pudo encontrar la rama remota 1.0.0 para clonar.

fatal: La rama remota 1.0.0 no se encuentra en el origen ascendente

Advertencia: No se encontró la rama remota 1.0.0 para clonar.

fatal: la rama remota 1.0.0 no se encuentra en la fuente ascendente

Ver la etiqueta de la biblioteca de componentes en gitlab

 Ve a etiquetar primero

7. Envíe el archivo podspec a la biblioteca de índice privada PinnetSpec creada inicialmente.

1) Una vez pasadas todas las verificaciones, el archivo de especificaciones debe enviarse a la biblioteca de índice remota creada al principio.

Si se informa un error

[!] No se puede encontrar el repositorio `PinnetSpec`. Si aún no se ha clonado, agréguelo mediante "pod repo add".

1. Agregar dirección de origen

repositorio de pod agregar PinnetSpec  http://code.pinnettech.cn/pinnet/IESP880/IOS/PinnetSpec.git

2. Empuje la especificación al control remoto

pod repo push [nombre de la biblioteca de índice] [nombre de la biblioteca del componente].podspec

repositorio de pod push PinnetSpec PinnetBase.podspec --allow-warnings --use-libraries --verbose

报错[!] No se pudo determinar el tipo de repositorio para la URL: `https://cdn.cocoapods.org/`: SSL_connect devolvió=1 errno=0 state=SSLv3 leer el certificado del servidor B: la verificación del certificado falló (no se pudo obtener el emisor local certificado)

Primero cambie a la red externa y ejecútelo una vez, luego cambie a la red interna y ejecútelo nuevamente.

报错La especificación xx.podspec no se valida.

Agregue el sufijo al comando --allow-warnings --use-libraries --verbose

2) Después del impulso final, la apariencia en la biblioteca de índice local es como se muestra a continuación

3) Verifica tu biblioteca privada en este momento

Primero actualice la biblioteca de pods; de lo contrario, no se encontrará la biblioteca privada que acaba de cargar.

actualización del repositorio de pods - 

nombre de la biblioteca privada de búsqueda de pods

Usar biblioteca privada

En el archivo Podfile en la carpeta Ejemplo

1. Agregar ruta de origen

fuente 'https://github.com/CocoaPods/Specs.git'

fuente 'http://code.pinnettech.cn/pinnet/IESP880/IOS/PinnetSpec.git'

2. módulo 'PinnetBase'

Actualizar biblioteca privada remota (biblioteca de componentes)

1. Modifique el archivo de biblioteca correspondiente en la carpeta xxx/xxx/Classes

2. Actualice el archivo de la biblioteca de pods del proyecto de prueba.

actualización del pod --no-repo-update

3. Actualice la información de configuración del archivo xxx.podspec. Se debe cambiar la etiqueta del número de versión.

4. Envíe el código al almacén remoto.

git push orgin maestro

5. Actualizar etiqueta de etiqueta

etiqueta git xxx

git push --etiquetas

6. Verificar biblioteca privada

pelusa pod lib --privada

pelusa de especificaciones de vaina

7. Actualice las bibliotecas de índices privadas locales y remotas

pod repo push [nombre de la biblioteca de índice] [nombre de la biblioteca del componente].podspec

Procesamiento de recursos de imágenes de biblioteca privada

·   Copie sus propios recursos de imágenes directamente a la carpeta xxKit/xxKit/Assets en el escritorio (Assets se usa especialmente para almacenar recursos de imágenes de componentes)

·   cd al directorio de ejemplo del componente de escritorio xxKit
cd xxx/Example
pod
install

Supongo que te gusta

Origin blog.csdn.net/baidu_33298752/article/details/130946655
Recomendado
Clasificación