步骤1是在没有索引库的情况下或者是新增索引的时候才需要用到(创建基础组件库)
首先在码云上建立一个私有库索引,起名为SYComponentSpec
添加私有库索引
pod repo add SYComponentSpec https://gitee.com/sun-shiyu/sycomponent-spec
当你需要新建组件的时候,就在这里开始,如果是想修改原有的库,就可以直接在之前的组件仓库里面修改即可
1.在码云上创建组件库
命名为SYBasicComponents
,如图:
2.创建SYBasicComponents
本地库
默认创建路径:/Users/sunshiyu/SYBasicComponents
。
pod lib create SYBasicComponents
最后,项目本地组件库创建完成后会自动打开项目。
3.在私有库导入自己的代码
将Classes
文件夹下面的ReplaceMe.m
文件删除掉,替换成你要上传私有库的代码,这里导入简单的两个测试文件:
// SYLog.h
+ (void)logger;
// SYLog.m
+ (void)logger {
NSLog(@"-------- Log --------");
}
4.更新这个工程的pod库
5.修改.podspec
文件
有两个属性需要注意改下:
s.homepage
:私有代码仓库的地址 https://gitee.com/sun-shiyu/sybasic-components
s.source
:私有代码仓库的源地址 https://gitee.com/sun-shiyu/sybasic-components.git
其他属性根据需要自行配置。
6.将私有库push到远程仓库
注意远端需要有个master
分支,这里先创建一个master
分支:
cd /Users/sunshiyu/SYBasicComponents
git branch master
git checkout master
commit代码到本地然后push到远端:
git branch (检查当前所在分支)
git status (查看当前git存了什么文件)
git add . (将所有文件缓存到待提交文件区域)
git commit -m "上传组件"
git remote add origin https://gitee.com/sun-shiyu/sybasic-components.git (私有库git仓库地址)
git push -f origin master (将代码推送到远程私有库git仓库的master分支上面已经创建了)
git tag 0.1.0 (这里的版本号必须和podspec里面写的版本号一致)
git push -- tags (提交tag)
1.本地校验,在当前私有库目录下,输入命令:
pod lib lint --private --allow-warnings
校验成功:SYBasicComponents passed validation.
2.远程验证,在当前私有库目录下,输入命令:
pod spec lint --private --allow-warnings
校验成功:SYBasicComponents.podspec passed validation.
8.提交索引文件到远程索引库
1.所有验证通过之后,要将spec文件推送到最开始创建的私有库索引库当中
cd 到私有库项目目录,
pod repo push <本地索引库名称> <索引文件名> --allow-warnings
<本地索引库名称>在 /Users/sunshiyu/.cocoapods/repos 下的私有库索引项目名称
<索引文件名>就是以 podspec 结尾的,注意不要弄错
例如输入命令:
pod repo push SYComponentSpec SYBasicComponents.podspec --allow-warnings
2.推送去之后,在本地索引库中查看如下图:
在 getee
远端查看如下图:
随便创建一个项目名为 SYSpecDemo
,初始化 pod
:
cd /Users/sunshiyu/Desktop/SYSpecDemo
pod init
pod install
打开编辑 podfile
文件
open podfile
如下:
# Uncomment the next line to define a global platform for your project
platform :ios, '11.0'
# source 添加对应的索引库,否则会pod install失败
source 'https://gitee.com/sun-shiyu/sycomponent-spec.git'
target 'SYSpecDemo' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for SYSpecDemo
# pod 对应组件,可以对应版本
pod 'SYBasicComponents'
end
再次:
pod install
导入头文件使用该库:
#import <SYBasicComponents/SYLog.h>
// 打印 log
[SYLog logger];
结束!!!
参考:
iOS私有库搭建
iOS组件化搭建私有库