项目开发中经常使用pod管理三方库,但在实际开发中,有很多公共组件甚至业务组件也想用 CocoaPods 统一管理,也有助于多人开发。接下来,咱们来说说用 CocoaPods 创建私有库。
一、创建远程私有索引库(存放podspec管理私有库)
在码云(https://gitee.com)上创建一个自己的远程私有索引库,用来存放私有框架的详细描述信息.podspec文件
二、将本地的私有索引库与远程私有索引库进行关联
- pod repo(查看本地已存在的索引库)
- 添加本地私有索引库并与远程私有库
1 | pod repo add MyProjectSpec https://git.oschina.net/funky_hs/myprojectspec.git |
- 添加完毕后查看本地已存在的索引库 pod repo
三、创建一个用来存放项目基础组件的仓库
在码云(https://gitee.com)上创建一个用来存放项目基础组件的仓库,用来存放组件代码。
四、快速创建模板测试工程(测试基础组件)
桌面新建文件夹CocoaPodRemoteLib存放测试工程
进入文件夹 cd /Users/XXX/Desktop/CocoaPodRemoteLib
执行命令 pod lib create MyProjectBase(快速创建)
按照下图提示选择选项:
创建完毕Xcode会自动打开测试工程,结构如下图:
删除Replace.m文件,将组件的代码复制到文件夹下
进入Example路径下,重新执行pod install操作:
cd /Users/XXX/Desktop/CocoaPodRemoteLib/MyProjectBase/Example
pod install
此时打开模板测试工程,我们可以看到Pods > Development Pods > MyProjectBase > MyProjectBase > Classes > 组件库
至此模板测试工程配置完毕!
五、将上面的模板测试工程,提交到第三步创建的远程组件仓库
- 打开模板测试工程,编辑工程下的MyProjectBase.podspec文件
注意:podspec文件中信息必须配置正确,尤其是git地址!!
进入测试工程:cd /Users/XXX/Desktop/CocoaPodRemoteLib/MyProjectBase
验证上一步编辑的 MyProjectBase.podspec文件: pod lib lint
如果有ERROR,则需要去一个个修改完成
出现MyProjectBase passed validation. 则说明验证通过,依次执行以下命令:
- git status
- git add .
- git commit -m ‘编辑spec文件’
- git remote add origin https://git.oschina.net/funky_hs/myprojectbase.git (将本地库与远程组件代码仓库进行关联)
- git push origin master (提交到远程仓库)
- git tag ‘0.1.0’ (要与MyProjectBase.podspec文件中的tag值保持一致)
- git push –tags(将tag提交到远程)
- pod spec lint –allow-warnings(验证远程是否正确,注意:Username与Password一定要填写正确)
出现MyProjectBase.podspec passed validation. 表明验证通过
六、将podspec文件提交到本地的私有索引库
进入测试工程:cd /Users/XXX/Desktop/CocoaPodRemoteLib/MyProjectBase
执行命令:pod repo push MyProjectSpec MyProjectBase.podspec 提交到本地的私有索引库
至此远程私有库配置到此就已结束!
七、主工程利用Pods使用我们自己的私有框架
- 用Xcode打开编辑Podfile文件
- pod install
八、添加及修改基础组件内容
- 打开模板测试工程,新增文件
重新编辑MyProjectBase模版工程的MyProjectBase.podspec文件
进入测试工程:cd /Users/XXX/Desktop/CocoaPodRemoteLib/MyProjectBase
依次执行以下命令更新远程组件代码库:
- git status
- git add .
- git commit -m ‘新增Base,Tool文件内容’
- git push origin master (提交到远程仓库)
- git tag ‘0.2.0’
- git push –tags(将tag提交到远程)
- pod repo push MyProjectSpec MyProjectBase.podspec
更新pod库:
九、在基础组件MyProjectBase内部生成子库
问题描述:当我们执行完第九步后,我们发现主工程的Pods中并没有按文件夹(Base,Category,Tool)进行不同类的划分,同时当我们仅仅想引入一个Category库时,连同Base,Tool也引入进项目中,这就太恶心了!
参照AFNetworking
修改MyProjectBase.podspec文件:
- 进入测试工程:cd /Users/XXX/Desktop/CocoaPodRemoteLib/MyProjectBase
依次执行以下命令更新远程组件代码库:
- git status
- git add .
- git commit -m ‘生成子库文件夹’
- git push origin master (提交到远程仓库)
- git tag ‘0.3.0’
- git push –tags(将tag提交到远程)
- pod repo push MyProjectSpec MyProjectBase.podspec
更新pod库:
CocoaPods远程组件私有库配置完毕!
- 本文作者: Grx
- 本文链接: https://ruixiaoguo.github.io/Grx.github.io/Grx.github.io/2022/01/18/创建属于自己的私有库(码云)以及提交到cocoapods/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!