利用CocoPods建立远程私有库进行组件开发
2017-09-14 本文已影响39人
dispath_once
背景
随着项目的越做越大,项目里面很多东西都在别的项目里面能进行重复使用,这个时候我们可以使用CV的方式实现这种项目,但是这样存在一个在一个地方修改了复用代码,其他地方不能及时性的修改,针对这种情况我们就可以使用cocopod私有库的方式把能够复用的代码进行抽离出来,封装成对应的组件。
建立私有Repo
- 通过
pod repo
查看现在pod的仓库,一般情况我们本地只有一个master,然后我们需要手动的给repo添加自己的私有仓库。
-
在git服务器上面初始化一个git仓库。这里的git服务器可以是外网的,也可以是公司内部自建的git服务器,我这里使用的是coding.net上面建立的私有库。
git仓库 - 通过
pod repo add 名字 git地址
添加私有repo。
添加私有库 - 到此私有repo已经添加完成。
创建自己待传的组件
-
把自己抽离出来的代码存放到指定文件夹里面,并建立对应代码的测试demo。
存放代码的文件夹 - 通过
pod spec create 组件名字 组件的git地址
创建组件的spec文件,并根据实际需求修改spec文件里面的内容。对应参考资料
Pod::Spec.new do |s|
#指定平台和版本
s.platform = :ios, '8.0'
#名字
s.name = "CountDownButton"
#对应版本
s.version = "0.0.2"
#简短描述
s.summary = "CountDownButton"
#详细描述
s.description = "一个倒计时的button,这是很长的描述"
#代码介绍的主页
s.homepage = "https://coding.net/u/samhzx/p/MyRepo"
#开源协议
s.license = 'Code is MIT, then custom font licenses.'
#作者
s.author = { "xxxxx" => "xxxx@qq.com" }
#代码的git仓库
s.source = { :git => "https://git.coding.net/samhzx/CountDownButton.git", :tag => "#{s.version}" }
#代码引用的文件
s.source_files = "CountDownButton/**/*.{h,m}"
s.requires_arc = true
end
- 修改完spec文件之后使用
pod spec lint spec文件
验证文件是否正确。如果出现错误根据错误提示进行相应的修改之后再次进行验证。注意:spec文件里面的version的值一定要和git仓库对应的tag一致。
验证spec文件 - 初始化对应组件的git仓库、上传组件代码到git仓库、标记git仓库的tag值。
- 初始化本地组件git仓库使用
git init
。 - 关联远程git仓库使用
git remote add origin git仓库地址
。 - 把本地代码添加到git仓库使用
git add .
。 - 提交本地代码使用
git commit -m '提交信息'
。 - 提交到远程仓库第一次使用
git push origin master
;后面使用的时候git push
。 - 给代码打上tag使用
git tag -a 版本号 -m '版本的描述信息'
。 - 使用
git push --tags
把本地所有tag上传到git服务器;也可以使用'git push origin 版本号'上传指定的tag。 - 使用
git tag -d 版本号
删除本地对应的tag;接着使用git push origin :版本号
同步本地删除的tag到服务器。
- 初始化本地组件git仓库使用
- 使用
pod repo push 私有repo名称 spec文件
向自己的私有库上传对应的spec文件。
上传spec文件 - 到此组件上传到私有repo已经完成。
使用私有repo
- demo的Podfile文件:
source 'https://github.com/CocoaPods/Specs.git'
#私有Spec Repo
#source 'https://git.coding.net/samhzx/MyRepo.git'
platform :ios, '9.0'
target 'CountDownButtonDemo' do
use_frameworks!
#pod 'CountDownButton', :podspec => '../CountDownButton.podspec'
pod 'CountDownButton', :path => '../'
end
- 正常使用的Podfile文件:
source 'https://github.com/CocoaPods/Specs.git'
#私有Spec Repo
source 'https://git.coding.net/samhzx/MyRepo.git'
platform :ios, '9.0'
target 'CountDownButtonDemo' do
use_frameworks!
pod 'CountDownButton'
end
- 使用
pod install
进行安装,正常情况能安装上私有repo里面的对应组件,如果不行就使用pod repo update 私有repo名字
更新一下对应的私有repo。 - 私有组件的大概使用到此完成。
结语
项目中使用组件化不光是组件的管理,还涉及到组件的抽象,组件的分类,组件的组织等多方面的技术,需要了解的东西也较多,今天给大家带来的只是组件管理的一个简单介绍,后面有时间继续给大家分享组件开发的其他东西,在此谢谢大家哦。