该篇记录使自己的项目支持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

则自动退出。

最新文章

  1. 【译】ASP.NET应用程序和页面生命周期
  2. .NET中异常处理的最佳实践(译)
  3. github 使用网址
  4. TestLink学习七:TestLink测试用例Excel转换XML工具
  5. 仿酷狗音乐播放器开发日志十九——CTreeNodeUI的bug修复二(附源码)
  6. Spring(3.2.3) - Beans(8): 基于 Annotation 的配置
  7. 初级SQL开发汇总指南
  8. 秒味课堂Angular js笔记------指令
  9. 利用jquery对ajax操作,详解原理(附代码)
  10. 类A是公共的,应在名为A.java的文件中声明错误
  11. 【html5】html5本地简单存储
  12. (三十六)利用AFNetworking进行JSON数据解析
  13. OO的奇妙冒险1
  14. SpringMvc中Hashmap操作遇到 java.util.ConcurrentModificationException: null
  15. python3 判断字符串是否为IP
  16. ORA-30926: 无法在源表中获得一组稳定的行ORA-06512: 在 "STG.FP_MO_SPLIT", line 1562 临时
  17. 安装 Express
  18. 【转】Mac使用apt-get
  19. JSP之response对象使用
  20. POJ_2299 Ultra-QuickSort【归并排序】

热门文章

  1. SVN上新增一个项目和用户
  2. 【BZOJ1509】[NOI2003]逃学的小孩 直径
  3. 160803、如何在ES6中管理类的私有数据
  4. Centos6.5下DHCP服务器的安装和配置
  5. Access 2010 VBA 读取 表中的数据
  6. 创建view,保存GROUP_CONCAT数据
  7. Css选择器定位详解
  8. servlet中获取各种相对地址(服务器、服务器所在本地磁盘、src等)。
  9. 假设做一个精美的Login界面(攻克了一EditText自带clear的功能,相似iphone的UITextField)
  10. 0601-Zuul构建API Gateway-API gateway简介、基础使用、路由配置、负载配置