iOS crea una biblioteca privada basada en componentes

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

Insertar descripción de la imagen aquí

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

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

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:

Insertar descripción de la imagen aquí
2. Cree SYBasicComponentsuna biblioteca local.Ruta
de creación predeterminada: /Users/sunshiyu/SYBasicComponents.

pod lib create SYBasicComponents

Insertar descripción de la imagen aquí
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 Classesdebajo de la carpeta ReplaceMe.my 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 --------");
}

Insertar descripción de la imagen aquí

4. Actualice la biblioteca de pods de este proyecto.

  1. cdir al Examplearchivo
  2. implementarpod install
    Insertar descripción de la imagen aquí

5. Al modificar .podspecel archivo
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
, 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 masterprimero cree una masterrama :

 cd /Users/sunshiyu/SYBasicComponents 
git branch master
git checkout master

Insertar descripción de la imagen aquí

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)

Insertar descripción de la imagen aquí
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

Insertar descripción de la imagen aquí
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

Insertar descripción de la imagen aquí
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

Insertar descripción de la imagen aquí
2. Después de presionar, vea la siguiente figura en la biblioteca de índice local:
Insertar descripción de la imagen aquí

geteeVea la siguiente imagen en el extremo remoto:

Insertar descripción de la imagen aquí

4. Utilice la biblioteca de componentes básicos

Cree un proyecto con un nombre arbitrario SYSpecDemoe inicialícelo pod:

 cd /Users/sunshiyu/Desktop/SYSpecDemo
pod init
pod install

Abrir podfilearchivo 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:
Insertar descripción de la imagen aquí

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, YYModeletc., el funcionamiento es el siguiente:

1. Modifique el SYBasicComponents.podspecarchivo de la biblioteca de componentes y agregue dependencias:
Insertar descripción de la imagen aquí

Luego, la biblioteca de componentes realiza Examplela 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 tagcon la biblioteca de índice .version

Insertar descripción de la imagen aquí

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 podfilearchivo principal del proyecto y agregue github CocoaPodsla biblioteca de índice para cargar githubbibliotecas de terceros:

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

Insertar descripción de la imagen aquí

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:tagspecversionpodfilepod installtagpodfile

# 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: Podsla estructura del directorio cambiará como se muestra a continuación:

Insertar descripción de la imagen aquí
La biblioteca de componentes local SYBasicComponentscontiene el código más reciente. Debido a que nuestra biblioteca de componentes depende de ello AFNetworking YYModel, Podsestas dos bibliotecas aparecen en .

¡Finalizar! ! !

Referencia:
cree una biblioteca privada de iOS para crear
una biblioteca privada basada en componentes de iOS

Supongo que te gusta

Origin blog.csdn.net/SSY_1992/article/details/132039577
Recomendado
Clasificación