通过CocoaPods,我们可以更加方便的管理自己平时用到的一些工具类或者库,平时我们接触最多都是一些开源的第三方库,它的制作和使用私有库制作存在一些区别。
1.CocoaPods原理和概念
CocoaPods是用来管理包的,它只负责存储代码一部分的信息,并不直接管理代码。所以我们需要两个仓库,一个是用来托管CocoaPods的配置文件,另一个用来存储代码。
工作原理
CocoaPods通过.podspec文件来搜索代码库,其所有配置文件托管在Master Repo。
概念
.podspec:该文件为代码库的描述文件,CocoaPods通过其中相关配置对Git代码库进行索引及下载。
熟悉了基本的概念,接下去上手操作:
2.制作支持CocoaPods的开源库
新建一个Git仓库用于存储代码
注意记得要选择MIT开源协议
关联本地代码
1.初始化Git仓库
git init复制代码
2.把文件添加到版本库中,使用git add .添加到暂存区中,不要忘记后面的小数点,意为文件夹下所有文件
git add .复制代码
3.使用git commit,把文件提交到本地仓库。引号内为提交说明
git commit -m '初始化Git仓库'复制代码
4、关联到远程库
git remote add origin 远程仓库地址复制代码
5、获取远程库与本地同步合并(如果远程库不为空必须做这一步,否则后面的提交会失败)
git pull --rebase origin master复制代码
6.将本地仓库代码推送到远程仓库(可跳过,放到后面推送)
git push origin master复制代码
查看远程仓库
将我们需要的代码放到工程中,后面需要上传到远程仓库。
制作CocoaPods
1.创建podspec文件并关联
pod spec create JXTestKit git@github.com:cooperAjx/JXTestKit.git复制代码
2.编辑podspec文件
3.本地验证
pod lib lint --allow-warnings复制代码
4.设置版本 CocoaPods需要版本号,设置版本号并将修改的部分再传到远程仓库
git tag 0.0.1git push --tags复制代码
5.远程验证
pod spec lint --allow-warnings复制代码
6.利用trunk将代码上传到CocoaPods repo
pod trunk push JXTestKit.podspec复制代码
7.成功后,搜索查看结果 由于忘了截推送成功的图,就不放图了,看下搜索成功的图
如果提示推送成功但是不能搜到,提示
删除~/Library/Caches/CocoaPods
下的search_index.json
,重新pod search
就可以解决。
3.制作支持CocoaPods的私有库
创建一个远程私有库
这里用的码云,为什么要先选择开源,为的是MIT协议文件,你也可以一开始就选择私有,后面去其他的工程拷贝一份MIT协议就可以了,这个无伤大雅。
大体流程都和开源库的制作方式相同,区别在于,这次除了存放代码的Git仓库以外还需要一个存放CocoaPods配置文件的仓库。
创建Specs仓库
添加私有repo到CocoaPods中:
pod repo add JXPrivateTestKitRepo git@gitee.com:cooper_jx/JXPrivateTestKitRepo.git复制代码
创建podspec文件并关联
pod spec create JXPrivateTestKit git@gitee.com:cooper_jx/JXPrivateTestKit.git复制代码
远程验证
pod spec lint --private复制代码
提交Spec
pod trunk push JXPrivateTestKit.podspec复制代码
pod Search
使用私有框架时,需要添加repo地址到source
source 'git@gitee.com:cooper_jx/JXPrivateTestKitRepo.git'复制代码
补充
使用subspec
对pods项目进行分层
pod install 之后可以看到有了明显的分层
参考文章