实录之Cocoapods发布第一个自己的库

简介: 自己做开发也快五年了,基本都是在做公司的业务逻辑。这期间也收集了一些开发过程中比较好用的一些方法。把他们都放在了我之前写的一个轮子上面。[ZPCategory](https://github.com/cAibDe/ZPCategory) 以前基本都只是写轮子到自己的[Github](https://github.com/cAibDe)上面需要用的时候就在下载下来,然后拖入到需要的项目中去。逐渐发现这样有点麻烦了。就准备自己发布一个库,反正基本开发过的项目都用Cocoapods。这样可以一劳永逸。

前言

自己做开发也快五年了,基本都是在做公司的业务逻辑。这期间也收集了一些开发过程中比较好用的一些方法。把他们都放在了我之前写的一个轮子上面。ZPCategory
以前基本都只是写轮子到自己的Github上面需要用的时候就在下载下来,然后拖入到需要的项目中去。逐渐发现这样有点麻烦了。就准备自己发布一个库,反正基本开发过的项目都用Cocoapods。这样可以一劳永逸。

起步

这也是我第一次弄这个东西,我就先上网找了好多文章。
链接:
1.iOS-如何将自己的动态库上传到CocoaPods
2.iOS 开发 - 亲身经历告诉你如何把自己的库通过pod导入(详细步骤)
3.CocoaPods 操作过程中出现的错误

因为我一般都把轮子放到了自己的GitHub上面,就直接打算通过GItHub发布了,如果是自己公司的项目,可以发布到自己的git地址下面,只不过就是需要在你的podfile文件里面增加source地址。

准备账号

在GitHub上面申请一个你自己的账号,就和普通的账号申请差不多逐步操作就行了。注册完成之后会有个一邮箱验证的过程,记得点击一下邮件的链接就好了。

创建仓库

创建正好成功之后,就是在自己的账号下面加一个仓库。
创建仓库的入口
点击图片的按钮你就可以创建你自己的仓库了。

这就是创建库有需要了解的东西,在图片上也基本都写的很清楚了,剩下不懂得可以在下面的评论中一起讨论。

上传代码

你把你的源代码上传上去就好了,你可以用终端命令行操作,也可以用可视化软件
操作和Tower、SourceTree差不多。

注册Trunk账号

说实话,这个是干嘛的我还不是很清楚,但是我看都需要。同时,你还要注意一下你的 pod的版本,以为这个trunk是对pod版本有要求的。要大于0.33。如果低于0.33就升级一下。
前面如果没问题那么就执行下面的操作

pod trunk register 你自己的邮箱 '你自己的用户名' --description='imac' --verbose

这里我写的都是我GitHub的,如果你是自己的git 就填写相应的就行吧。(没操作过)
然后检测一下自己是不是注册成功了

pod trunk me

如果出现下面这样的内容,那么久恭喜你,成功了,可以进行下一步!

这张图是借用别人的,因为昨天操作的时候没有留下自己的。

配置podspec文件

1.添加podspec文件
首先,我们打开终端,cd到我们的项目目录下,执行

pod spec create 项目名称

成功之后,会在你的项目目录下增加一个.podspec文件

2.修改文件配置
这里呢有很多的属性配置,网上也有很多的教程,就是我文章一开始提到的那三个文章里面也有解释。我这边就不做过多的赘述了。

3.验证.podspec文件的正确性
在这一步中会遇到很多的问题,终端也会一一的给你罗列出来。你就根据他们的错误描述,去一一修改就可以了。因为每个人的问题也不可能是一样的。这里也有个文章链接,是这个过程中遇到的错误,如果这里面有能办到的你就省事儿了,如果没有那就需要自己的动手去查了。(文章的链接地址)

4.如果上面的验证你通过了,这个时候你就去给你的醒目打个tag就行了。方式有很多,可以终端,也可以自己去Github上面自己去打.

5.通过trunk推送podspec文件

pod trunk push 你的项目.podspec

这个可能比较消耗时间。但是如果出现了下面的字样
那么就证明成功了。

搜索自己的库

如果上面的步骤你都一一完成了,那么我们就可以在搜索到你的库了。

pod search 你的库名称
相关文章
|
Java Linux Shell
Gradle下载和配置教程:Windows、Mac和Linux系统安装指南
Gradle下载和配置教程:Windows、Mac和Linux系统安装指南
2221 0
|
数据采集 人工智能 物联网
【大模型】如何诊断和解决LLM 开始生成令人反感或与事实不符的输出?
【5月更文挑战第7天】【大模型】如何诊断和解决LLM 开始生成令人反感或与事实不符的输出?
|
关系型数据库 MySQL Java
Mysql数据类型TINYINT(1)与BOOLEAN踩坑记
Mysql数据类型TINYINT(1)与BOOLEAN踩坑记 熟悉Mysql的同学应该都知道,Mysql查询的boolean结果将输出为0或者1.   比如: select 1=1;   其输出结果为1。
7516 0
|
存储 数据库 双11
数据库的三大范式及其重要性,详细易懂
数据库的三大范式及其重要性,详细易懂
2266 0
|
人工智能 程序员 C#
通过简单原理增强软件可靠性
通过简单原理增强软件可靠性
|
前端开发 JavaScript
从0搭建Vue3组件库之Icon组件
从0搭建Vue3组件库之Icon组件
935 0
|
JSON 移动开发 小程序
【知识】Uni-app-学习笔记 04
【知识】Uni-app-学习笔记 04
519 0
【知识】Uni-app-学习笔记 04
|
JavaScript 前端开发
【JavaScript】12_对象的属性与对象字面量
# 2、对象的属性 ## 属性名 - 通常属性名就是一个字符串,所以属性名可以是任何值,没有什么特殊要求 但是如果你的属性名太特殊了,不能直接使用,需要使用[]来设置 虽然如此,但是我们还是强烈建议属性名也按照标识符的规范命名 - 也可以使用符号(symbol)作为属性名,来添加属性 获取这种属性时,也必须使用symbol **使用symbol添加的属性,通常是那些不希望被外界访问的属性** - **使用[]去操作属性时,可以使用变量** ## 属性值 - 对象的属性值可以是任意的数据类型,也可以是一个对象 使用typeof检查一个对象时,会返回object
203 0