Osheep

时光不回头,当下最重要。

模块组件化——私有pod制作详细教程

闲话不多说,折腾了半天来和大家分享下私有pod的制作。

制作前的需要准备工作

  1. GitHub或者码云的账号(因为GitHub私有需要收费,接下来的制作我们使用的码云)
  2. Xcode
  3. 终端
在码云上创建两个两个项目,其中一个为私有,另一个是公开的

如下图

《模块组件化——私有pod制作详细教程》

屏幕快照 2017-08-18 下午3.52.31.png
《模块组件化——私有pod制作详细教程》

屏幕快照 2017-08-18 下午3.56.01.png

名字的话随意,只要你不弄错就可以。

本地创建后续要被共享的Lib工程

1.打开终端cd到你要创建的目录下(方便下我就放在桌面了)
2.然后输入pod lib create &(私有仓库的名字) 命令创建一个待上传的模版,如图

《模块组件化——私有pod制作详细教程》

屏幕快照 2017-08-18 下午4.06.55.png

3.之后会有选项对私有的pod库进行一些选择

《模块组件化——私有pod制作详细教程》

屏幕快照 2017-08-18 下午4.08.39.png

此处在桌面会生成一个文件夹,包括工程目录及文件介绍。ps:ReplaceMe.m文件为示例文件,可删除。你自己写的文件放在此处

《模块组件化——私有pod制作详细教程》

屏幕快照 2017-08-18 下午4.15.06.png

配置 .podspec 后缀文件

s.name : 项目名
s.version : 版本号(需跟后面打 Tag 的值相等)
s.homepage : 项目主页(请注意,这里的地址跟git仓库地址有一定差别,请看清截图示例并区分)
s.license : 开源协议(这里我们选择 MIT )
s.source : Git 仓库地址(第二步所创建的仓库地址)
s.ios.deployment_target : 项目最低支持版本
s.source_files : 具体去那个目录下下载特定共享代码(注意:这里的地址与 .podspec 文件同级目录开始,,示例:PrivateLib/Classes/** /*表示如下目录下的所有文件
s.frameworks :项目所依赖的系统库(如果需要)
s.dependency :项目所依赖的第三方库(如果需要)

《模块组件化——私有pod制作详细教程》

屏幕快照 2017-08-18 下午4.23.20.png

标记了红框的请务必记得修改,不然会出现各种奇葩的错误

验证 .podspec文件的格式的正确性

终端cd到该目录,输入

pod lib lint
《模块组件化——私有pod制作详细教程》

屏幕快照 2017-08-18 下午4.27.11.png

将本地PrivateLib工程与远程私有 Git 仓库关联

git remote add origin 远程私有仓库地址
git pull origin master --allow-unrelated-histories
拉去数据的时候会出现冲突,我们把head里的删掉,保留远程的
git add .
git commit -m "fix"
git push origin master
《模块组件化——私有pod制作详细教程》

屏幕快照 2017-08-18 下午4.30.17.png
《模块组件化——私有pod制作详细教程》

屏幕快照 2017-08-18 下午4.30.57.png
《模块组件化——私有pod制作详细教程》

屏幕快照 2017-08-18 下午4.32.54.png

做完了这几步我们在码云中的私有项目可以看到如下图所示

《模块组件化——私有pod制作详细教程》

屏幕快照 2017-08-18 下午4.34.38.png

然后本地和远程验证文件有效性

pod spec lint

此处会有报错,请不要慌张,那是因为我们没有tag

《模块组件化——私有pod制作详细教程》

屏幕快照 2017-08-18 下午4.38.46.png

执行以下代码

git tag -a 0.1.0 -m '0.1.0标签' 
git push –-tags 
pod spec lint 
《模块组件化——私有pod制作详细教程》

屏幕快照 2017-08-18 下午4.40.42.png

好了此处一切ok。很关键

上传.podspec到第一个远程私有仓库

1.首先进入 ~/.cocoapods/repos 目录下
2.然后创建一个私有仓库目录
pod repo add $(私有仓库名字) 第一个私有仓库地址

《模块组件化——私有pod制作详细教程》

![Uploading 屏幕快照 2017-08-18 下午4.42.54_128717.png . . .]

如下图所示,我们可以看到shirePrivatePodspec文件已经存在了,如果不小心打错了也没关系可以删除的,删除代码如下

pod repo remove (文件名)

3.最后向私有的 PrivatePodspec 远程仓库中提交 .podspec()
终端进入到之前桌面创建的文件,然后推送

《模块组件化——私有pod制作详细教程》

屏幕快照 2017-08-18 下午5.13.46.png

4.最后就可以搜索你的私有库了

磕磕绊绊的折腾了一整天,参考了好多的文章,假如你们还有碰到一些问题的话可以参考下一下这几篇文章。写的不好,新尝试模块组件化的人少走点弯路

更新私有库,构建不同版本

1.修改spec文件中的s.version 号;
2.修改更新code,提交code在Sourcetree打新的tag;
3.两步,新增加tag,在桌面创建的文件重新push一遍
4.pod search 验证一下结果;

使用私有库

podfile里面添加如下代码

source'https://gitee.com/shirebella/shirePrivatePodspec.git'   //自己的私有spec仓库
source'https://github.com/CocoaPods/Specs.git' //cocoapods公共spec仓库
target "TableViewTest" do
pod 'shirePrivateLib', '~> 0.1.1'
end

参考资料:

[使用Cocoapods创建私有库]

[创建私有Pods,从小白到老铁]

点赞