当自己的库已经上传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. java基础面试题

    参考:http://blog.csdn.net/jackfrued/article/details/44921941 说未经允许不转载,我只好参考了. 1.面向对象的特征有哪些方面? 抽象:抽象是将一 ...

  2. jQuery-1.9.1源码分析系列(八) 属性操作

    jQuery的属性操作主要包括 jQuery.fn.val jQuery.fn.attr jQuery.fn.removeAttr jQuery.fn.prop jQuery.fn.removePro ...

  3. Nancy之Pipelines三兄弟(Before After OnError)

    一.简单描述 Before:如果返回null,拦截器将主动权转给路由:如果返回Response对象,则路由不起作用. After : 没有返回值,可以在这里修改或替换当前的Response. OnEr ...

  4. 客户端调用 WCF 的几种方式

    转载网络代码.版权归原作者所有..... 客户端调用WCF的几种常用的方式: 1普通调用 var factory = new DataContent.ServiceReference1.Custome ...

  5. iOS阶段学习第35天笔记(Touch手势介绍)

    一.Touch手势 1.利用手势实现UIButton移动效果  实例代码 1) 创建一个继承自UIButton的类 MyButton.h  代码实现 #import <UIKit/UIKit.h ...

  6. perl use FileHandle;打开多个文件

    use FileHandle;my %fh; my @filehandlename=("A","B","C"); ##文件句柄的名字: fo ...

  7. java protected 的细节

    1. java的权限控制--大部分人都被错误洗脑了. 一个重大的坑,或者一个重大的误区,或者说一个洗脑了成千上万java编程者的错误概念就是: public private protected 是基于 ...

  8. spring入门(三)【事务控制】

    在开发中需要操作数据库,进行增.删.改操作的过程中属于一次操作,如果在一个业务中需要更新多张表,那么任意一张表的更新失败,整个业务的更新就是失败,这时那些更新成功的表必须回滚,否则业务会出错,这时就要 ...

  9. 9、ASP.NET MVC入门到精通——Controller(控制器)

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 Controller主要负责响应用户的输入.主要关注的是应用程序流,输入数据的处理,以及对相关视图(View)输出数据的提供. 继承自:Sy ...

  10. 美女jquery图片播放器插件

    相册在线查看http://keleyi.com/keleyi/phtml/image/6.htm 可全屏,可拖动,可自动播放的jquery图片展示插件 使用说明:1.引用css文件:<link ...