想要发布pod,要创建两个git仓库,一个用于存放要分享的源代码,一个用于存放podspec的版本信息
总体思路:
1、先创建一个仓库用于存放podspec的版本信息
2、再创建一个目录用于存储组件源代码,在创建的源代码目录后使用pod创建一个发布源代码的模板,把要分享的代码放到ReplaceMe目录下
3、编写podspec,在Example目录下的pod install,然后验证podspec的有效性
4、然后把podspec push到用于存放podspec的版本信息的仓库,在使用到私有库项目的podfile添加source 获取podspec中源代码的仓库地址进行下载
具体步骤:
1、在git服务器创建一个ZGSpecs仓库(不要勾选README,如果用下面方式关联),在本地创建一个目录与存放podspec的版本信息的仓库关联起来
//从命令行创建一个新的仓库
touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com:99/zly/ZGSpecs.git
git push -u origin master
2、在 ~/.cocoapods/repos 添加私有repo,用于使用私有库的项目中通过pod install命令,下载私有库,最后验证添加私有repo的有效性
pod repo add ZGSpecs https://github.com:99/zly/ZGSpecs.git
//ZGSpecs为 ~/.cocoapods/repos 目录下repo名 , 后面的url为用于存放podspec的版本信息的仓库地址
通过下面命令查看repo列表
pod repo list
验证repo的有效性
cd ~/.cocoapods/repos/ZGSpecs //ZGSpecs为创建的私有repo名
pod repo lint //验证远程是否通过
3、在本地创建一个存放要分享源代码的目录,创建pod模板,根据提示创建,创建完成后会自动打开项目
//1、在本地对应的目录执行创建模板
pod lib create ZGKXCommonComponent
//2、把想要分享的(.h,.m)文件放在ReplaceMe.m 同级目录,删除ReplaceMe.m文件
4、配置podspec包括 source_files、dependency、source、version等信息,若有子文件夹想要设置子模块,需要配置subspec,对编辑好的podspec进行验证,验证通过后与存放要分享源代码的Git服务器关联
//1、配置podspec格式如下
//pod名
s.name = 'ZGKXCommonComponent'
//版本号
s.version = '0.0.1'
//要分享源代码的仓库地址
s.source = { :git => 'https://github.com:99/zly/ZGKXCommonComponent.git', :tag => s.version.to_s
//源文件地址
s.source_files = 'ZGKXCommonComponent/Classes/**/*'
//设置第三方库的依赖
s.dependency 'FMDB', '~>2.7.2'
//子模块
s.subspec 'ZGConfig' do |s|
s.source_files = 'ZGKit/Classes/ZGConfig/*'
s.public_header_files = 'ZGKit/Classes/ZGConfig/*.h'
end
//2、找到Example下面的podfile文件进行pod install
//3、验证podspec
pod lib lint --allow-warnings #本地验证,如果验证成功会提示ZGKXCommonComponent passed validation.
//4、与存放要分享源代码的Git服务器关联
git add .
git commit -m "提交要发布的源代码"
git remote add origin https://github.com:99/zly/ZGKXCommonComponent.git
git push -u origin master
5、提交当前代码的tag,tag版本号和podspec的 s.version两者必须统一
git tag '0.0.1' && git push --tags //每次提交更新都需要更新
6、同步podspec信息到git服务器
1、把最新的podspec版本信息同步给存放podspec信息的本地私有仓库repo
2、同步给本地私有仓库repo后,本地的私有repo会把最新的podspec信息,push到用于存放podspec的版本信息的git服务器仓库中
pod repo push ZGSpecs ZGKXCommonComponent.podspec --allow-warnings --verbose
// ZGSpecs为 ~/.cocoapods/repos目录下文件夹名
// ZGKXCommonComponent.podspec为要分享代码目录下的文件
// --verbose为显示执行详情
7、组内成员如何使用发布的私有库?
//1、组内成员想要使用你的私有库,需要用以下命令在~/.cocoapods/repos目录下添加ZGSpecs
source 'https://github.com:99/zly/ZGSpecs.git' //在项目的podfile添加source获取仓库地址,下载代码
source 'https://github.com/CocoaPods/Specs.git' //引用的cocoaPod源也需要指定,不然所有的第三方库都去ZGSpecs这个repo去找了
//2、为了每次都是使用的最新的私有库代码,需要在pod install之前,执行下面命令检查是否私有库有更新
pod repo update ZGSpecs --verbose #ZGSpecs是自己本地repo名称