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