一、前言
这两天被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. Service Plugin / Agent - 每天5分钟玩转 OpenStack(73)

    Core Plugin/Agent 负责管理核心实体:net, subnet 和 port.而对于更高级的网络服务,则由 Service Plugin/Agent 管理.Service Plugin ...

  2. 5分钟用Spring4 搭建一个REST WebService

    前置技能 ① 使用maven来管理java项目 这个技能必须点一级,以便快速配置项目. 本文实际上是我学习Spring的过程中搬的官网上的demo,使用maven配置项目. ② jdk 1.8+   ...

  3. 理解brk和sbrk

    brk和sbrk的定义 在man手册中定义了这两个函数: #include <unistd.h> int brk(void *addr); void *sbrk(intptr_t incr ...

  4. EF7 Code First Only-所引发的一些“臆想”

    At TechEd North America we were excited to announce our plans for EF7, and even demo some very early ...

  5. 移动端上传照片 预览+Draw on Canvas's Demo(解决 iOS 等设备照片旋转 90 度的 bug)

    背景: 本人的一个移动端H5项目,需求如下: 需求一:手机相册选取或拍摄照片后在页面上预览 需求二:然后绘制在canvas画布上 这里,我们先看一个demo(http://jsfiddle.net/q ...

  6. C#创建安全的栈(Stack)存储结构

    在C#中,用于存储的结构较多,如:DataTable,DataSet,List,Dictionary,Stack等结构,各种结构采用的存储的方式存在差异,效率也必然各有优缺点.现在介绍一种后进先出的数 ...

  7. Linux服务器(Ubuntu14.04)添加远程连接VNC Server

    1.打开终端输入:sudo apt-get install xrdp,   2. sudo apt-get install vnc4server ,  3. sudo apt-get install ...

  8. 关于Javascript作用域及作用域链的总结

    本文是根据以下文章以及<Javascript高级程序设计(第三版)>第四章相关内容总结的. 1.Javascript作用域原理,地址:http://www.laruence.com/200 ...

  9. 解决ASP.NET Core Mvc文件上传限制问题

    一.简介 在ASP.NET Core MVC中,文件上传的最大上传文件默认为20MB,如果我们想上传一些比较大的文件,就不知道怎么去设置了,没有了Web.Config我们应该如何下手呢? 二.设置上传 ...

  10. Net设计模式实例系列文章总结

    1 什么是设计模式 设计模式是对在软件设计过程中重复出现的问题提出了一种比较好的解决方案.正如一位专家所说:设计模式是对程序设计人员经常遇到的设计问题的可再现的解决方案(The Smalltalk C ...