创建本地私有库
1 创建空目录
$ mkdir FFTest
$ cd FFTest
2 创建子工程
$ pod lib create FFTest
To get you started we need to ask a few questions, this should only take a minute.
If this is your first time we recommend running through with the guide:
- https://guides.cocoapods.org/making/using-pod-lib-create.html
( hold cmd and click links to open in a browser. )
// 组件平台,输入iOS
What platform do you want to use?? [ iOS / macOS ]
> iOS
// 组件语言,输入ObjC
What language do you want to use?? [ Swift / ObjC ]
> ObjC
// 是否包含一个Demo程序,输入Yes
Would you like to include a demo application with your library? [ Yes / No ]
> Yes
// 测试框架,输入Kiwi
Which testing frameworks will you use? [ Specta / Kiwi / None ]
> Kiwi
// 是否包含界面测试,输入Yes
Would you like to do view based testing? [ Yes / No ]
> Yes
// 类名前缀,这里输入FF
What is your class prefix?
> FF
3 之后等待CocoaPods建立demo工程,最后CocoaPod会帮你打开Xcode,这时候我们先关掉,因为这个demo工程帮助我们建立了git文件,这里会跟一会需要clone到本地的git仓库冲突,需要先删除 .git 文件夹。
4 打开项目选中podspec后缀名的文件,去掉注释保留以下内容
Pod::Spec.new do |s|
# 项目名
s.name = 'FFTest'
# 版本号
s.version = '0.1.0'
# 简单描述
s.summary = 'A short description of FFTest.'
# 详细描述
s.description = ''
# 项目的主页
s.homepage = 'https://github.com/******/FFTest'
# 项目遵守的协议
s.license = { :type => 'MIT', :file => 'LICENSE' }
# 作者的邮箱
s.author = { '邮箱' => '***' }
# git仓库地址
s.source = { :git => 'https://github.com/******/FFTest.git', :tag => s.version.to_s }
# 项目的最低版本支持
s.ios.deployment_target = '8.0'
# 表示源文件的路径,这个路径是相对podspec文件而言的。
s.source_files = 'FFTest/Classes/**/*'
end
首先修改s.source,把:git中的地址改为你新建git仓库的地址,例如这样:
s.source = { :git => 'https://github.com/******/FFTest.git', :tag => s.version.to_s }
s.source_files是组件中的源代码,可以指定为一个目录、或者数组表示多个目录、或者指定文件:
# 多个目录
s.source_files = 'FFTest/Classes/*.{h,m}', 'FFTest/UI/*.{h,m}'
# Classes以及的Classes的子文件夹下的所有文件
s.source_files = 'FFTest/Classes/**/*'
# 只是Classes目录
s.source_files = 'FFTest/Classes/*'
感兴趣的同学可以去cocopods关于podspec的介绍 进一步了解
5 在Example文件夹下执行命令pod install就可以了,这样这个Demo组件工程的准备工作就结束了
6 项目结构
Example:demo项目工程,用来编写和测试子工程
FFTest:子工程,给宿主工程用
创建远程私有库
1 验证本地podspec文件
$ pod lib lint --allow-warnings
如果有error 就得先解决error
2 本地校验成功后,推送至远端
$ git remote add origin git@******/FFTest.git
$ git pull origin master
3 打tag
$ git tag -m '0.1.0标签' -a 0.1.0
$ git push --tags
tag要和podspec文件里面的s.version对应起来。
4 验证远程podspec文件
$ pod spec lint
pod lib lint和pod spec lint的区别是前者只会检验本地的pod,后者是本地和远端都会检验
5 创建本地索引
进入~/.cocoapods/repos
目录,创建自己私有的Spec Repo
$ pod repo add FFSpecs git@github.com:******/FFSpec.git
6 推送至索引库
远端和本地都校验通过后就要将FFTest.podspec推送至FFSpec仓库中
$ pod repo push FFSpecs FFTest.podspec
7 验证一下
$ pod search FFTest