现在网上Cocoapods创建私有库的文章很多,我主要是因为公司需求,对代码进行抽离,减少重复代码和其他同事不知道有这个方法或控件自己又写了一套。
也是我自己对代码进行抽离的一个总结。
1、创建私有 Spec Repo
Spec Repo
其实类似一个容器,就是Pods
的索引。里面装着所有的公开的Pods,当使用Cocoapods后,他就会被clone到本地的~/.cocoapods/repos目录下。
在进pod install
或者 pod update
的时候就会去这个repo中进行检索,如果检索到对应的pod,会读取该Pod的podspec从而进行安装
我们可以在码云上创建一个私有的git
使用命令创建本地spec 库
pod repo add [Private Repo Name] [码云git HTTPS clone URL]
pod repo add MyCocapodsSpecs https://gitee.com/private_repository_development/MyCocapodsSpecs.git
[Private Repo Name] 本地仓库
[码云git HTTPS clone URL] git地址
2、创建Pod项目工程文件
这里建议通过CocoPods
的官方命令来进行Pod
项目的创建,以测试项目BaseLabel
为例:
现在本地创建好文件夹(文件名可随意起,自己使用方便即可,不过最好规范),用于存放 Pod项目工程文件,下面以我创建的为例进行后续操作
使用命令创建Pod项目工程文件 pod lib create BaseLabel
,然后等待终端反应,不出意外会出现下面几个问题:
之后会自动打开项目。
接下来就是在你的BaseLabel文件夹下添加自己的内容,将自己的模块部分放在BaseLabel/Classes下,然后cd到Example文件夹下执行pod update命令,之后打开项目,就能在BaseLabel/ Pods/BaseLabel文件夹下看到自己添加的组件了,之后需要将项目推送到远端仓库,同样需要先自己去git服务商哪里创建一个私有仓库,然后cd到BaseLabel目录,执行如下操作:
git add -A
git commit -a -m "init library"
git remote add origin https://gitee.com/private_repository_development/Baselabel.git
git push origin master
或者用工具提交git
做完这些之后开始编辑podspec文件,填上对应的信息。
本地验证
'pod lib lint'
第一次验证都会报错误的,而如图的错误就是说:远程仓库没有创建版本标签tag
添加tag:
git tag
git tag 0.1.0
git push --tags
因为podspec文件获取版本控制的项目需要tag号,所以还要搭上一个tag
git tag -m "first release" 0.1.0
git push --tags #推送tag到远端仓库
然后就是在终端输入验证命令,确保该Podspec有效:
pod spec lint
3、向Spec Repo提交podspec
提交命令:pod repo push MyCocapodsSpecs BaseLabel.podspec --sources='https://github.com/xxxx/MyCocapodsSpecs.git,https://github.com/CocoaPods/Specs.git' --use-libraries --allow-warnings
成功后输入命令 pod search BaseLabel 就可以搜索到你创建的私有库咯~
在Podfile文件中,内容如下:
source 'https://github.com/CocoaPods/Specs.git' # 官方库
source 'https://gitee.com/private_repository_development/MyCocapodsSpecs.git' # 私有库
platform :ios ,'8.0'
target 'test' do
pod 'CocoaLumberjack'
pod 'FMDB'
pod 'BaseLabel','~> 0.1.0'
end
4、版本迭代和更新
只需要正常提交版本到 git 仓库, 并且一定要打 tag 标记,然后更改 .podspec 中的 version 和 其他需要修改的信息 然后再次验证,通过之后提交即可~
总结:
私有库
1、创建私有库
pod lib create 名字
2、提交远程仓库
git remote add origin 地址
git push origin master
3、编辑podspec
4、本地验证
pod lib lint --use-libraries --allow-warnings
5、打tag
6、向Spec Repo提交podspec