该篇记录使自己的项目支持CocoaPods管理。

要达到这一目的,需要如下步骤:

1.将自己的项目提交到github,添加开源协议license

2.添加podspec文件

3.验证podspec,成功后提交到github

4.注册CocoaPods的trunk账号

5.将podspec文件提交到trunk

接下来,以我的一个开源组件ALWTitleTabBar为例,逐步记录:

1.将自己的项目提交到github,添加开源协议license

该步骤的操作,如果有不清楚的,可参考我之前的git使用介绍的文章。

2.添加podspec文件

该步骤是核心操作。

使用终端cd到与类库根目录同级的目录。创建podspec文件后,应该类似如下文件结构:

ALWTitleTabBar目录下仅有类库资源及文件。

如果还想提供demo,在这个同级目录下创建demo的专用文件夹即可。但不建议加入CocoaPods管理。

开始创建podspec文件:

在终端依次输入:

pod spec create ALWTitleTabBar

vi ALWTitleTabBar.podspec

即可创建成功并进入编辑状态(或者直接一步到位,输入: vim ALWTitleTabBar.podspec)

编辑podspec文件是最重要也稍微麻烦的操作,因为该文件需要配置一系列参数,然后才能使类库发布的各个版本被正确依赖使用。

完整的配置说明,可查阅podspec的配置指南:https://guides.cocoapods.org/syntax/podspec.html#specification

在此,只展示使用的部分:

Pod::Spec.new do |s|
s.name = 'ALWTitleTabBar'
s.version = '1.0.0'
s.license = { :type => 'MIT' }
s.homepage = 'https://github.com/ALongWay/ALWTitleTabBar'
s.authors = { 'ALongWay' => '370381830@qq.com' }
s.platform = :ios, '7.0'
s.summary = 'A configurable and brief title tab bar.'
s.source = { :git => 'https://github.com/ALongWay/ALWTitleTabBar.git', :tag => '1.0.0' }
s.source_files = 'ALWTitleTabBar/**/*.{h,m}'
s.frameworks = 'UIKit', 'Foundation'
end

大多配置都可以自说明,特别注意source_files参数,value内容的ALWTitleTabBar指的就是与podspec文件同级的文件夹。

然后点击ESC键,在终端输入:

:wq

就可以保存退出了。

3.验证podspec,成功后提交到github

编辑完成后,需要编译类库和验证podspec文件。

输入:

pod lib lint ALWTitleTabBar.podspec

等待验证结果,如果失败了,需要一直修改到验证通过。

在这个示例组件中,如果将ALWTitleTabBarConfiguration.h中的UIKit引用移动到ALWTitleTabBar,重新验证,将提示前者中的UIColor等类型无效。

如果验证通过,就可以将podspec文件提交到github了。

在此,需要注意tag的提交。因为podspec文件中有对应的version,所以要保证github上希望被依赖的类库版本号,即用tag标记的发布版本号,与当前即将发布的podspec文件的version一致。

这个tag可以在github的该项目首页——》release栏里去设置,也可以在终端或者客户端提交时候设置。

4.注册CocoaPods的trunk账号

上一步已经验证好了podspec,最终需要发布到CocoaPods的trunk中,才能被搜索到和依赖使用。

所以,如果没有注册过trunk账号,需要先注册,在终端输入:

pod trunk register 370381830@qq.com ALongWay

也就是注册邮箱和用户名

注册成功后,可以查看信息,输入:

pod trunk me

当然,trunk还有其他指令,可以输入pod trunk --help查看更多。

5.将podspec文件提交到trunk

最后一步了。

保证cd到podspec文件所在目录,在终端输入:

pod trunk push

应该是可以等到成功的提示。

至此,已经使自己的项目支持了CocoaPods管理。

在终端输入:

pod search ALWTitleTabBar

可以看到如下输出:

补充一点:

搜索完成以后,需要退出,先点击ESC键,之后不管显不显示内容,直接输入:

:wq

则自动退出。

