一、前言
这两天被cocoapods折磨的心力憔悴。看cocoapods官网的添加支持,但是介绍的(ying)比(yu)较(tai)简(cha)单,而且有的步骤也没有写上,导致看着官方文档也没有成功,后来查阅了简书、CocoaChina等等,还是已经接近崩溃。没有一个完整的介绍。索性多个文档对比测试,最后终于成功的让自己Github上的库成功支持Cocoapods安装。
 
二、开始
这里我将从最初的开始进行介绍,包括Github上创建项目已经上传项目,到最后的支持Cocoapods。
步骤如下:
  • 代码上传Github
  • 创建podspec文件,并验证是否通过
  • 在Github上创建release版本
  • 注册CocoaPods账号
  • 上传代码到CocoaPods
  • 检查上传是否成功
1 代码上传Github
首先我们打开github.com,然后创建自己的项目工程:

这里注意那个MIT License,在后面添加Cocoapods支持的时候会用到(稍后介绍)。然后点击创建即可。
然后用SouceTree将代码down到本地,将自己的项目放到里面,文件夹如图所示:

这里的LICENSE就是刚才说的MIT License添加的文件。RSADemo是示例工程,ZGRSAEncryptor就是提供给他人使用的库。(ZGEncrptor(For java).zip是后端的代码)
然后提交到Github就可以了。
 
2创建podspec文件
我们使用终端到工程目录下:

然后执行下面的命令:
pod spec create ZGRSAEncryptor

这里的ZGRSAEncryptor就是pod添加市的名字(例如MBProgressHUD)。执行完后的结果:

此时在工程文件夹下也会多一个ZGRSAEncryptor.podspec文件。这里我用Sublime Text打开并做了如下编辑:
Pod::Spec.new do |s|
s.name = "ZGRSAEncryptor"
s.version = "1.0.0"
s.summary = "A Library for iOS to use for RSA encryptor."
s.homepage = "https://github.com/ScottZg/ZGRSAEncryptor"
s.license = "MIT"
s.author = { "scottzg" => "scottzg@126.com" }
s.source = { :git => "https://github.com/ScottZg/ZGRSAEncryptor.git", :tag => "#{s.version}" }
s.source_files = "ZGRSAEncryptor/*.{h,m}"
end
name:类库的名称这里字段介绍如下:
version:库的版本
summary就是介绍语,就是:

homtepage:Github上项目地址
license:许可证
author:作者
source:项目的https链接地址
source_files:要共享的代码,这里是ZGRSAEncryptor下面的所有代码。
接下来执行下面的命令进行验证:
pod lib lint ZGRSAEncryptor.podspec
结果多种多样,如果有错,则按照提示进行改错即可。在这里,我执行的结果如下图: 

发现了多个警告,只要不是错误就行,警告可以直接忽略(红色也提示如何忽略):
pod lib lint ZGRSAEncryptor.podspec —allow-warnings
结果如下:
当看到ZGRSAEncryptor passed validation之后,就说明验证通过了。
 
3 在Github上创建release版本
打开项目的目录,然后创建release版本的类库:
 

点击 箭头指向开始创建release版本,(点击 Create a new release):

点击Publish release即可。创建完成后如图所示:
这样第三步就完成了
 
4 注册CocoaPods账号
执行命令行:
pod trunk register 邮箱地址 ‘用户名’ —description='描述信息'
执行完之后结果如下:

黄色提示已经发送了一个验证码到邮箱,你可以打开你的邮箱验证即可。打开邮件中的链接后如下:

这样就成功注册了Cocoapods账号。
可以用
pod trunk me

检查是否创建成功。成功的结果如下:

5 上传代码到CocoaPods

首先检测文件格式的有效性:
pod spec lint
结果如下: 

没有错误,但是有警告。可以使用 —allow-warnings忽略:

出现passed validation就说明通过验证了。然后执行:
pod trunk push ZGRSAEncryptor.podspec —allow-warnings
执行结果如下:(速度应该有的慢)

说明了已经上传成功。
 
6 检查上传是否成功
使用
pod search ZGRSAEncryptor
结果如下:
ok,已经成功了。这样就可以让其他人进行搜索使用了。
 
三、总结
百度、Google了多篇文档,然后进行总结,终于实现了构建自己的Cocoapods库。如果想了解如何构建公司私有库,可以查看:

使用私有Pod Spec的类库--提高公司开发效率

 
四、参考文档:

