一.创建私有远程索引库
创建一个私有远程仓库主要的步骤如下:
- 创建远程索引库和私有组件库仓库
- 将远程索引库添加到本地 pod repo add 索引库名称 索引库地址
- 创建一个 pod 模板组件库 pod lib create 组件名称
- 上传代码和打标签
- 提交 spec 至私有索引库
- 使用 source 索引库url pod '组件名称'
1.在github上创建两个仓库,分别为私有组件库仓库,以及私有索引仓库
-
私有组件仓库
截屏2021-09-27 下午4.07.04.png
-
私有索引仓库
截屏2021-09-27 下午4.04.57.png
2.添加私有索引仓库到本地
通过这个命令本地索引仓库管理
pod repo add #本地索引库名称 #远程索引库地址
执行完命令 本地Cocoapods索引库会出现指定的文件
![](https://img.haomeiwen.com/i11958551/20692a0d878c551d.png)
3.创建一个pod模板库
- 创建本地组件仓库文件
成功后会生成一个本地组件库文件pod lib create #本地组件库名称
- 添加组件内容
删除 ReplaceMe.m 文件,添加基础组件相关的内容到 Classes 文件夹中 - 安装与测试本地库
cd到demo路径下,执行命令 pod install进行本地组件库更新,
引入库文件,进行调用,然后尝试进行项目编译import MSTestSpecProj
4.上传代码和打标签
- cd到刚才新建的本地组件库文件夹主目录
cd /Users/shurui/Desktop/TestProject/MSTestSpecProj
- 将刚才创建的远程组件仓库地址与本地进行关联
git remote add origin #远程私有组件库地址
关联后可以使用git remote -v查看关联远端
-
提交文件
提交本地组件库// 把本地添加文件加入缓存区 git add . // 提交代码到本地仓库 git commit -m '提交' // 推送到远端master分支 git push -u origin master -f
此时发现远程组件库里面master分支的代码已经跟本地的一致
-
创建tag
git tag 0.1.0(注意,这里的tag必须和.podSpec文件的版本一致) git push --tags
5.提交 私有仓库 至私有索引库
- 执行本地校验命令
如果输出:…… passed validation.即表示校验成功pod lib lint --private --sources=master,#本地索引库名称 --allow-warnings
- cd到本地私有库路径下,将私有库添加到本地索引库
注意:记得要把podspec文件里s.source 地址换成自己的远程地址
如果遇到以下报错,确认下索引库是否有master分支,没有则创建一个cd /Users/shurui/Desktop/TestProject/MSTestSpecProj // 将私有库添加到本地索引库 pod repo push #本地索引库名称 #本地私有库名称.podspec --verbose --allow-warnings
Your configuration specifies to merge with the ref 'refs/heads/master' from the remote, but no such ref was fetched.
- 提交成功搜索下私有库
pod search SRIMProject
6.使用私有库
- 添加私有库搜引地址
source '#私有组件库地址'
- 添加使用的组件库名
pod '#私有组件库名称','#版本'
7.更新库
如果修改代码或者添加文件,需要先更新组件库,在更新索引库
-
组件中podspec文件把版本提高一个
-
提交代码到远端库,打上tag,tag和podspec文件里面版本一样,见上方3.上传代码和打标签
-
pod repo push #本地索引库名称 #本地私有库名称.podspec --allow-warnings
这样pod库就提高了一个版本
8.公有的pod库
公用的pod是要把spec上传到cocospod官方的
1.将spec索引上传到官方需要先注册,命令如下
pod trunk register 电子邮箱 '您的姓名'
注意邮箱必须正确,收到邮件后需要点击连接确认激活。
2. 激活后将spec push到官方,这个过程可能需要一点时间,请耐心等等待。
pod trunk push #本地私有库名称.podspec
9.注意事项:
-
如果执行过程中遇到账密权限问题,可以改用ssh方式,github现在已经取消使用账密进行校验
-
Swift库文件需要暴露给外部使用的需要用Public或open修饰
swift3.0中访问控制一共有5个关键字 1. open:可以在任何地方访问、继承和重写 2. public:可以在任何地方被访问,在其他module中不能被继承和重写 3. internal:默认访问级别,在整个模块内都可以被访问 4. fileprivate:其修饰的属性可以再同一个文件被访问、继承和重写,同一个文件指同一个swift文件,一个文件中可以有多个类 5. private:其修饰的属性和方法只能在本类被访问和使用,不包括扩展类
-
Swift库支持OC调用需要添加@objc修饰
参考:
组件化之路
iOS组件化之制作私有库 ,上传到pod.
https://halfrost.com/vue_ios_modularization/#toc-25 组件化介绍
https://www.cnblogs.com/brycezhang/p/4117180.html
https://draveness.me/cocoapods/ 使用cocoapods完成组件化封装
网友评论