组件化开发就是把目前项目中的一个个功能,业务,基础模块分别解耦,分离出一个个pod库。通过安装pod库的形式,代替过去臃肿不堪的项目。组件化项目很适合规模大一些的项目,或者做自己的产品,比如为明星定制软件等,模式基本一样。这样就可以快速开发,组件化开发结构清晰多人合作开发不易发生冲突,还可以把每个组件通过静态库的形式来使用,这样编译的时间会有所提高,避免了每次编译都耗时很久的问题。通过fastlane来自动执行一些相似的操作,也可以为组件化进程中提供便利。今天我们主要说的是第一步,创建私有库。
1.创建Spec Repo
Spec Repo 是所有的Pods的一个索引库,是所有公开的Pods 的podspec 文件的一个仓库,其实就是一个部署在服务器的Git仓库,当你使用CocoaPods 后它会被Clone到本地的 ~/.cocoapods/repos 目录下。
我们平时使用的pod的公开索引库名称是master,我们这里可以随意起名,我这里暂时叫做HRSpecs。
(1).在托管平台创建一个HRSpecs的项目
(2).添加你的私有Repo到你的CocoaPods ,pod repo add HRSpecs https://gitee.com/***/HRSpecs.git
(3).在终端使用pod repo命令看到HRSpecs后代表创建私有库索引成功
2.创建pod库
1.在托管平台创建一个BaseLib项目,终端cd到目标文件夹
2.使用pod lib create MyLib命令,创建好本地lib文件。创建过程中会问你几个问题,如实回答就好(系统语言等问题,不区分大小写)。成功后自动打开刚创建的工程
3.添加具体代码
如图所示,用自己代码的文件替换掉ReplaceMe.m文件
4.添加代码关联
cd 到项目路径终端执行 $ git remote add origin https://gitee.com/***/BaseLib.git #关联远程代码仓库
5.修改spec文件
s.summary = 'BaseLib'
s.description = <<-DESC
"baselib基础库" (s.description要比s.summary内容多)
s.homepage = 'https://gitee.com/***/BaseLib'
s.source = { :git => 'https://gitee.com/***/BaseLib.git', :tag => s.version.to_s }
6.提交代码到远程代码仓库
$ git add .
$ git commit -m "初始化BaseLib 库"
$ git push origin master #提交到远端仓库
$ git tag -m "初始版本号" "0.1.0" #打上标签,这个很重要,标签名要有spec文件中的标签名一致
$ git push --tags #推送tag到远端仓库
7.验证spec,并且提交到本地远程私有库
本地验证pod lib lint,远程验证 pod spec lint (加上--allow-warnings可以忽略警告)
8.将spec文件推到本地的私有库
使用命令 pod repo push HRSpecs BaseLib.podspec,执行完成后会自动更新远程的HRSpecs
走到这私有库就创建成功了,使用的时候记得加入私有库的路径。