CocoaPods详解之(三)----制作篇
一、创建自己的github仓库
二、clone仓库到本地
- $ git clone https://github.com/wangzz/WZMarqueeView.git
三、向本地git仓库中添加创建Pods依赖库所需文件
1、后缀为.podspec文件
1.1
podspec文件内容
- Pod::Spec.new do |s|
- s.name = "WZMarqueeView"
- s.version = "1.0.0"
- s.summary = "A marquee view used on iOS."
- s.description = <<-DESC
- It is a marquee view used on iOS, which implement by Objective-C.
- DESC
- s.homepage = "https://github.com/wangzz/WZMarqueeView"
- # s.screenshots = "www.example.com/screenshots_1", "www.example.com/screenshots_2"
- s.license = 'MIT'
- s.author = { "王中周" => "wzzvictory_tjsd@163.com" }
- s.source = { :git => "https://github.com/wangzz/WZMarqueeView.git", :tag => s.version.to_s }
- # s.social_media_url = 'https://twitter.com/NAME'
- s.platform = :ios, '4.3'
- # s.ios.deployment_target = '5.0'
- # s.osx.deployment_target = '10.7'
- s.requires_arc = true
- s.source_files = 'WZMarqueeView/*'
- # s.resources = 'Assets'
- # s.ios.exclude_files = 'Classes/osx'
- # s.osx.exclude_files = 'Classes/ios'
- # s.public_header_files = 'Classes/**/*.h'
- s.frameworks = 'Foundation', 'CoreGraphics', 'UIKit'
- end
该文件是ruby文件,里面的条目都很容易知道含义。
1.2 如何创建podspec文件
- $ pod spec create WZMarqueeView
也会创建名为WZMarqueeView.podspec的文件。但是打开创建完的文件你就会发现里面的东西太多了,很多都是我们不需要的。
2、LICENSE文件
Legal。在创建github仓库的时候,我已经选择了MIT类型的license。
3、主类文件
4、demo工程
5、README.md
四、提交修改文件到github
1、pod验证
- $ set the new version to 1.0.0
- $ set the new tag to 1.0.0
这两条命令是为pod添加版本号并打上tag。然后执行pod验证命令:
- $ pod lib lint
如果一切正常,这条命令执行完后会出现下面的输出:
- -> WZMarqueeView (1.0.0)
- ZMarqueeView passed validation.
到此,pod验证就结束了。
2、本地git仓库修改内容上传到github仓库
- $ git add -A && git commit -m "Release 1.0.0."
- $ git tag '1.0.0'
- $ git push --tags
- $ git push origin master
上述命令均属git的范畴,这里不多述。如果一切正常,github上就应该能看到自己刚添加的内容了。如下图所示:
五、上传podspec文件到CocoaPods官方仓库中
开这个链接你就会发现,原来我们能使用的,以及我们使用pod
search命令能搜索到的所有Pods依赖库都会把它们的podspec文件上传到这个仓库中,也就是说,只有将我们的podspec文件上传到这个仓
库中以后,才能成为一个真正的Pods依赖库,别人才能正常使用!
1、fork一份CocoaPods官方的Specs仓库
2、将fork的仓库clone到本地
- $ git clone https://github.com/wangzz/Specs.git
注意,大家需要将对应的仓库地址换成自己的。
3、将自己的podspec文件添加到本地Specs仓库中
4、上传本地Specs仓库中的修改到github仓库
- $ git add -A && git commit -m "Add WZMarqueeView podspec file"
- $ git push origin master
成功以后就能在github上自己fork的Specs仓库中看到刚上传的文件了。
5、将在自己fork的Specs上做的修改pull给CocoaPods官方的Specs仓库
Pull Request按钮,即可将我们fork的Specs上做的修改pull给CocoaPods官方的Specs仓库。
6、查看审核进度
六、查看我们自己创建的Pods依赖库
search命令,看看能不能搜索到自己创建的Pods依赖库。不过你肯定会失望的,因为还需要执行一条命令才能在我们的本地电脑上使用search命令搜索到我们的依赖库:
- $ pod setup
在我的CocoaPods系列教程中的第一篇:CocoaPods详解之----进阶篇中的最后部分介绍过这条命令,它会将所有的Pods依赖库tree跟新到本地。执行完这条命令,再去执行:
- $ pod search WZMarqueeView
就能显示出对应的介绍信息了!
七、参考文档
CocoaPods详解之(三)----制作篇的更多相关文章
- CocoaPods详解之(二)----进阶篇
CocoaPods详解之----进阶篇 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/19178709 转载请注明出处 ...
- CocoaPods详解之(一)----使用篇
CocoaPods详解之----使用篇 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/18737437 一.什么是Coc ...
- CocoaPods 详解之----更新篇
CocoaPods 大概是 2011 年出现的开源组件管理工具(目前已支持 Objective-C 和 Swift),近年来普及率越来越高,几乎已是所有 Cocoa 开源项目的标配.另外,很多大点的团 ...
- 【转】IOS AutoLayout详解(三)用代码实现(附Demo下载)
转载自:blog.csdn.net/hello_hwc IOS SDK详解 前言: 在开发的过程中,有时候创建View没办法通过Storyboard来进行,又需要AutoLayout,这时候用代码创建 ...
- ViewPager 详解(三)---PagerTabStrip与PagerTitleStrip添加标题栏的异同
前言:在前两篇文章中,我们讲解了滑动页面的的实现方法与四大函数的意义,但有时,仅仅实现页面滑动是不够的,还要有标题栏才会显得更友好.所以在这篇文章中,我将会向大家展示在Android.support. ...
- Android高效率编码-第三方SDK详解系列(三)——JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送
Android高效率编码-第三方SDK详解系列(三)--JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送 很久没有更新第三方SDK这个系列了,所以更新一下这几天工作中使用到的推送, ...
- 前端技术之_CSS详解第三天
前端技术之_CSS详解第三天 二.权重问题深入 2.1 同一个标签,携带了多个类名,有冲突: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...
- spring事务详解(三)源码详解
系列目录 spring事务详解(一)初探事务 spring事务详解(二)简单样例 spring事务详解(三)源码详解 spring事务详解(四)测试验证 spring事务详解(五)总结提高 一.引子 ...
- wpf 客户端【JDAgent桌面助手】开发详解(三) 瀑布流效果实现与UI虚拟化优化大数据显示
目录区域: 业余开发的wpf 客户端终于完工了..晒晒截图 wpf 客户端[JDAgent桌面助手]开发详解-开篇 wpf 客户端[JDAgent桌面助手]详解(一)主窗口 圆形菜单... wpf 客 ...
随机推荐
- vue使用(二)
本节目标: 1.数据路径的三种方式 2.{{}}和v-html的区别 1.绑定图片的路径 方法一:直接写路径 <img src="http://p ...
- 软件——关于C,typedef
1;;写博客能让我慢下来,仔细思考 1;;这篇博客大多摘自网上 1;; 不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中.typedef与#define有些相 ...
- 1、移动端 2、后台 3、 移动端,Web 端 4、 PC端
移动端: 1.公众号:停开心 住总物业 2.app: iso Android 停开心,住总停开心 后台:停开心智慧停车管理平台(所有的停车场) 移动端,Web端: 海投OA,公司OA PC端:收费软 ...
- 【Codeforces Round #442 (Div. 2) D】Olya and Energy Drinks
[链接] 我是链接,点我呀:) [题意] 给一张二维点格图,其中有一些点可以走,一些不可以走,你每次可以走1..k步,问你起点到终点的最短路. [题解] 不能之前访问过那个点就不访问了.->即k ...
- IOS获取preferreces偏好设置plistname名称的方法
//获取preferreces偏好设置plistname名称的方法1 -(NSArray*)loadSpecifiersFromPlistName:(NSString*)plistName targe ...
- 使用wepy开发微信小程序商城第二篇:路由配置和页面结构
使用wepy开发微信小程序商城 第二篇:路由配置和页面结构 前言: 最近公司在做一个微信小程序的项目,用的是类似于vue的wepy框架.我也借此机会学习和实践一下. 小程序官方文档:https://d ...
- android权限详细
访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略位置 android.permiss ...
- js 字符串操作函数有哪些
js 字符串操作函数有哪些 一.总结 一句话总结:js字符串函数都是字符串对象的方法,是通过调用字符串方法的方式调用,和java,php里面不一样. 1.字符串替换函数怎么用? 这里的正则表示是加双引 ...
- php 文件夹是否存在,不存在就创建
$lujing = "./nihao/wohao"; if(!is_dir($liujing)){ mkdir(iconv("UTF-8", "GBK ...
- 【29.27%】【hdu 5908】Abelian Period
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/131072 K (Java/Others) 问题描述 设SS是一个数字串,定义 ...