当自己的库已经上传GitHub后,那么如何快速简单的开源自己的库呢?

这里就是介绍如何将自己的类库上传到pods管理库,以便开源所有人都能方便使用。

准备前提:

- 项目已上传到GitHub (注意,这里不唯一,其他开源平台网站也可)。

- 这里以我之前的一个项目作为示例。(SwiftPopMenu)

步骤如下:

- 创建.podspec

- 项目打 tag

- 验证有效性

- 注册CocoaPods

- 发布

================================== start =================================

1、生成.podspec文件,这个是pod的描述文件,很重要

//SwiftPopMenu 是你的框架名称
pod spec create SwiftPopMenu

  

执行后会看到当前目录下会出现一个SwiftPopMenu.podspec文件,用编辑器打开(可用vim,我用的Sublime Text,比较好用一点),会看到很多注释,根据自己的项目修改编辑,得到类似下面的内容:  

Pod::Spec.new do |s|

  s.name         = "SwiftPopMenu"
s.version = "1.0.0"
s.summary = "easy use SwiftPopMenu on iOS"
s.description = "easy use SwiftPopMenu on iOS,use by readme" s.homepage = "https://github.com/TangledHusky/SwiftPopMenu" s.license = { :type => "MIT", :file => "LICENSE" }
s.author = { "TangledHusky" => "your email,eg:xxx@qq.com" }
s.platform = :ios, "8.0"
s.source = { :git => "https://github.com/TangledHusky/SwiftPopMenu.git", :tag => "v#{s.version}" }
s.source_files = "SwiftPopMenu/*.{swift}" end

这里的选项是删除过后的,原文是有很多注释的,为了可读性,可以删除掉。

如果有依赖型或资源文件,要加上这些:

s.dependency "MBProgressHUD"
s.resources = "YJProgressHUDK/*.bundle"

这里我遇到几个坑:

(1)s.summary和s.description 内容不能一样,否则会warning,导致后面验证不通过。

(2)s.source的tag不用改,保持tag => "v#{s.version}" 即可。

(3)s.source_files的路径是里库文件夹下的所有文件,所以要定位到那一层路径,这里我用的swift,所以后缀是.{swift},如果是oc,这里是.{h,m}

2、因为cocoapods是依赖tag版本的,所以必须打tag。

PS:以后如果有新版本需要再次更新的话,只需要把你的项目打一个tag,然后修改.podspec文件中的版本接着提交到cocoapods官方就可以了,提交命令请看下面

cd进入本地项目目录,进去后输入如下:

git tag 'v1.0.0'

git push --tags

注意这里版本号加“v”,不然后面会有坑。

3、接着 把修改好的文件push到github上去   

(如果用SourceTree等可视化工具,可忽略命令,直接在工具上push执行)

git add SwiftPopMenu.podspec

git commit -am "add SwiftPopMenu.podspec file”

git push -u origin master

  

4、但是!! 以上做完之后,使用pod search 是搜不到你的库的,因为这只是你私有本地库。

要想使用Trunk服务,首先你需要注册自己的电脑。

已注册或不确定是否注册:

查看自己有没有注册

pod trunk me

  

注册:

只要指明你的邮箱地址(spec文件中的)和名称即可。

pod trunk register 123456@qq.com 'github账户名' --description='macbook air'

然后顺利的话你会收到一份邮件,需要点击验证。 

 

然后,再次使用

pod trunk me

查看自己的注册信息

  

5、上面的工作完成之后,我们就可以开始 trunk push 了提交我们的podspec文件。

pod trunk push 命令会首先验证你本地的podspec文件(是否有错误),之后会上传spec文件到trunk,最后会将你上传的podspec文件转换为需要的json文件 
第一步验证podspec文件:

pod spec lint SwiftPopMenu.podspec

如果验证成功的话会显示

 

当然,这一步很容易会error,但是,都会列出你哪里的问题,照着改就是了,最常见的可能就是:

warning: Could not find remote branch v1.0.0 to clone.

fatal: Remote branch v1.0.0 not found in upstream origin

 这里就是因为之前git tag 没加v,修改并重新提交下再试一下。

当然,有时间有这样一种情况:会报warning错误,如果是不影响功能或偷懒不想改,可以绕过:

pod spec lint --allow-warnings SwiftPopMenu.podspec

这样就可以通过验证了。

最后,输入下面命令进行提交发布:

pod trunk push SwiftPopMenu.podspec

如果上面验证用了 --allow-warnings ,这里也需要这样做:

pod trunk push --allow-warnings SwiftPopMenu.podspec

  

如果发布成功,就会看到:

注意:

执行上面的push操作,就相当于你把你的源代码提交给CocoaPods团队审核了,一般需要一到两个工作日可以审核结束。

