制作Cocoapods组件库

一、在制作组件库之前,我们要明白下面几点的概念,后面会上详细的教程
  1. 本文讲的是使用私有索引库(我们自己创建)来维护组件(不使用公共仓库master)
  2. 组件添加到公共仓库中需要注册Trunk账号: 传送门
  3. 在Git(或马云等其他仓库)创建一个私有的仓库,当做<私有索引文件仓库>,后边用来储存索引文件(项目名称:xxSpecs)
  4. 在Git(或马云等其他仓库)创建一个公开/私有的仓库,当做<组件仓库>,后边用来储存组件(项目名称:xxKit)
  5. CocoaPods服务器不储存我们的代码,只储存索引文件
  6. 制作好组件之后,索引文件里会储存组件主页(s.homepage)的地址,组件(s.source)的地址。(这里一定要注意:这两个地址一定要与组件地址一致,虽然会自动生成地址 ,不过会存在不一致的情况 。
  7. 使用时,先通过CocoaPods服务器更新<私有索引文件仓库>到本地;项目中Pod某个组件的时候,会在本地<私有索引文件仓库>中找到这个组件的索引文件,从索引文件里拿到<组件仓库>的地址,从这个地址把代码下载到项目中
二、操作步骤
1.索引库
1)创建私有索引库

· 这里我们选用码云创建私有库,如下图

截屏2022-10-19 上午9.14.28.png

在这里输入你的索引库的名字,并点击创建
截屏2022-10-19 上午9.40.24.png

创建好仓库后,记得点一下初始化readme文件
截屏2022-10-19 上午10.00.34.png

创建好索引仓库后,将索引仓库地址存储到CocoaPods服务器上,打开终端进入桌面输入:

pod repo add xxSpecs https://github.com/zhanghua19860221/xxSpecs.git (地址替换为你所创建仓库实际地址)

2)检查是否安装成功
cd ~/.cocoapods/repos/xxSpecs

2.组件

先在码云上创建好你的工具库或者是组件库,和创建索引库是一样的


截屏2022-10-19 上午10.05.55.png

1)下载并创建组件模版

cd Desktop

下载组件模版并设置组件名(这里的名字要与远程仓库名称一致)

pod lib create BaseTool

输入完命令后,会出现让你配置这个组组件的选择

// 使用哪种系统的模板
 What platform do you want to use?? [ iOS / macOS ]
 ios
 // 使用哪种语言
 What language do you want to use?? [ Swift / ObjC ]
Swift
 // 是否创建测试Demo
 Would you like to include a demo application with your library? [ Yes / No ]
 Yes
 // 使用哪种测试框架
 Which testing frameworks will you use? [ Quick / None ]
 None
 // 是否需要测试视图
 Would you like to do view based testing? [ Yes / No ]
 Yes
截屏2022-10-19 上午10.09.51.png

从上图来看,就是创建成功了,创建成功会自动打开你刚才创建的工程


截屏2022-10-19 上午10.13.05.png
这里有一个注意点

WX20221019-101458.png

上图中两个箭头的地址,要替换成刚才我们创建好的私有库BasetTool的地址,比如https://gitee.com/avenhu/base-tool.git,否则后面的步骤会出问题

2)组件内文件与图片资源的添加
  • 把自己的代码(类文件)直接复制到桌面xxKit/xxKit/Classes 文件夹内 ( Classes 是专门用来存放组件类文件 )
  • 把自己的图片资源直接复制到桌面xxKit/xxKit/Assets 文件夹内( Assets 是专门用来存放组件图片资源 )

找到刚才我们创建好的组件库地址


截屏2022-10-19 上午10.18.25.png

找到Example,对他进行一次pod install


截屏2022-10-19 上午10.20.28.png
3)修改索引文件
  • 索引文件里会储存组件主页(s.homepage)的地址,组件(s.source)的地址。(这里一定要注意:这两个地址一定要与组件仓库的地址一致,虽然会自动生成地址 ,不过会存在不一致的情况 。
  • 还要修改s.version ,每次修改组件后推上去前,都要递增版本号,并且tag号需要和版本号一致,并且组件要编译通过才能推到仓库和索引库。下图为修改后的索引文件:
4)把做好的组件推送到自己的组件仓库
  • cd 到桌面xxKit 目录下

cd /xxKit

  • 添加代码到git缓存区

git add .

  • 提交一个缓存区代码

git commit -m "xxKit组件初始化"

  • 关联Github的远程组件仓库

git remote add origin [email protected]:zhanghua19860221/xxKit.git(这里需要用 SSH 地址)

  • 推送版本到master分支(-f强制推送,覆盖掉之前的所有文件)

git push origin master -f

  • 添加版本标签(标签号必须与索引文件里的标签号一致)

git tag 0.1.0

  • 标签推送到组件仓库

git push --tags

  • 验证本地索引

pod lib lint --allow-warnings(--allow-warnings 可以忽略警告)

  • 验证远程索引文件

pod spec lint xxKit.podspec --verbose

3.关联CocoaPods服务器

1)制作好的组件关联CocoaPods服务器刚才创建的私有索引库

  • cd 桌面组件xxKit目录下

cd /xxKit

  • 推送组件的索引文件到服务器,并告诉服务器存在哪个私有仓库中

pod repo push xxSpecs xxKit.podspec --allow-warnings

截屏2022-10-19 上午11.09.38.png

上图就是推送成功了

  • 查看本地的CocoaPods仓库(可看到公共库和自己的私有库)

pod repo list

  • 更新本地CocoaPods仓库(这里也一定要注意,这一步不可缺少)

pod repo update --verbose

到这里我们自己封装的组件已经成功上传到私有库,并且可以被cocoaPods管理了。

五、项目中引用私有组件

1.配置Podfile文件
方案一:

source 'https://github.com/zhanghua19860221/xxSpecs.git'
pod 'xxxKit'(可不指定分支)

方案二:

pod 'xxKit', :git => 'https://github.com/zhanghua19860221/xxKit.git', :branch => 'master_0803'(可指定分支)

执行pod install之前请务必先执行pod repo update,之前已经说过了,每次pod其实是在本地抽取,因为刚刚上传到私有仓库,本地肯定还不知道,pod repo update更新一下

你可能感兴趣的:(制作Cocoapods组件库)