cocoapods私有库创建流程
Cocoapods注册Trunk
如果你想创建一个私有库或者发布一个公有的pod库之前,你需要一个Cocoapods Trunk。注册流程如下
# 下面命令包括[]在内的内容需根据自己信息输入
$ pod trunk regist [your-email] '[your-name]' --description='[your-desc]'
> [your-email]:任意邮箱
> [your-name]:任意名字
> [your-desc]:一个简单的描述
//注册完成后,你可以通过下面命令查看信息
$ pod trunk me
一、创建一个私有库
创建私有库需要有2个私有仓库,一个放podspec文件,一个放代码文件
仓库截图
1.1 在码云上创建一个私有索引项目
首先在码云上创建一个私有的SpecKit项目,用于存放podspec文件。因为是私有库,所以你想让别人使用需要给使用的人添加权限,既将对方添加到该项目中就可以了。
地址:https://gitee.com/fanfan11/YZSpecKit.git
1.2 将托管平台的索引库地址添加到本地的repo仓库中
pod repo add [本地文件名字] [远程Git地址]
$ pod repo add YZNBaseKit https://gitee.com/fanfan11/YZSpecKit.git
执行上面命令后在~/.cocoapods/repos路径下会存在一个YZNBaseKit文件夹。
2.1 在码云上创建一个私有项目
按照步骤1.1中创建另一个私有的YZNCommonView项目,用于存放pos库中的代码文件。
地址:https://gitee.com/fanfan11/YZNCommonView.git
2.2模板初始化
进入指定的目录,在ternimal中执行
pod lib create [pod 库的名字]
该命令其实是下载了一个pod模板,然后在内部通过更改.podspec文件的配置定制化自己的pod
$ pod lib create YZNCommonView
执行以上命令需要填写以下问题
根据自己情况回答
执行完成后可以在你的目录文件下多了一个YZNCommonView文件夹,内部文件内容如下
文件夹内容
将编写代码放入文件夹中,进入Example文件夹中执行pod install,成功后打开workspace文件,pod文件夹下已经存在你编写的代码文件了
pod库代码
2.3修改podspec配置文件
关键字 | 含义 | 必填 |
---|---|---|
name | 框架名 | 是 |
version | 框架版本号 | 是 |
summary | 框架简介 | 是 |
description | 框架详细介绍 | 是 |
homepage | 主页 | 是 |
license | 开源协议 | 是 |
author | 作者 | 是 |
source | 源码Git地址 | 是 |
source_files | 源码文件位置 | 是 |
deployment_target | 支持版本 | 是 |
frameworks | 依赖的系统框架 | 否 |
vendored_frameworks | 依赖的非系统框架 | 否 |
libraries | 依赖的系统静态库 | 否 |
vendored_libraries | 依赖的非系统静态库 | 否 |
dependency | 依赖的第三方库 | 否 |
这里再添加一点,可以创建subspec。subspec可以将库进行拆分,只导入部分代码,并且在使用时分文件夹。
使用方式:pod 'YZNCommonView/YZNComView'
s.subspec 'YZNComView' do |ss|
ss. source_files = 'YZNCommonView/Classes/CommonView/*'
# ss. dependency = ''
# ss. libraries = ''
end
2.4将项目代码提交到码云上
1、初始化git版本库:git init
2、添加文件到本地库:git add .
3、提交文件到本地库:git commit -m "msg(提交日志)"
4、关联远程库:git remote add origin(可修改) branch_Name(为空时默认为master) url
关联之后可以用git remote -v 来检查是否关联成功
5、一般情况需要先pull一下:git pull origin master
一般情况下含有共同文件时需要执行 git merge origin/master --allow-unrelated-histories
这之后解决一下冲突,重新提交
6、push到远程库:git push -u origin master
创建tag
$ git tag -a 0.0.1 -m "xxx"
$ git push origin --tags
2.5向索引库提交spec文件
验证本地和远程忽略警告
$ pod lib lint --allow-warnings
$ pod spec lint --allow-warnings
有些非语法错误是不会给出错误原因的。这个时候可以使用“--verbose”来查看详细的验证过程来帮助定位错误。
pod lib lint --verbose
包含.a静态库,虽然这并不影响Pod的使用,但是验证是无法通过的。可以通过 --use-libraries 来让验证通过。
pod lib lint --verbose --use-libraries --allow-warnings
当依赖库中有私有库的情况
pod lib lint --no-clean --allow-warnings --use-libraries --sources='https://github.com/CocoaPods/Specs.git,https://gitee.com/fanfan11/YZSpecKit.git'
pod spec lint --no-clean --allow-warnings --use-libraries --sources='https://github.com/CocoaPods/Specs.git,https://gitee.com/fanfan11/YZSpecKit.git'
验证通过后,提交spec文件
pod repo push YZNBaseKit YZNCommonView.podspec --verbose --use-libraries --allow-warnings
执行上面命令是将YZNCommonView.podspec文件添加到.cocoapods/repo/YZNBaseKit中并提交到远程仓库。
最后:
包含私有库,公有库也要写source。如果用trunk源 source 'https://cdn.cocoapods.org/'
source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git' //清华源
source 'https://github.com/CocoaPods/Specs.git' //cocoapods老源