下面就是安心等待了。。。(网上的说法)

6、如果收到了cocoapods官方发过来的审核通过邮件后(不知道为啥,我没收到邮件

如何快速简单上传类库到CocoaPods - 图文攻略步骤的更多相关文章

  1. secureCRT简单上传、下载文件记录

    secureCRT简单上传.下载文件记录: 1)sz下载 -y 覆盖 2)rz上传 -y 覆盖 3)以上两个命令属于安装时包含在“Dial-up Networking Support"组中 ...

  2. 阿里云oss,简单上传

    描述:oss比较方便,省去了自己搭建文件服务器的时间,价格比较便宜,下面是java基于oss的简单上传代码 a.添加maven依赖 <dependency> <groupId> ...

  3. 七牛云-C#SDK-上传-简单上传

    请看系列C#-SDK-操作系列 https://i.cnblogs.com/posts?categoryid=1468598 接下来给大家分享的C#-SDK 简单上传 核心代码:有需要直接看这个,其实 ...

  4. 拿nodejs快速搭建简单Oauth认证和restful API server攻略

    拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...

  5. js简单上传进度条

    效果如下:

  6. .Net简单上传与下载

    上传: 首先上传我们需要一个控件-FileUpLoad: 再加上一个上传按钮: 在上传按钮的Click事件中添加如下代码: FileUpload1.SaveAs(Server.MapPath(&quo ...

  7. java struts2入门学习实例--使用struts2快速实现上传

    一.文件上传快速入门 1).关于上传表单三要素 >>尽量以POST请求方式上传,因为GET支持文件大小是有限制的. >>必须要加上enctype="multipart ...

  8. jsp/servlet实现简单上传和下载

    使用JSP/Servlet简单实现文件上传与下载 jsp上传页面代码: <%@ page language="java" import="java.util.*&q ...

  9. C# --MVC实现简单上传下载

    首先创建一个默认的控制器Defaultcontroller 然后生成视图View 在视图里面 创建文件选择器 创建上传.下载按钮 代码如下 <body> <div> <f ...

随机推荐

  1. OpenCV2:图像的几何变换,平移、镜像、缩放、旋转(1)

    图像的几何变换是在不改变图像内容的前提下对图像像素的进行空间几何变换,主要包括了图像的平移变换.镜像变换.缩放和旋转等.本文首先介绍了图像几何变换的一些基本概念,然后再OpenCV2下实现了图像的平移 ...

  2. 好的Ui界面地址

    http://121.40.148.178:8080/http://www.uimaker.com/http://www.uimaker.com/uimakerhtml/bshtml/124261.h ...

  3. .Net 开源项目资源大全

    伯乐在线已在 GitHub 上发起「DotNet 资源大全中文版」的整理.欢迎扩散.欢迎加入. https://github.com/jobbole/awesome-dotnet-cn (注:下面用 ...

  4. 响应式WEB设计的9项基本原则

    响 应式Web设计对于解决多类型屏幕问题来说是个不错方案,但从印刷的角度来看,其却存在着很多的困难.没有固定的页面尺寸.没有毫米或英寸,没有任何物理 限制,让人感到无从下手.随着建立网站可用的各种小工 ...

  5. 详解SQLServer 存储过程

    Sql Server的存储过程是一个被命名的存储在服务器上的Transacation-Sql语句集合,是封装重复性工作的一种方法,它支持用户声明的变量.条件执行和其他强大的编程功能. 存储过程相对于其 ...

  6. 基于CkEditor实现.net在线开发之路(6)vs开发工具配合一起开发

    上一章讲解了利用CKEditor实现了一个简单的列表功能的查询,CKEditor编辑器是由js实现的,js是一门非常强大的语法,但是要用它实现Vs开发工具那样强大编辑器的功能,估计不可能,这就使得CK ...

  7. AutoMapper之ABP项目中的使用介绍

    最近在研究ABP项目,昨天写了Castle Windsor常用介绍以及其在ABP项目的应用介绍 欢迎各位拍砖,有关ABP的介绍请看阳光铭睿 博客 AutoMapper只要用来数据转换,在园里已经有很多 ...

  8. JMeter专题系列(四)参数化

    JMeter也有像LR中的参数化,本篇就来介绍下JMeter的参数化如何去实现. 参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户 ...

  9. jQuery弹出关闭遮罩层

    效果体验:http://keleyi.com/keleyi/phtml/jquery/9.htm 完整代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XH ...

  10. jquery如何实现(textarea) placeholder自动换行?

    思路:利用文本框的聚焦和失焦事件 1.HTML结构 <textarea id="text1"></textarea> 2.js方法 <script&g ...