把自己Github上的代码添加Cocoapods支持的更多相关文章

  1. 把上传Github的代码添加Cocoapods支持

    开始 这里我将从最初的开始进行介绍,包括Github上创建项目已经上传项目,到最后的支持Cocoapods. 步骤如下: 代码上传Github 创建podspec文件,并验证是否通过 在Github上 ...

  2. 【iOS 使用github上传代码】详解

    [iOS 使用github上传代码]详解 一.github创建新工程 二.直接添加文件 三.通过https 和 SSH 操作两种方式上传工程 3.1https 和 SSH 的区别: 3.1.1.前者可 ...

  3. 使用Windows下的git工具往github上传代码 踩坑记录

    使用Windows下的git工具往github上传代码 踩坑记录 背景 由于以前接触的项目都是通过svn进行版本控制,现在公司项目使用git,加上自己平时有一个练手小项目,趁着周末试着把项目上传到自己 ...

  4. Git 学习笔记之(一) 使用 git gui 从github上下载代码

    背景: 目前一些开源代码均在 GitHub上管理的,包括自己写的代码也可以放在上面进行管理.但问题是,当你换一台电脑,想要将你自己放在 GitHub 上的代码工程下载下来的时候,会遇到各种问题,目前可 ...

  5. Github上传代码菜鸟超详细教程【转】

    最近需要将课设代码上传到Github上,之前只是用来fork别人的代码. 这篇文章写得是windows下的使用方法. 第一步:创建Github新账户 第二步:新建仓库 第三部:填写名称,简介(可选), ...

  6. 将 GitHub 上的代码向 Coding 更新

    问题: 从 GitHub 上 clone 代码到本地很慢,10 KB/s 左右,为了解决这个问题,尝试将 GitHub 上的代码通过离线下载的方式,用百度云和115网盘下载,经常失败,弃之~ 国内也有 ...

  7. IDEA上使用github上传代码

    这里的origin是表示我创建一个名为origin的仓库吗? 早已经存在了,我该怎么删除这个wenda呢? 将它修改为wenda1,如下: 点击项目,右击: 再点击项目,右击,选择commit: 问题 ...

  8. 更新github上的代码

    昨晚熬夜写完了"git上传本地项目代码到github"的任务,早上来公司先把早上的工作完成后,抽点时间继续来继续更新文章 更新github上的代码 一.克隆代码 1.把大神的代码c ...

  9. 【01】在 Github 上编辑代码

    [01]在 Github 上编辑代码 当你使用 GitHub,看一些文件(任何的文本文件或者仓库),能看到一个顶部右侧有一个小铅笔图标.点击即可编辑文档. 完成后,按照提示点击「Propose fil ...

随机推荐

  1. Hibernate学习之——Hibernate环境搭建

    之前在写关于安卓闹钟的教程,写了一半就没后一半了,其实自己也没做好,在校外实习,校内毕业实习又有任务,只能先放放了,等毕业实习结束之后,在继续安卓闹钟开发之旅,相信这个时间不会很久的.现在毕业实习用到 ...

  2. C语言实现控制台中光标随意移动

    开始准备学习下C,新手哦~~ 今天弄了个控制台程序,光标可以随意在DOS下移动~~ 先放一张效果图,不过很丑,大家能不能看懂,哈哈,就是 I Love You. 代码注释都有,其实好多东西我都是从其他 ...

  3. linux源码分析(三)-start_kernel

    前置:这里使用的linux版本是4.8,x86体系. start_kernel是过了引导阶段,进入到了内核启动阶段的入口.函数在init/main.c中. set_task_stack_end_mag ...

  4. Hibernate —— Session

    一.概述 Session 是 Hibernate 向应用程序提供操纵数据的主要接口,它提供了基本的保存.更新.删除和加载 Java 对象的方法. 二.Session 缓存 1.简介 (1)Sessio ...

  5. 用户反馈:对 Rafy 开发框架的一些个人建议

      这篇文章是去年 Rafy 框架发布后,许胜平先生为我提出的一些建议.他从用户群体分析.社区.商业模式.技术支持等方面对框架发展提出了建议,我觉得写得非常不错.此文不仅适用于 Rafy 框架,所以不 ...

  6. asp.net留言板项目源代码下载

    HoverTree是一个asp.net开源项目,实现了留言板功能. 前台体验网址:http://hovertree.com/guestbook/ 后台请下载源代码安装. 默认用户名:keleyi 默认 ...

  7. SQL Server中的GUID

    GUID(Global unique identifier)全局唯一标识符,它是由网卡上的标识数字(每个网卡都有唯一的标识号)以及 CPU 时钟的唯一数字生成的的一个 16 字节的二进制值. GUID ...

  8. 【C#进阶系列】29 混合线程同步构造

    上一章讲了基元线程同步构造,而其它的线程同步构造都是基于这些基元线程同步构造的,并且一般都合并了用户模式和内核模式构造,我们称之为混合线程同步构造. 在没有线程竞争时,混合线程提供了基于用户模式构造所 ...

  9. iOS--使用UIImageView进行GIF动图播放

    大家好,好久没有跟新了.其实也就昨天到今天的时间. 前言:实际上,GIF动图文件中包含了一组图片及其信息数组,这些信息数据记录着这一组图片中各张图片的播放时长等信息,我们可以将图片和这些信息或取出来, ...

  10. 用R语言的quantreg包进行分位数回归

    什么是分位数回归 分位数回归(Quantile Regression)是计量经济学的研究前沿方向之一,它利用解释变量的多个分位数(例如四分位.十分位.百分位等)来得到被解释变量的条件分布的相应的分位数 ...