让自己写的项目支持Cocoapods管理
学会使用别人的 Pods 依赖库以后, 你一定对创建自己的依赖库很有兴趣吧,现在我们一起来制作自己的Pods依赖库。
1.创建自己的 github 仓库

上图中标识出了6处地方
- Repository name: 仓库名称,这里写上我们的依赖库名字 HJGame ,必填。
- Description: 仓库的描述信息,可选。
- Public or Private: 仓库的公开性,开源的话选 Public 。 如果是公司内部使用的话这里推荐大家使用私有的仓库,但是 github 的私有仓库是要收费的 $7/month (壕请无视 - -!)。大部分公司都是有自己的git服务器,不过一般只能在公司内网使用,或者可以选择Gitlab,Coding, Bitbucket任意一种。
- Initialize: 是否默认创建一个 README 文档,一个完整的库都会有这个说明文档,这里最好勾选一下。不过如果忘记的话也不要紧,后面手动创建也是可以的。
- .gitignore: 忽略项文件,记录一些想忽略的文件类型,凡是该文件包含的文件类型, git 都不会将其纳入到版本管理中。看需要选择就行。
- license: 正规的仓库都有一个 license 文件, Pods 依赖库对这个文件要求比较严格,需要有这个文件。这里最好让 github 自动创建一个,不过后续手动创建也行。我们这次先使用 MIT 类型的 license。
上面各项根据大家需要填写完毕后,点击 Create repository 按钮即可,生成仓库后,复制仓库地址:

2.clone 仓库到本地
打开终端窗口 cd/Desktop ;clone https://github.com/JJloveLL/HJGame.git 下载完成后 通过 pwd 命令查看当前的文件结构如下:

其实还有一个隐藏的 .git 文件,后续我们的所有文件都在这个目录底下进行。
3.向本地仓库中添加创建 Pods 依赖库所需的文件
1)把需要添加Pods依赖库的文件,都移动到当前桌面 HJGame文件夹里;
2)在当前桌面HJGame文件路劲下,创建.podspec文件:
创建这个文件有两种途径:
- 复制已有的 podspec 文件然后修改对应的参数。
- 执行命令行创建。
我们使用命令行:
pod spec create HJGame 创建出HJGame.podspec 文件后,我们打开可以发现,该文件是 ruby 文件,里面有很多的内容,但是大多数都是我们不需要的,所以我们只需要根据项目的情况保留关键的一些内容就行:
添加完成后保存。
以上所有的步骤都是准备阶段……
现在进去项目阶段
执行命令:
git tag 1.0.0 (版本号)
git add .
git commit -m “提交注释”
git push origin 1.0.0 (tag版本号)
然后验证podspec文件的合法性:
pod spec lint HJGame.podspec (验证合法性)
验证通过如下状态:

但是此处验证一般有两处坑点:(podspec 文件填的不合法)
错误如下:

验证通过后执行命令:
git add -A
git push origin master
同步到git仓库里。
通过以上步骤创建Pod库还只能供自己使用,下面会继续讲解如何将其提交到CocoaPods/Specs代码库中,让其他人也可以通过pod install安装我们的开源库。
CocoaPods Trunk发布自己的Pods
在cocoapods使用了trunk之后,CocoaPods 需要0.33以上版本,用 pod --version查看版本,如果版本低,需要更新。
注册Trunk
1、$ pod trunk register orta@cocoapods.org 'Orta Therox' --description='macbook air' ($ pod trunk register 自己邮件地址 '注册用户名' --description='描述')
大家在注册时需要替换成自己的邮箱和用户名,一切顺利的话就会受到一份邮件,点击邮件中的链接后验证一下:
验证过后通过pod trunk me 自己的cocopods注册的信息

当然,如果你的pod是由多人维护的,你也可以添加其他维护者:
$ pod trunk add-owner ARAnalytics kyle@cocoapods.org
上面的工作完成之后,我们就可以开始 trunk push了,执行命令:
pod trunk push
等待几分钟 我们项目就发布到cocopods上了,别人就可以添加使用我们开源库了。

