【iOS】发布开源库到Cocoapods全过程

发布自己的开源库到Cocoapods及部分常见错误 1. 注册cocoapods。pod trunk register 邮箱 '名字(起个名字)' --verbose。2. 上传封装好的库到GitHub。将封装好的开源库上传到GitHub,并打上tag标签。3. 创建 .podspec文件。pod spec create RHKit。4. 修改 .podspec 文件。5. 验证 .podspec 文件。pod spec lint RHKit.podspec。6. 发布到cocoapods。pod trunk push RHKit.podspec。... 阅读详情

【iOS】发布开源库到Cocoapods全过程

1. 废话

LemonBest4iOS-Objc版本基本测试已经完成,今天就和大家一起把我们的LemonBest的0.0.1版本发布到Cocoapods中,相信有很多小伙伴天天在使用Cocoapods,但是对一个开源库是怎么发布到Cocoapods仓库中的还不是特别了解,接下来我们就演示全过程,解开这个神秘但是却一点技术含量都没有的面纱~

2. 检查代码

在发布之前,我们首先要检查一下我们的代码,把编译选项切换成Release模式

setSchema

设置Release

unity-tweak-tool

设置完之后Close,我们编译一下我们的代码,快捷键是Command+B,编译成功,没有Error,但是有一个Warning,我们查看一下在哪里

setSchema

通常,我们为了让别人集成我们的开源库后没有这些可恶的Warning或者防止在一会发布到Cocoapods时候编译器提示我们各种烦人的警告信息,我们先把这个警告给解决掉,修改如下代码:

setSchema

在这里因为我们可以确认不会存在问题,所以我们使用了C语言编译器的宏 #pragma clang来告诉编译器,不提示这个警告,代码格式如下:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "XXXX要跳过警告的类型"
                // xxxx要跳过编译警告的代码
#pragma clang diagnostic pop

setSchema

如上图,已经搞定,警告没有啦,我们继续!

3. 梳理文件结构

podspec文件是描述你项目相关信息的文件,这些都是给Cocoapods看的,所以文件名后缀是固定的,我们可以通过命令pod spec create LemonBest来创建podspec文件,也可以手动创建文件,然后我们自己来写里面的内容,默认通过命令创建的podspec文件里面会有非常多的配置,对于新手来说,可能会让你处于大写的懵的状态,所以建议你可以选择一个比较精简的模板,来进行修改,比如说使用下面这段代码,粘贴到你的podspec文件中,然后修改成你自己的具体项目配置:

Pod::Spec.new do |s|
  # 项目的名称,注意要和项目名一致,而不是和Github仓库名一致!
  s.name             = "LemonBest"
  # 项目的版本号,要保持和git上的版本号一致哦
  s.version          = "0.0.1"
  # 项目的摘要信息
  s.summary          = "一个全平台的(还有Android和Swift版本哦)的统一UI样式的选择器控件。"
  # 项目的介绍
  s.description      = <<-DESC
                       一个全平台的统一UI样式的选择器控件,他有点类似于微信的选择器控件。
                       他强大的可定制性相信会让你感兴趣,况且还是支持Android和Swift版本的呢?
                       让你的项目Android和iOS始终保持一样的UI用户体验!
                       DESC
  # 项目的主页
  s.homepage         = "https://github.com/1em0nsOft/LemonBest4iOS"
  # 所遵守的协议,比如MIT或Apache等
  s.license          = 'MIT'
  # 作者信息哦
  s.author           = { "1em0nsOft-Liuri" => "liuri@lemonsoft.net" }
  # 项目托管地址,因为我的项目在github上,所以下面这么写
  s.source           = { :git => "https://github.com/1em0nsOft/LemonBest4iOS.git", :tag => s.version.to_s }
  # 最低支持的iOS版本
  s.platform     = :ios, '8.0'
  # 是否使用ARC了
  s.requires_arc = true
  # 源代码目录,以podspec文件为相对根目录进行填写!
  s.source_files = 'LemonBest/LemonBest/*'
  # 需要引入的框架
  s.frameworks = 'Foundation', 'CoreGraphics', 'UIKit'

end

前面带#的行都是注释,你可以复制过去之后把这些行删了~需要注意的是那个协议,我写的是MIT,你要保证你项目中的协议要和你写的是一致的哦,Cocoapods在你发布的时候会检查的,你可以在Github中创建项目的时候直接勾选创建:

setSchema

