私有库组件化开发
2018-12-22 本文已影响3人
itzhaolei
组件化开发
答题打样
优势
- 逻辑清晰、单元化强
- 耦合度低、便于维护
私有库索引仓库
-
创建
码云git仓库创建打样 -
终端查看现有的本地索引库
pod repo
运行结果打样
- 添加本地索引库
ZLManoeuvrePrivateSpec
远程索引库名称
git@gitee.com:ZLManoeuvre/ZLManoeuvreLibrary.git
远程索引仓库SSH地址
pod repo add ZLManoeuvrePrivateSpec git@gitee.com:ZLManoeuvre/ZLManoeuvreLibrary.git
运行结果打样
创建组件仓库
-
创建远程组件仓库
远程仓库创建打样 - 创建本地组件仓库
进到指定文件内,用于存放组件仓库
cd /Users/zhaolei/Desktop
ZLManoeuvreLibrary
组件名称
pod lib create ZLManoeuvreLibrary
命令执行完的打样
底部出现选择回答的问题,依次选填即可
答题打样
-
编辑组件的Spec
spec文件打样 - spec文件内编辑内容
# 注释
Pod::Spec.new do |s|
#组件名称
s.name = 'ZLManoeuvreLibrary'
#组件版本号
s.version = '0.0.1'
#摘要
s.summary = '摘要写在这里'
#详细描述。字数需要比摘要多
s.description = <<-DESC
这里写上组件的详细描述
DESC
#组件主页地址
s.homepage = 'https://gitee.com/ZLManoeuvre/ZLManoeuvreLibrary'
#权限、授权协议
s.license = 'MIT'
#用户名及邮箱
s.author = { 'Mr.Zhao' => 'itzhaolei@foxmail.com' }
#仓库地址 SSH地址 tag指向了上面的 s.version
s.source = { :git => 'git@gitee.com:ZLManoeuvre/ZLManoeuvreLibrary.git', :tag => s.version }
#支持的系统版本号不小于哪个版本
s.ios.deployment_target = '8.0'
#组件文件的存放位置
s.source_files = 'ZLManoeuvreLibrary/Classes/**/*'
#公开的头文件
# s.public_header_files = 'Pod/Classes/**/*.h'
#依赖的系统库
# s.frameworks = 'UIKit', 'MapKit'
#依赖的第三方库
# s.dependency 'AFNetworking', '~> 2.3'
end
- 给本地仓库配置远程仓库的地址
git@gitee.com:ZLManoeuvre/ZLManoeuvreLibrary.git
远程仓库地址
git remote add origin git@gitee.com:ZLManoeuvre/ZLManoeuvreLibrary.git
- 提交组件到远程仓库
-u
将本地仓库master
与远程仓库master
进行关联
-f
覆盖远程仓库现有的内容
origin master
远程主分支
这个配置只需要首次推送内容的时候配置,非首次把本地仓库的内容提交给远程仓库,直接使用git push
就可以了。
git add .
git commit -m"初始化并配置本地仓库信息"
git push -u -f origin master
- 打标签
为提交到远程的代码打上一个版本号,该版本号应与spec文件里填写的保持一致
git tag 0.0.1
git push --tags
- 验证spec文件是否可以提交
只要没有ERROR
就可以提交
pod spec lint --private
spec文件验证结果打样
- 提交到索引库
ZLManoeuvrePrivateSpec
索引库名称。同步到本地后,会通过名称找到远程链接,然后推向远程
ZLManoeuvreLibrary.podspec
组件spec文件名及后缀
pod repo push ZLManoeuvrePrivateSpec ZLManoeuvreLibrary.podspec
- 最后一步,在podfile文件里需要加上,就可以使用私有组件了。
source 'https://github.com/CocoaPods/Specs.git'
source 'git@gitee.com:ZLManoeuvre/ZLManoeuvrePrivateSpec.git'