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

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容