1. Cree un índice de biblioteca privada
El paso 1 solo es necesario cuando no hay una biblioteca de índices o cuando se agrega un nuevo índice (crear una biblioteca de componentes básicos).
Primero, cree un índice de biblioteca privada en la nube de código y asígnele un nombre.SYComponentSpec
2. Agregue el índice de la biblioteca privada localmente
Agregar índice de biblioteca privada
pod repo add SYComponentSpec https://gitee.com/sun-shiyu/sycomponent-spec
3. Cree una biblioteca de componentes básica.
Cuando necesite crear un nuevo componente, comience aquí. Si desea modificar la biblioteca original, puede modificarla directamente en el almacén de componentes anterior.
1. Cree una biblioteca de componentes en la nube de código
y asígnele un nombre SYBasicComponents
, como se muestra en la figura:
2. Cree SYBasicComponents
una biblioteca local.Ruta
de creación predeterminada: /Users/sunshiyu/SYBasicComponents
.
pod lib create SYBasicComponents
Finalmente, el proyecto se abrirá automáticamente después de que se cree la biblioteca de componentes locales del proyecto.
3. Importa tu propio código en la biblioteca privada.
Elimine los archivos Classes
debajo de la carpeta ReplaceMe.m
y reemplácelos con el código que desea cargar en la biblioteca privada. Importe dos archivos de prueba simples aquí:
// SYLog.h
+ (void)logger;
// SYLog.m
+ (void)logger {
NSLog(@"-------- Log --------");
}
4. Actualice la biblioteca de pods de este proyecto.
cd
ir alExample
archivo- implementar
pod install
5. Al modificar .podspec
el archivo
, debe prestar atención a dos atributos::
s.homepage
La dirección del almacén de código privado https://gitee.com/sun-shiyu/sybasic-components
s.source
: La dirección de origen del almacén de código privadohttps://gitee.com/sun-shiyu/sybasic-components.git
Configure otras propiedades según sea necesario.
6. Empuje la biblioteca privada al almacén remoto.
Tenga en cuenta que el extremo remoto necesita una rama, así que master
primero cree una master
rama :
cd /Users/sunshiyu/SYBasicComponents
git branch master
git checkout master
Confirme el código localmente y envíelo al extremo remoto:
git branch (检查当前所在分支)
git status (查看当前git存了什么文件)
git add . (将所有文件缓存到待提交文件区域)
git commit -m "上传组件"
git remote add origin https://gitee.com/sun-shiyu/sybasic-components.git (私有库git仓库地址)
git push -f origin master (将代码推送到远程私有库git仓库的master分支上面已经创建了)
git tag 0.1.0 (这里的版本号必须和podspec里面写的版本号一致)
git push -- tags (提交tag)
7. Verificación local y remota
1. Verificación local, en el directorio de la biblioteca privada actual, ingrese el comando:
pod lib lint --private --allow-warnings
Verificación exitosa:SYBasicComponents passed validation.
2. Para verificación remota, ingrese el comando en el directorio de la biblioteca privada actual:
pod spec lint --private --allow-warnings
Verificación exitosa:SYBasicComponents.podspec passed validation.
8. Envíe el archivo de índice a la biblioteca de índice remota.
1. Una vez pasadas todas las verificaciones, el archivo de especificaciones debe enviarse a la biblioteca de índice de biblioteca privada creada al principio.
cd 到私有库项目目录,
pod repo push <本地索引库名称> <索引文件名> --allow-warnings
<本地索引库名称>在 /Users/sunshiyu/.cocoapods/repos 下的私有库索引项目名称
<索引文件名>就是以 podspec 结尾的,注意不要弄错
Por ejemplo, ingrese el comando:
pod repo push SYComponentSpec SYBasicComponents.podspec --allow-warnings
2. Después de presionar, vea la siguiente figura en la biblioteca de índice local:
getee
Vea la siguiente imagen en el extremo remoto:
4. Utilice la biblioteca de componentes básicos
Cree un proyecto con un nombre arbitrario SYSpecDemo
e inicialícelo pod
:
cd /Users/sunshiyu/Desktop/SYSpecDemo
pod init
pod install
Abrir podfile
archivo de edición
open podfile
como sigue:
# Uncomment the next line to define a global platform for your project
platform :ios, '11.0'
# source 添加对应的索引库,否则会pod install失败
source 'https://gitee.com/sun-shiyu/sycomponent-spec.git'
target 'SYSpecDemo' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for SYSpecDemo
# pod 对应组件,可以对应版本
pod 'SYBasicComponents'
end
de nuevo:
pod install
Puedes ver esta biblioteca:
Importe archivos de encabezado usando esta biblioteca:
#import <SYBasicComponents/SYLog.h>
// 打印 log
[SYLog logger];
5. La biblioteca de componentes depende de bibliotecas de terceros.
Si nuestra biblioteca de componentes necesita depender de bibliotecas de terceros, como AFNetWorking
, YYModel
etc., el funcionamiento es el siguiente:
1. Modifique el SYBasicComponents.podspec
archivo de la biblioteca de componentes y agregue dependencias:
Luego, la biblioteca de componentes realiza Example
la ejecución del proyecto pod install
.
2. Igual que en el paso 6 anterior, transfiera el código modificado por la biblioteca de componentes al extremo remoto. Recuerde recordar escribir y debe ser coherente tag
con la biblioteca de índice .version
git tag 0.2.0 (这里的版本号必须和podspec里面写的版本号一致)
git push -- tags (提交tag)
3. Envíe el extremo remoto de la base de datos de índice, igual que el paso 8 anterior:
pod repo push SYComponentSpec SYBasicComponents.podspec --allow-warnings
4. Modifique el podfile
archivo principal del proyecto y agregue github CocoaPods
la biblioteca de índice para cargar github
bibliotecas de terceros:
source 'https://github.com/CocoaPods/Specs.git'
Luego ejecuta pod install
.
Lo anterior es el método de uso de la biblioteca de componentes, es decir, el método remoto. Este método requiere abrir y modificar la pod 'SYBasicComponents'
biblioteca de componentes antes de actualizar , y luego modificar el archivo principal del proyecto (es posible que no sea necesario modificarlo según la situación). y finalmente el proyecto principal: Proyecto re . De esta manera, puede obtener el código más reciente de la biblioteca de componentes remotos. La desventaja es que cada vez que el proyecto principal desea actualizar el código más reciente de la biblioteca de componentes, necesita la biblioteca de componentes para actualizar la versión de la biblioteca de componentes . ¿Cómo lograr que, siempre que la biblioteca de componentes tenga actualizaciones de código, el proyecto principal pueda extraer directamente el código más reciente? La respuesta es hacer referencia a la biblioteca de índice local, solo necesitamos modificar el archivo principal del proyecto de la siguiente manera:tag
spec
version
podfile
pod install
tag
podfile
# Uncomment the next line to define a global platform for your project
platform :ios, '11.0'
# source 添加对应的索引库,否则会 pod install 失败
# source 'https://gitee.com/sun-shiyu/sycomponent-spec.git'
source 'https://github.com/CocoaPods/Specs.git'
target 'SYSpecDemo' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for SYSpecDemo
# pod 对应组件,可以对应版本
# 方式一、引用远端组件库
# pod 'SYBasicComponents'
# 方式二:引用本地组件库,不需要 source 'https://gitee.com/sun-shiyu/sycomponent-spec.git'
pod 'SYBasicComponents', :path => '~/SYBasicComponents/'
end
Es decir, utilice pod 'SYBasicComponents', :path => '~/SYBasicComponents/'
el método para hacer referencia directamente al código de la biblioteca de componentes local, de modo que el código extraído sea el más reciente cada vez. Intentémoslo pod install
: Pods
la estructura del directorio cambiará como se muestra a continuación:
La biblioteca de componentes local SYBasicComponents
contiene el código más reciente. Debido a que nuestra biblioteca de componentes depende de ello AFNetworking
YYModel
, Pods
estas dos bibliotecas aparecen en .
¡Finalizar! ! !
Referencia:
cree una biblioteca privada de iOS para crear
una biblioteca privada basada en componentes de iOS