iOS组件化开发之私有库搭建

概念理解

私有索引库

私有索引库的作用是存放.podSpec文件的。当你使用pod search AFN时,pod会在本地的索引库中进行搜索。

私有索引库分为本地私有索引库和远程私有索引库,它们是相互对应的。

  • 本地私有索引库

3.png

其中master 是 CocoaPods 的本地索引库,他是公有的.只要安装过CocoaPods的电脑,都会有这么一个索引库。它对应CocoaPods的远程索引库
其中ZNBRepo 是本地私有索引库

接下来让我们创建远程私有索引库,并且将远程私有索引库 添加到本地

  • 远程私有索引库

    我在码云上创建了一个远程库,用来做远程私有索引库


    3.png
  1. 复制远程私有索引库的地址

https://gitee.com/znbmm/ZNBRepo.git

2.打开终端,将远程私有库关联到本地
pod repo add ZNBRepo https://gitee.com/znbmm/ZNBRepo.git

3.就会发现将远程私有库ZNBRepo添加到本地了

3

私有代码仓库

私有代码仓库也分为本地私有代码库和远程私有代码库,它们也是相互对应的。

  • 本地私有代码仓库

新建一个名为组件化的文件夹
cd /Users/wjwl/Desktop/组件化
pod lib create ZNBTool
按照提示完成所有配置后会得到一个模板文件
将自己抽出来的组件放到Classes文件夹下

  • 远程私有代码仓库

1.在码云上创建一个名字为ZNBTool的代码仓库
2.修改模板项目ZNBTool中的ZNBTool.podspec文件

修改spec文件

3.提交本地私有模板组件代码到远程私有代码仓库,并打上tag标签

cd /Users/wjwl/Desktop/组件化/ZNBTool
git add .
git commit -m '创建了一个组件'
git tag '0.1.0' 这个tag 跟 spec 文件中version 一致
git remote add origin <#远程代码仓库地址#>
git push -u origin master
git push --tag

4.对文件进行本地验证和远程验证
cd /Users/wjwl/Desktop/组件化/ZNBTool
pod lib lint --private
pod spec lint --private
5.将验证通过的.podSpec文件加入到本地私有索引库,并上传到远程私有索引库
pod repo push ZNBRepo ZNBTool.podspec
6.在ZNBRepo路径下就会有ZNBTool,并带有版本号

ZNBTool.png

7.查看远程私有索引库你会发现ZNBTool已经躺在里面了

8.使用终端搜索 ZNBTool
如果搜索不到的话可以尝试
pod setup
还是搜不到的话
rm ~/Library/Caches/CocoaPods/search_index.json
pod setup

使用私有库组件

在Podfile 顶部添加source
source 'https://gitee.com/znbmm/ZNBRepo.git'

完事了

更新组件

修改ZNBTool.podspec中的version
cd /Users/wjwl/Desktop/组件化/ZNBTool
git add .
git commit -m '创建了一个组件'
git tag '0.2.0' 这个tag 跟 spec 文件中version 一致
git push -u -origin master
git push --tag
pod lib lint --private
pod spec lint --private
pod repo push ZNBRepo ZNBTool.podspec

如果 执行pod repo push ZNBRepo ZNBTool.podspec 报错The repo 'xxxxx' at ../../../../../.cocoapods/repos/xxxx is not clean

可以尝试
pod repo remove <#远程私有索引库名.ex:ZNBRepo#>
再次添加
pod repo add <#远程私有索引库名.ex:ZNBRepo#> <#远程私有索引库地址#>
完成

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,791评论 25 709
  • 该文章属于<简书 — 刘小壮>原创,转载请注明: <简书 — 刘小壮> http://www.jianshu.co...
    Yiart阅读 10,041评论 3 49
  • 近几年组件化大家吵的沸沸扬扬的,它其实也不是什么黄金圣衣,穿上立马让你的小宇宙提升几个档次,也不是海皇的三叉戟,入...
    MagicCare阅读 3,486评论 0 2
  • 公元2017921能量世界第59天,定 1我怎么如此幸运今天干了好多事情,而且每件事都漂亮。 2我怎么如此幸运今天...
    史德波阅读 1,625评论 0 1
  • 数不清这是第多少次从噩梦中哭醒。有时候我觉得我冷漠无情自私的不像个孩子,可是为什么我总有这种无法呼吸的情感。 是的...
    丁信子阅读 2,256评论 0 0