一、创建索引库:存放spec文件,这里创建成私有的
1、在码云上创建私有索引库YHTestOneSpecGroup:设置为私有库
2、添加自己的本地远程索引库:pod repo add YHTestOneSpecGroup https://gitee.com/denggun/YHTestOneSpecGroup.git
3、cd到 ~/.cocoapods/repos下查看自己的本地仓库路径;也可以用pod repo命令查看,本地会多一个镜像库;如果想移除执行pod repo --remove YHTestOneSpecGroup即可
二、创建组件库工程:
1、cd到目标文件夹执行命令pod lib create YHTestOne
2、在命令行回答完问题,将自己编的本地组件文件替换工程中的ReplaceMe.m文件
3、如果有图片资源,则将图片放在与Classes同级的Assets文件夹下
三、将本地组件库添加到远程私有仓库
1、在码云上创建私有仓库
2、将本地组件库提交到此私有库
2.1、cd /Users/yangyangzi/Desktop/Task/组件化/YHTestOne
2.2、git remote add origin https://gitee.com/denggun/YHTestOneDemo.git
2.3、git add .
2.4、git commit -m "描述"
2.5、git push origin master
四、修改组件工程库的podspec文件
s.version要与tag值一致
s.homepage 私有组件库主页地址
s.source 私有组件库地址
s.description 工程描述
如果有图片资源,则打开s.resource_bundles
s.resource_bundles = {
'YHTestTwo' => ['YHTestTwo/Assets/*.png']
}
五、本地验证本地podspec文件正确性
pod lib lint 本地验证
pod lib lint --verbose 如果上边命令后提示podspec文件内有error,则执行此命令详细查看错误原因
pod lib lint --allow-warnings 如果podspec文件有警告也会报错,忽略警告后则可以通过
通过则命令行会打印 YHTestOne passed validation.
六、将本地私有组件库的改动提交到远程仓库
因为在4中修改了本地组件库podspec文件的内容,故在验证远程仓库前做一次提交,保证本地和远程一致
1、git add.
2、git commit -m ""
3、git push origin master
4、为此私有库打标签
git tag 0.0.1(注意这里的tag值一定要和podspec文件的tag值保持一致)
git push --tags
(远程仓库origin报错的话fatal: Couldn't find remote ref master,通过
1》git remote -v 查看远程仓库配置
2》git remote rm origin 移除远程仓库
3》git remote add origin 仓库地址 重新添加远程仓库)
七、远程验证本地podspec文件正确性
pod spec lint 远程验证
pod spec lint --verbose 如果上边命令后提示podspec文件内有error,则执行此命令详细查看错误原因
pod spec lint --allow-warnings 如果podspec文件有警告也会报错,忽略警告后则可以通过
通过则命令行会打印 YHTestOne.podspec passed validation.
八、建立关联--将podspec文件YHTestOne.podspec关联到远程索引库YHTestOneSpecGroup
pod repo push YHTestOneSpecGroup YHTestOne.podspec
或 pod repo push YHTestOneSpecGroup YHTestOne.podspec --allow-warnings
九、查看库是否创建成功
1、pod repo 查看是否多了一个索引
2、pod search YHTestOne 能否搜索到自建的库,如果找不到删除~/Library/Caches/CocoaPods/search_index.json文件再试
十、在工程中使用自己创建的私有库
一般情况我们的Podfile文件的索引库默认是https://github.com/CocoaPods/Specs.git,不用指明索引库地址。但是当我们的使用其它索引库的来源时,就要指明默认库及其它所有用到的索引库的地址。
例如工程testYHRepository里用到了AFN和我自己的私有库YHTestOne,那就应该在此工程的Podfile文件的
target 'testYHRepository' do上边填写两个索引库源
source 'https://github.com/CocoaPods/Specs.git'
source 'https://gitee.com/denggun/YHTestOneSpecGroup.git'
注意:自己的创建的私有库一定不要跟Github上的第三方库重名,否则会搜不到;
最好在本地验证通过之后再打tag,因为这是仓库基本是最后状态了,不用因为改变引起tag值的重新更新