cocoapods私有库创建流程

2020-08-19  本文已影响0人  凡凡_c009

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老源

上一篇下一篇

猜你喜欢

热点阅读