CocoaPods学习系列2——使自己的项目支持CocoaPods管理的更多相关文章

  1. CocoaPods学习系列3——创建和使用私有Pods

    前一篇记录了使自己的项目支持CocoaPods管理的过程,核心的步骤就是podspec的配置和提交.这个文件,记录了类库的详细信息,用于对类库的集成. 需要注意的一点,上一篇创建的podspec文件, ...

  2. Dubbo学习系列之九(Shiro+JWT权限管理)

    村长让小王给村里各系统来一套SSO方案做整合,隔壁的陈家村流行使用Session+认证中心方法,但小王想尝试点新鲜的,于是想到了JWT方案,那JWT是啥呢?JavaWebToken简称JWT,就是一个 ...

  3. Shiro学习(23)多项目集中权限管理

    在做一些企业内部项目时或一些互联网后台时:可能会涉及到集中权限管理,统一进行多项目的权限管理:另外也需要统一的会话管理,即实现单点身份认证和授权控制. 学习本章之前,请务必先学习<第十章 会话管 ...

  4. 让自己的开源项目支持CocoaPods

    测试的时候找个自己封装的方法或UI控件就可以了 这里用我刚封装的Redirect重定向的请求体为例 1, 在github上创建一个Redirect,重要:记得选择开源协议 (MIT)(如果木有GitH ...

  5. 让自己写的项目支持Cocoapods管理

    学会使用别人的 Pods 依赖库以后, 你一定对创建自己的依赖库很有兴趣吧,现在我们一起来制作自己的Pods依赖库. 1.创建自己的 github 仓库 上图中标识出了6处地方 Repository ...

  6. CocoaPods学习系列4——进阶用法

    这篇文章,记录一下CocoaPods的进阶用法. 进阶用法主要体现在.podspec文件和Podfile的配置上. .podspec文件的进阶配置 以官方的一个.podspec文件示例细说: Pod: ...

  7. CocoaPods学习系列1——安装和常规使用

    CocoaPods是一个Github上的开源项目,目前已经成为iOS开发过程中标准的依赖库管理器,提供了一种对第三方类库简单优雅的集成和管理方案. 其工作原理,是将第三方类库统一管理到一个名为Pods ...

  8. Android+Jquery Mobile学习系列(3)-创建Android项目

    前两章分别对开发环境和Jquery Mobile基础知识进行了介绍,本章介绍创建一个Android项目,并使用WebView控件显示HTML数据. 首先创建一个Android Application项 ...

  9. .net转php laraval框架学习系列(四) 项目实战---View

    laravel的参考文档中view的讲解有些简单. 在实际项目开发中view的灵活性其实是非常大. 首先来看看laravel中的布局页 和asp.net mvc中有什么不同 <!DOCTYPE ...

随机推荐

  1. mac下面安装mysql

    参考http://www.cnblogs.com/lakeslove/p/6280404.html 关于msyql5.7,安装时最大的改变就是有了一个默认密码 我安装的是mysql-5.7.17-ma ...

  2. 滚动监听: bootstrap 的scrollspy

    滚动监听 bootstrap 的scrollspy,需要借助.nav样式,活动的部分是加 .active类.本身导航没有position:fixed,需要自己加入 滚动监听.只有滚动和监听,只有默认锚 ...

  3. Python IDLE或shell中切换路径

    在Python自带的编辑器IDLE中或者python shell中不能使用cd命令,那么跳到目标路径呢.方法是使用os包下的相关函数实现路径切换功能. import os  os.getcwd() # ...

  4. minikube操作命令

    1. 下载minikube   https://storage.googleapis.com/minikube/releases/v0.16.0/minikube-linux-amd64     ch ...

  5. Spoken English Practice(not always estimating your status in other's hearts. you will lose yourself when you live in other's look. do your best and walk on you own way.)

    绿色:连读:                  红色:略读:               蓝色:浊化:               橙色:弱读     下划线_为浊化 口语蜕变(2017/7/8) 英 ...

  6. Storm的组件

    摘自网上 当时写的很好,很详细的介绍了各个组件直接的关系 Storm集群和Hadoop集群表面上看很类似.但是Hadoop上运行的是MapReduce jobs,而在Storm上运行的是拓扑(topo ...

  7. 单源最短距离 Single Source Shortest Path

    单源最短距离_示例程序_图模型_用户指南_MaxCompute-阿里云 https://help.aliyun.com/document_detail/27907.html 单源最短距离 更新时间:2 ...

  8. pycharm的MySQLdb模块导不进去时解决办法

    一.Windows下python2.7安装MySQLdb模块 根据Python多少位下载对应版本: 32位:https://pypi.python.org/pypi/MySQL-python/1.2. ...

  9. Django框架-模板系统

    来看一段代码 def current_datetime(request): now = datetime.datetime.now() html = "<html><bod ...

  10. @ControllerAdvice 拦截异常并统一处理(转载)

    在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler.@InitBinder.@ModelAttribute,并应用到所有@Requ ...