至此我们整个制作自己的开源库的过程就完成了,以后有新版本只需要修改工程根目录下的podspec文件就行了,然后重新执行pod trunk push命令。
最后
最后对这个过程做个总结:
1.开源库发布之后,需要打上tag
2.进入到项目根目录下,创建podspec文件
pod spec create PodName
3.编辑podspec文件中的相关信息,有两个比较重要的地方s.source和s.source_files,可以验证是否有误:
pod spec lint PodName.podspec
4.注册pod trunk
$ pod trunk register orta@cocoapods.org 'Eric_jun' --description='macbook pro'
5.发布到pod trunk
pod trunk push [NAME.podspec]
该命令在包含有.podspec文件的目录下执行
6.更新pod库
pod setup
如果pod trunk push成功后无法pod search到自己的库,可执行该命令。
让自己写的项目支持Cocoapods管理的更多相关文章
- CocoaPods学习系列2——使自己的项目支持CocoaPods管理
该篇记录使自己的项目支持CocoaPods管理. 要达到这一目的,需要如下步骤: 1.将自己的项目提交到github,添加开源协议license 2.添加podspec文件 3.验证podspec,成 ...
- 让自己的开源项目支持CocoaPods
测试的时候找个自己封装的方法或UI控件就可以了 这里用我刚封装的Redirect重定向的请求体为例 1, 在github上创建一个Redirect,重要:记得选择开源协议 (MIT)(如果木有GitH ...
- 利用cocoapods管理开源项目,支持 pod install安装整个流程记录(github公有库)
利用cocoapods管理开源项目,支持 pod install安装整个流程记录(github公有库),完成预期的任务,大致有下面几步: 1.代码提交到github平台 2.创建.podspec 3. ...
- CocoaPods管理的项目移植到别人电脑后找不到头文件
CocoaPods管理的项目移植到别人电脑后找不到头文件 在TARGETS -> Search Paths -> User Header Search Paths 中 写入 ${SRCRO ...
- <p>在我们的实际软件项目中,管理团队事实上比写代码或者实现一个客户的需求更为的有挑战性。由于编程实际上是和机器打交道,而和机器打交道,仅仅要你符合机器预定的逻辑,</p>
在我们的实际软件项目中,管理团队事实上比写代码或者实现一个客户的需求更为的有挑战性. 由于编程实际上是和机器打交道.而和机器打交道,仅仅要你符合机器预定的逻辑, 一步步迈向解决这个问题的道路上一点都不 ...
- .NET 5 尝鲜 - 开源项目TerminalMACS WPF管理端支持.NET 5
.NET 5 尝鲜 - 开源项目TerminalMACS WPF管理端支持.NET 5 一个使用 Prism 作为模块化框架.基于多个开源控件库作为UI控件选择.集成开源 UI 界面设计的 .NET ...
- cocoapods管理以及常遇到的问题
CocoaPods使用 安装成功啦,咱们来创建Podfile文件 //咱们先滚去项目的根目录,如果不会,你就先滚去看看shell命令教程吧 $ cd /Users/JamesGu/Desktop/Co ...
- Carthage 让项目支持及使用,第三方静态库转为动态库
Carthage介绍 具体使用,可以查看官网的,文档地址 https://github.com/Carthage/Carthage.如果看不懂英文,可以看一下官文的翻译:https://www.jia ...
- 利用CocoaPods管理本地工程和发布开源框架
发布自己三方框架 发布云端库 1.创建spec pod spec create xxx 2.编辑spec s.name:名称,pod search 搜索的关键词,注意这里一定要和.podspec的名称 ...
随机推荐
- Head First设计模式之备忘录模式
一.定义 不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样就可以将该对象恢复到原先保存的状态 二.结构 备忘录模式中主要有三类角色: 发起人角色:记录当前时刻的内部状态, ...
- jenkins的搭建
根据官方网站的步骤进行安装 网址:https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions ...
- 公众号的Markdown排版利器:Md2All
微信公众号:颜家大少如有问题或建议,请公众号留言 本文所用排版工具:Md2All,http://md.aclickall.com 公众号排版工具 公众号的排版编辑工具还真的不少,但功能大同小异,大部分 ...
- java基础,集合,HashMap,源码解析
最怕,你以为你懂咯,其实你还不懂: 见贤思齐,看看那些我们习以为常的集合,通过相关定义.源码,思考分析,加深对其的理解,提高编码能力,能做一个略懂的程序员: 做几个我们常用的集合类.开篇HashMap ...
- PHP读取excel中地址实现多文件下载
PHP文件下载有单文件和多文件之分,如果是单文件写个方法可以实现,但是如果想循环下载多个文件我试验是没有成功.先说单文件的下载,方法如下: function downfile($fileurl) { ...
- 如何将VS 2015中的项目上传到github
最近开始慢慢接触github,现在希望将自己平时写的小程序,上传到github上,以便以后有个参考,在遇到同样问题的时候不至于想不起来怎么做而到处找别人的例子. VS 2015设置 首先下载跟gith ...
- 使用Java内置的Http Server构建Web应用
一.概述 使用Java技术构建Web应用时, 我们通常离不开tomcat和jetty之类的servlet容器,这些Web服务器功能强大,性能强劲,深受欢迎,是运行大型Web应用的必备神器. 虽然Jav ...
- CodeForces731-C.Socks-并查集
C. Socks time limit per test 2 seconds memory limit per test 256 megabytes input standard input outp ...
- Red and Black(dfs水)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 Red and Black Time Limit: 2000/1000 MS (Java/Oth ...
- Android初学:Gradle 'HelloWorld' project refresh failed
Gradle 'HelloWorld' project refresh failed Error:Failed to open zip file.Gradle's dependency cache m ...
