废话前言(可以不看):项目在开发过程中,工程体积会越来越大,业务模块也会越来越多,为了解耦、复用吧啦吧啦吧啦。。。然后我们就需要给业务模块或者工具类制作成公共组件库。
好了,开始了。
一、创建索引库
1、在github(也可以是码云、gitlab等网站)上制作一个索引库(以下操作均在github展示)
2、配置如下图(github示例)
3、点击Create repository,完成索引库的创建。
4、将索引库加入本地repo
命令:pod repo add TwoSpec http://xxxxxxx/xxxxxx/TwoSpec.git
注意:TwoSpec 为私有库名称 http://xxxxxxx/xxxxxx/TwoSpec.git为私有库地址,地址如下:
二、创建组件库(组件)
1.创建本地组件工程
命令:pod lib create ComponentPro
注意:ComponentPro 为组件工程名称
我是在桌面上创建了一个组件工程,组件工程包含了组件,位置在Pods - Development Pods下;还有一个Example工程,组件文件要放在Pods - Development Pods下的WJLTestTwoSDK文件下。(此处的WJLTestTwoSDK是我的文件名字,你自己要换成自己的文件名)
2. 创建组件文件
组件文件的本地文件相对路径是~/WJLTestTwoSDK/Classes/,如下图。Assets为资源路径,比如图片、xib、storyboard等资源文件。
3.在GitLab上创建组件工程远程库,即创建一个私有工程
以我的工程为例子,我在git上创建了一个TwoTestProject工程
4.将组件工程远程库与本地组件工程做关联同步
cd TwoTestProject
git add .
git commit -m '初始化'
git remote add origin https://github.com/DaZhuzhu/TwoTestProject.git //地址如下
5.修改工程文件中后缀为.podspec的文件
s.version = '0.1.0'
s.summary = '组件描述'
s.homepage = 'http://xxxxxxx/xxxxxxx/TwoTestProject' #组件库网页首页地址
s.source = { :git => 'http://xxxxxx/xxxxx/TwoTestProject.git', :tag => s.version.to_s } #组件库git仓库地址
注意:
s.version 为版本号 一定要与 组件工程的tag一致,否则会报错
# s.dependency 'AFNetworking', '~> 2.3' #如果需要依赖第三方库 则把第三方库放在此处
# s.dependency 'MJRefresh',
如果有配置上的疑问,可以在评论区交流,我有时间的话会一一解答。
6.把第2步创建的文件更新到远程仓库
cd 工程目录
git add .
git commit -m '修改spec文件'
git push origin main
注意:首次提交的时候,如果git push origin main命令执行失败,可能需要强制推送到远端仓库,强制推送命令:git push -f origin main
7.验证本地spec文件
cd 工程目录
pod lib lint
8.提交版本tag
cd 工程目录
git tag 0.1.0
git push --tags
注意:git tag 0.1.0必须要与组件中 s.version= '0.1.0'的版本号一致
9.验证远程spec文件
cd 工程目录
pod spec lint
注意:如果验证错误 可以使用下面的命令
pod lib lint --allow-warnings --use-libraries
10.将组件工程的spec文件推送到远程索引库
cd 工程目录
pod repo push TwoSpec WJLTestTwoSDK.podspec
注意:TwoSpec为第一步创建的索引库名字,WJLTestTwoSDK.podspec为工程中的索引文件,此处还是以我创建的为例子,实际操作时替换成你自己的
到此为止,组件库就创建完毕!下面展示如何集成到工程中。
三、集成到工程中
1.创建一个测试工程,在工程中引入pods,在podfile文件中添加source
source 'https://github.com/DaZhuzhu/TwoSpec.git' #此处是你索引库的地址,注意是索引库不是组件库
target 'MyProject' do
pod 'WJLTestTwoSDK' # 此处为你创建的.podsSpec文件里对应的s.name处的名字
end
2、安装组件库
cd podfile 所在路径
pod install
3、查看工程
会在pods下看到你的组件库了。