cocoapod创建私有库

创建本地私有库

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:子工程,给宿主工程用
image.png
创建远程私有库

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 [email protected]:******/FFSpec.git

6 推送至索引库
远端和本地都校验通过后就要将FFTest.podspec推送至FFSpec仓库中

$ pod repo push FFSpecs FFTest.podspec

7 验证一下

$ pod search FFTest
image.png

你可能感兴趣的:(cocoapod创建私有库)