如果你当时创建项目的时候没有勾选这个,也不要急,你可以现在在Github中新建一个其他项目, 勾选上你要的协议,然后创建后的项目中的协议文件你可以直接复制过来用。或者你更懒的话,你可以直接在Github上找一个别人的项目,直接把协议文件复制过来,然后打开,改成你的名字,别忘了!改成你的名字!

license-content

总之,最后文件结构要是这样滴,保证有LICENSE文件:

license-content

4. 提交代码

万事俱备,只欠提交。我们提交分两个步骤,第一步是先确定一下,我们要发布的代码提交到Github中。

license-content

代码保证提交成功之后,我们把我们的代码打上一个Tag版本号,这个版本号要和我们之前在podspec中的版本号保证一致哦!一定要注意!!!

# 项目的版本号,要保持和git上的版本号一致哦
  s.version          = "0.0.1"

license-content

接下来,我们就该提交我们的代码到Cocoapods啦。如果你已经注册了Cocoapods,那么这步可以忽略,如果还没有,那么请您照做,命令行中执行下面的命令:

pod trunk register liuri@lemonsoft.net 'lemonsoft' --description='iAmLemonsoft'
# 注意替换邮箱、用户名和描述信息,换成你的个人信息

如果执行成功,这个时候,你会在你刚才命令中写的邮箱中收到一封验证邮件,这个时候别忘了点链接激活一下,激活认证之后,使用下面命令来验证一下是否成功,如下图,就是成功啦:

license-content

注册用户之后,我们来继续完成提交的过程,在终端中切换到你的podspec文件所在目录,执行如下命令,开始验证你的配置信息是否正确:

pod spec lint LemonBest.podspec
# 后面LemomBest换成你对应的podspec文件名

license-content

出现以上信息,说明我们成功通过验证啦。如果没有通过,请你联系我的QQ:188443213,告诉我你的问题,我给你解决方案,我会把各种错误信息收集起来,总结一下各种问题的解决方案,方便大家交流学习。

如果没有问题,我们开始push代码,使用如下命令:

pod trunk push

如果你的代码有一些警告(黄色的warning提示),但是不影响你的实际功能,或在你的项目中引入了其他三方库,造成了警告,这时候如果你想忽略警告成功publish,请使用如下命令:

pod trunk push --allow-warnings

开始提交,需要等待一小会:

license-content

稍等一会之后,我们终于publish成功啦,如下图所示:

license-content

接下来我们来搜索一下我们的LemonBest,使用pod search LemonBest进行查询:

license-content

哎?怎么搜不到?哪里错了吗?不要急,pod search命令是对本地Cocoapods仓库的一个检索,因此你没有搜索到,你需要更新一下本地的Cocoapods仓库才能把最新的开源库信息拿到本地,使用如下命令:

pod repo update

这个绝对是个漫长的过程,即使你网速很快,估计也得等个一两分钟,慢慢来,不要急,一定要等到成功为止。如果你更新完了之后还是搜索不到,那是因为你的开源库也是需要审核滴,耐心等一会吧,半个小时、一个小时?这个时间不确定,我最长经历过三四个小时后才成功搜索到,最短也有时候刚发布就可以搜索到,看命吧,多等等,然后再次执行pod repo update。刚刚我试了下,也搜不到LemonBest,我们等一下。

半个小时后。。。

再次执行pod repo update,然后执行pod search LemonBest,成功搜索到了我们的刚发布的库:

license-content

到此为止,我们成功完成了发布一个开源库的完整步骤,怎么样,想不想试试呢?

如果你自己尝试过程中出现了各种问题,请你加我的QQ,188443213,一起交流,谢谢。

欢迎您关注我的公众号,柠檬软件,每天推送各种比较亲民的技术文章,感谢您的支持

unity-tweak-tool

AI:Coze、Dify、n8n:三款低代码工具如何选? Coze、Dify、n8n:三款低代码工具如何选? 阅读详情

相关推荐

GWAS与eQTL相结合,进一步筛选疾病相关基因

欢迎关注”生信修炼手册”!在GWAS分析结果中,大部分显著的SNP位点都位于非编码区,很难直接挖掘这些位点的调控机制。通常假设与疾病关联的SNP位点通过调控基因表达来发挥作用,而eQTL...

庐州月光的博客 1万+

cocoapods迭代版本时,出现问题

1. 问题1:[iOS] xcodebuild: Returned an unsuccessful exit code. You can use `--verbose` for more information. 解决:添加框架引用的系统框架到***.podsepc文件中国(主要引用的是framework,   C语言的库不用引用) s.frameworks =

