iOS_CocoaPods搭建远程私有库

首先说点什么呢,之前有说道 让自己写的组件支持 CocoaPods,但在实际开发中,有很多公共组件甚至业务组件也想用 CocoaPods 统一管理,也有助于多人开发。于是,咱们来说说用 CocoaPods 创建私有库。

创建私有库

先创建一个叫Demo_Pods 的 demo 工程,新建 Lib 文件夹放抽取出来的组件和库。打开终端,到 Lib 文件夹的位置。用 pod 创建 SETool 模块:

pod lib create SETool 

接下来会关于模板,提示几个问题如图:

image.png

创建成功后,会自动帮你创建一个工程,然后把 封装好的模块代码 放入 Classes 这个目录,以下是工程目录截图:

image.png

上传远程仓库

然后咱们在 码云 上创建一个私有仓库,存放我们的模块代码。(当然也可以去 github 啊,不过 github创建私有仓库收费)。如下图:

创建仓库.png

注 : 这里我没有直接创建,而是选择导入已有项目,因为我们本地已经有封装好的模块代码,直接导入更方便。如果直接创建,需要先 clone 到本地,修改后再上传。

点击创建后,会显示下图,项目地址,git 指令一目了然,都已经帮你写好。

创建仓库成功.png

然后终端 cd 到 SETool 的文件夹内,

git remote add origin [https://gitee.com/609974309/TZHome.git]
git push -u origin master
导入已有项目.png

注 : 此时刷新远程仓库,已经有文件,但在 Classes 内没有我们的模块代码,此时还需提交一次

git add .
git commit -m '初始化'
git push origin master
提交模块代码.png
推送远程仓库.png

修改 podspec 文件

在已经打开的 SETool 工程内,在 SETool.podspec,修改几个参数:

image.png

注 : 我们在使用 pod 引入库时,一般都要写入版本此时还有个问题,之前修改的 SETool.spec 文件的 字段 version 要与远程库一致。

git tag 0.1.0
git push --tags
image.png

这样就让私有库就与远程仓库同步

image.png

配置远程索引

接下来,要配置我们自己的索引和 私有库的 podspec文件。
我们可以先看一下 CocoaPods 的官方索引。
打开本地的 ~/.cocoapods/repos 目录下,可以看看.

我们仿照官方的样子,制作自己的索引,目录结构如图


image.png

直接将 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
image.png

关联远程索引

然后再让 的CocoaPods 关联这个远程索引

pod repo add SESpecs https://gitee.com/609974309/SESpecs.git
image.png

成功后,会在 原有 ~/.cocoapods/repos 下,多一个 SESpecs 的文件夹,这就是我们自己私有的索引库

image.png

我们测试一下是否成功关联,搜索一下 SETool,如图很快就搜到,说明到此都没问题。并且显示的内容,如 HomepageSource 等都是我们自己在 podspec 文件中编辑而成。

pod search SETool
image.png

增加私有库的源

接下来最后一步,我们将 我们私有的 SETool 模块 拉下来

pod install

注 : 这里我们如果在 Podfile 加上 pod 'SETool' 直接 pod install 有可能报错, 这里 我们需要主动设置 CocoaPods 的源

工程内截图.png
设置源前后.png

到此我们终于可以将私有的库或模块组件,用 CocoaPods 统一管理,像你使用 AFNetworking,SDWebImage 公共库一样,利于工程解耦,方便多人开发,独立测试,再集合到主工程。

你可能感兴趣的:(iOS_CocoaPods搭建远程私有库)