CocoaPods学习系列2——使自己的项目支持CocoaPods管理
该篇记录使自己的项目支持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
则自动退出。
最新文章
- 【译】ASP.NET应用程序和页面生命周期
- .NET中异常处理的最佳实践(译)
- github 使用网址
- TestLink学习七:TestLink测试用例Excel转换XML工具
- 仿酷狗音乐播放器开发日志十九——CTreeNodeUI的bug修复二(附源码)
- Spring(3.2.3) - Beans(8): 基于 Annotation 的配置
- 初级SQL开发汇总指南
- 秒味课堂Angular js笔记------指令
- 利用jquery对ajax操作,详解原理(附代码)
- 类A是公共的,应在名为A.java的文件中声明错误
- 【html5】html5本地简单存储
- (三十六)利用AFNetworking进行JSON数据解析
- OO的奇妙冒险1
- SpringMvc中Hashmap操作遇到 java.util.ConcurrentModificationException: null
- python3 判断字符串是否为IP
- ORA-30926: 无法在源表中获得一组稳定的行ORA-06512: 在 ";STG.FP_MO_SPLIT";, line 1562 临时
- 安装 Express
- 【转】Mac使用apt-get
- JSP之response对象使用
- POJ_2299 Ultra-QuickSort【归并排序】
热门文章
- SVN上新增一个项目和用户
- 【BZOJ1509】[NOI2003]逃学的小孩 直径
- 160803、如何在ES6中管理类的私有数据
- Centos6.5下DHCP服务器的安装和配置
- Access 2010 VBA 读取 表中的数据
- 创建view,保存GROUP_CONCAT数据
- Css选择器定位详解
- servlet中获取各种相对地址(服务器、服务器所在本地磁盘、src等)。
- 假设做一个精美的Login界面(攻克了一EditText自带clear的功能,相似iphone的UITextField)
- 0601-Zuul构建API Gateway-API gateway简介、基础使用、路由配置、负载配置