首先说点什么呢,之前有说道 让自己写的组件支持 CocoaPods,但在实际开发中,有很多公共组件甚至业务组件也想用 CocoaPods 统一管理,也有助于多人开发。于是,咱们来说说用 CocoaPods 创建私有库。
创建私有库
先创建一个叫Demo_Pods 的 demo 工程,新建 Lib 文件夹放抽取出来的组件和库。打开终端,到 Lib 文件夹的位置。用 pod 创建 SETool 模块:
pod lib create SETool
接下来会关于模板,提示几个问题如图:
创建成功后,会自动帮你创建一个工程,然后把 封装好的模块代码 放入 Classes 这个目录,以下是工程目录截图:
上传远程仓库
然后咱们在 码云 上创建一个私有仓库,存放我们的模块代码。(当然也可以去 github 啊,不过 github创建私有仓库收费)。如下图:
注 : 这里我没有直接创建,而是选择导入已有项目,因为我们本地已经有封装好的模块代码,直接导入更方便。如果直接创建,需要先 clone 到本地,修改后再上传。
点击创建后,会显示下图,项目地址,git 指令一目了然,都已经帮你写好。
然后终端 cd 到 SETool 的文件夹内,
git remote add origin [https://gitee.com/609974309/TZHome.git]
git push -u origin master
注 : 此时刷新远程仓库,已经有文件,但在 Classes 内没有我们的模块代码,此时还需提交一次
git add .
git commit -m '初始化'
git push origin master
修改 podspec 文件
在已经打开的 SETool 工程内,在 SETool.podspec
,修改几个参数:
注 : 我们在使用 pod 引入库时,一般都要写入版本此时还有个问题,之前修改的
SETool.spec
文件的 字段version
要与远程库一致。
git tag 0.1.0
git push --tags
这样就让私有库就与远程仓库同步
配置远程索引
接下来,要配置我们自己的索引和 私有库的 podspec文件。
我们可以先看一下 CocoaPods 的官方索引。
打开本地的 ~/.cocoapods/repos 目录下,可以看看.
我们仿照官方的样子,制作自己的索引,目录结构如图
直接将 SETool.podspec
放入 0.1.0 的文件夹,这就是一个初步的索引,
不过还需要将这个索引 与 pod 联系起来,为了便于管理,我们把它放在远程统一管理。
所以还需创建一个存放索引文件的仓库,不过既然是 私有的 podspec文件,我们也将这个仓库设置成私有。和 SETool 差不多的步骤,我们的 远程SESpecs 就建好了,如图:
注 : 若出现 fatal: remote origin already exists. 的错误,可现在本地构建 git 仓库再上传
git init
git add .
git commit -m 'first commit'
git remote add origin https://gitee.com/609974309/SESpecs.git
git push -u origin master
关联远程索引
然后再让 的CocoaPods 关联这个远程索引
pod repo add SESpecs https://gitee.com/609974309/SESpecs.git
成功后,会在 原有 ~/.cocoapods/repos 下,多一个 SESpecs
的文件夹,这就是我们自己私有的索引库
我们测试一下是否成功关联,搜索一下 SETool
,如图很快就搜到,说明到此都没问题。并且显示的内容,如 Homepage
,Source
等都是我们自己在 podspec 文件中编辑而成。
pod search SETool
增加私有库的源
接下来最后一步,我们将 我们私有的 SETool 模块 拉下来
pod install
注 : 这里我们如果在 Podfile 加上
pod 'SETool'
直接pod install
有可能报错, 这里 我们需要主动设置 CocoaPods 的源
到此我们终于可以将私有的库或模块组件,用 CocoaPods 统一管理,像你使用 AFNetworking,SDWebImage 公共库一样,利于工程解耦,方便多人开发,独立测试,再集合到主工程。