天道酬勤 1万+

VisionMaster位置修正功能深度解析:如何让找圆工具自动跟随移动目标?

本文深度解析海康威视VisionMaster平台的位置修正功能,重点介绍如何通过模板匹配与找圆工具的智能联动实现移动目标的动态追踪。文章详细阐述了工业视觉检测中的坐标系同步原理、模板匹配配置技巧及异常处理策略,为工程师提供了一套完整的工业级解决方案。

uu89012的博客 281

C++14变量模板:从类型参数化到值参数化的泛型编程进阶

泛型编程是现代C++的核心范式之一,它通过模板技术实现代码的复用和类型安全。传统上,C++模板主要针对类型进行参数化,如类模板和函数模板,它们允许开发者编写独立于特定类型的通用代码。然而,在实际工程实践中,我们经常需要将“值”也作为模板参数,以实现更灵活的编译期常量和配置。C++14引入的变量模板正是为了解决这一需求,它允许直接定义模板化的变量,将泛型能力从类型扩展到值本身。这一特性在**类型特征(Type Traits)**的便捷访问、编译期计算以及泛型常量定义等场景中展现出巨大价值。例如,标准库中的`s

weixin_30682415的博客 368

如何在 Windows 11 上安装 ChatGPT:CMD + 图形界面两种方式

我没说在 Windows 11 上装 ChatGPT 应用有多难,但你要是知道有哪几种官方途径可用,事情就会顺一点,尤其是对新手。对大多数用户来说,商店应用就是正确的选择。如果你在受管理的设备上,或者想避开商店,那么通过 Edge 或 Chrome 装 PWA 是完全站得住脚的替代方案。不管你选哪条路,真正的收获都是把 ChatGPT 从浏览器标签页里挪出来,放进一个它真正像个工具的地方。把它固定到任务栏、配好 Alt + 空格,你就会纳闷以前没它是怎么干活的。

山岚的运维笔记 292

【推荐算法】召回模型总结

【推荐算法】召回模型总结

m0_48086806的博客 6241

最近在看cocoa

学习一下,很不错的框架。

闲来无事 476

【Matlab】从零开始掌握 MATLAB 安装激活:从环境搭建到问题解决全指南

打开 MATLAB,点击 “主页 - 设置路径”;点击 “添加文件夹”,选择自定义的工作文件夹,点击 “保存”,重启 MATLAB 生效。MATLAB R2024a 的安装与激活是开启 MATLAB 学习的第一步,也是构建稳定学习环境的基础。本文从安装前准备、分步操作、验证测试、问题解决到环境优化,完整覆盖了新手所需的所有知识点 —— 核心要点在于:确认系统兼容、使用合法授权、选择纯英文安装路径、完成功能验证。

unber的博客 596

发布自己的开源库到Cocoapods

作为一个iOS开发者,Cocoapods是我们再熟悉不过的了。pods上有很多优秀的第三方库,一行代码就可以很方便地使用。既然它这么方便,我们何不上传自己的开源库上去跟大家分享呢?所以,这篇我们来学习下如何把自己的开源库上传到Cocoapods供其他Developer使用。 另外:如果你还不会使用Cocoapods,推荐你看一看我的另一篇文章:cocoapods第三方库管理工具 #Podspe...

weixin_34023863的博客 120

Robot Framework 7.0 报告解析

本文深入解析 Robot Framework 7.0 新增的 JSON 报告功能,手把手教你如何从 output.xml 转换为结构清晰的 output.json,并通过 Python 脚本提取关键测试指标。文章附完整示例、命令、解析脚本,支持导出为 CSV 和 Markdown,方便接入可视化看板、群通知和 CI 流程。适用于测试自动化、质量平台建设和回归趋势分析场景。

点点寒彬的博客 264

【毕设实战】飞行器目标识别系统:基于YOLOv5的智能检测全流程教程,助你毕设脱颖而出

本文介绍了一个基于YOLOv5的飞行器目标识别系统的开发过程。系统包含数据采集与标注、模型训练、实时检测和UI界面四大模块。文章详细讲解了从环境搭建、数据标注到YOLOv5模型训练的全流程,包括如何划分数据集、配置参数和测试模型性能。同时提供了实时检测代码示例和UI界面开发思路,使读者能够快速实现一个完整的智能检测系统。该系统可应用于军事侦察、民用巡检等领域,具有较高的实用价值,适合作为计算机视觉相关的毕业设计项目。

FJN110的博客 108

iOS - 发布开源库到CocoaPods

发布自己的开源库到CocoaPods

chaneylauok的博客 506

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

CocoaPods iOS 开源库管理

1、CocoaPods 简介 1.1 CocoaPods CocoaPods 是 macOS 和 iOS 下的一个第三类库管理工具,通过 CocoaPods 工具我们可以为项目添加被称为 “Pods” 的依赖库(这些类库必须是 CocoaPods 本身所支持的),并且可以轻松管理其版本。 CocoaPods 的项目源码和依赖库在 Github 上管理。该项目开始于 2011 年 8 月...

rstbfveradsvc 478

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

iOS 必备工具 - CocoaPods

一、CocoaPods是什么 问题在IOS开发过程中,经常会使用到第三方框架,通常都是去GitHub上下载相关的框架,导入工程并添加框架所依赖的framework,那么问题就出现了,如何解决工程所依赖的framework的重复性,并且当三方框架更新时,需要我们手动的删除旧的框架、重新下载框架的最新版本,添加依赖的库,这过程繁琐而又易错。那有没有什么好的工具来解决上述的问题呢?答案是有的,就是Coco

LOLITA0164的博客 2万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

使用CocoaPods创建开源库和私有库详解

笔者看了许多关于使用CocoaPods创建开源库的文章,大都写的不尽详细,尤其是对于从来没有创建过开源库的同学,不知道哪个步骤文章没写,在验证 .podspec 文件时就一堆错误,一脸懵逼。本文是一篇从零开始创建一个自己的开源库分享,如有问题,评论交流。 首先,你需要注册一个CocoaPods账号,email使用你的GitHub邮箱,起一个用户名,打开终端: pod trunk register ...

Andy Coding 1506

选择数据库技术:一份文档数据库 ADR 的完整解读与实战模板

本指南以 architecture-decision-record 仓库中收录的《Choosing a Database Technology》示例 ADR 为核心,完整讲解关系型、文档型、事件型三类数据库的选型对比,以及如何用 ADR(架构决策记录)把"为什么选它"固化下来。读完本文,你将掌握该示例 ADR 的完整结构(Context → Decision → Rationale → Conse

gitblog_00597的博客 747

iOS 创建自己的开源库

创建一个framework工程,把需要的代码放到该工程里创建一个git库用于托管开源库的代码注册cocoapods(trunk)创建并编辑.podspec文件创建并编辑license文件将所有文件上传git打tag验证.podspec文件发布验证是否发布成功。

sgliquangang的专栏 898

iOS中CocoaPods安装和使用指南

1.CocoaPods是什么? 2.如何下载和an'z

人生起落,生活苦甜,坚持追求! 1807

iOS 构建Cocoapods开源库

内容概览 创建Pod模板项目; 定制podspec; 安装和配置fastlane; 配置travis.yml; 上传到公共库Cocoapods; 创建模板项目 使用Pod的模板,创建项目: pod lib create LibraryName 例如,现在要创建DemoLibrary。用命令行执行以下命令: pod lib create Demo...

Ficow Shen 300

CocoaPods创建自己的开源库和私有库

通过CocoaPods创建开源库、私有库,最关键的是*.podspec的编写。 如果电脑上还未安装CocoaPods,可以参考:新版CocoaPods的安装。创建项目和.podspec文件如果你已经有了项目代码,可以使用pod命令创建.podspec:# 项目路径下 pod spec create 'KMPinHeaderLayout'如果还没有项目,可以使用:pod lib create 'KM

烂笔头 1112

如何让自己的开源库支持cocoapods?

现在很多的第三方库都支持cocoapods。当我们将自己的开源库放在github上后,为了增加使用量,首先要做的就是让自己的开源库支持cocoapods。 cocoapods 现在我们假设已经将自己的代码上传到了github,接下来,打开终端,一步步实现我们的目标。 1.创建.Po...

chuomengkun7851的博客 181

iOS开发-GitHub项目添加CocoaPods支持

流程步骤 注册trunk 在Github上传相关的代码库 创建podspec配置文件 验证是否可用 trunk push 代码到 CocoaPods 上传成功后检查是否可用 注册trunk 想让Cocoapods支持你自己的工具代码库,需要一个CocoaPods账号。 注册命令: pod trunk register 你的邮箱地址 ‘用户名’ --description='描述...

NYH1006的专栏 438
上一篇: 【iOS】block作为属性时候的坑
下一篇: 零基础学C++[001]-编程中的基本概念
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值