展会信息港展会大全

如何写一个Pod,并发布到CocoaPods上,pod发布cocoapods
来源:互联网   发布日期:2015-09-28 11:22:05   浏览:1680次  

导读: 如何写一个Pod,并发布到CocoaPods上,pod发布cocoapods cocoapods就不用介绍了,是iOS开发的一个第三方库管理工具。 本文主要介绍如何自己写一个p...

如何写一个Pod,并发布到CocoaPods上,pod发布cocoapods

cocoapods就不用介绍了,是iOS开发的一个第三方库管理工具。

本文主要介绍如何自己写一个pod,然后注册到CocoaPods上,并将代码放到Github上供别人下载。这基本上是任何一个pod的“标准”上架流程。当然你也可以将pod放到其他的git平台上。

大家可以先看一下我自己写的一个pod,gitub地址,如果你觉得本文对你有帮助,欢迎start和fork ^ ^

前言

一直以来想写一个pod来练练手,但是很多时候都是写到一半就不了了之了,这次写的这个pod,是从之前做过的一个项目中提炼出来的,代码量不大,实现也不是很复杂。主要还是想通过写一个pod来了解pod的发布流程。所以本文的重点不是在代码本身上。

准备工作

本文是假设读者对pod和git有一定了解的基础上进行的。

git,pod该安装的安装好,没安装的自己去Google吧。我这次使用的pod版本是v0.36,不过版本对本文的影响应该不大。

开始

用xcode写pod的时候,应该将作为pod的代码和自己的example代码在目录上分开(物理和逻辑上),后面在配置podspec文件时要指定目录的。还有就是工程的命名最好加上特殊的前缀,否则在注册pod时,可能会出现重名冲突。

1.在Github上新建一个repo

以下操作都是在terminal下完成的。

1) 如果本地代码没有被git管理,则cd到工程目录,执行git init。

2) git add origin 'github_repo_url' //将github上新建的repo url添加进来。

3) git remote -v//检查以下是否添加成功

4) git commit -am "init commmit"

5) git pull origin

6) git push origin

2.README.md

这个文件对于推广自己的pod非常重要,要让别人了解你的pod的用法,作用,都是通过这个文件表现出来的。可以参照一下我的repo中README文件的格式写法。这个文件是用Markdown语法写的,如果对MD语法不熟悉,请Google。

大家可能看到在这个文件中有一个Gif的动画,这里推荐一个工具叫做LICEcap,很小巧的一款屏幕录制工具,录制完记得要保存成gif格式的,然后将保存好的git图片放到项目中,然后在README中将路径指向gif就行。

3.podspec

终于到了这一步,这一步也是我遇到很多坑的地方,查阅的时候资料也不是特别的多,而且基本都是英文的。

先在自己的工程目录上建立一个podspec文件,文件的命名方式是:podName.podspec ,podName是你pod的名称,应该与工程名相同。后缀是podspec。

先把我自己的podspec文件贴上来:

#CXLSlideList.podspec

Pod::Spec.new do |s|

s.name= "CXLSlideList"

s.version= "1.0.0"

s.summary= "a light weight and easy to use tableview slide effect."

s.homepage= "https://github.com/becomedragon/CXLSlideList"

s.license= 'MIT'

s.author= { "Becomedragon Cheng" => "becomedragonlong@gmail.com" }

s.platform= :ios, "7.0"

s.ios.deployment_target = "7.0"

s.source= { :git => "https://github.com/becomedragon/CXLSlideList.git", :tag => s.version}

s.source_files= 'CXLSlideList/CXLSlideList/*.{h,m}'

s.requires_arc = true

end

podspec文件中有很多参数,但并不是每一个都能用上,我写的这个podspec文件中的参数基本上够用了。这个文件使用ruby语言写的,所以如果有ruby语言的功底看这个代码应该很熟悉,当然没有也没关系,因为理解起来实在太简单了。

下面还是挨个对每个参数介绍下:

1.name :pod的名字,应该与你的工程名保持一致

2.version: 版本号,你以为是你工程的版本号,那你就大错特错了,我在这个地方坑了好久。后来才知道这个version是和你的branch名称保持一致的,如果你的branch名字叫做1.0.0,那这个version就可以要写成1.0.0,当更新版本的时候,要重新建立一个branch命名为1.0.1,然后version也要写成1.0.1。

3.summary:一句话介绍你的pod

4.homepage:pod的url地址

5.license:你的pod所遵守的开源协议、 一般都是‘MIT’

6.author: 作者名,联系方式

7.platform:pod所支持平台和最小系统版本

8.ios.deployment_target:同上

9.source:pod的地址和tag

10.source_files:pod在工程中的所在目录,如果有多个不同的目录,则写成这种形式 :’floder1…’,’floder2….’,’….’

11.requires_arc:是否是ARC。

ok,认真填写podspec文件。已经成功了一大半了。

这里还要注意一个问题,source_files中指定的.h .m文件一定不要引用source _files以外文件中的变量,头文件等,不然后面会出错。source _files中的文件应该是独立的模块。

4.CocoaPods注册,上传

如果要让别人通过 pod 'CXLSlideList' 这种方式来引用你的pod,就要先将自己的pod在cocoapods上注册声明,当然,如果前面的步骤都正确的话,注册声明将是非常简单的一个过程。

1.在cocoapods中注册

在terminal里输入:

pod trunk register YOUR_EMAIL 'YOUR_NAME'

然后你会收到一封邮件,点击确认一下。

2.验证podspec文件的合法性

cd进你的工程目录,输入下面命令:

pod spec lint

这个是验证podspec的合法性,并根据podspec文件对工程进行编译,在命令后面加上 –verbose 可以看到相信执行步骤。

这个步骤可以会经常往返,如果出错的话,会有提示,可能是编译出错,可能是其他错误,如果是编译出错就要看看你自己的代码了。当然,代码改好后要push到github上。

也许你会遇到一个错误叫做:

Could not find remote branch x.x.x to clone

你遇到这个问题说明还是没有看懂我之前写的对于version的解释。

x.x.x是你在podspec中写的版本号。假如这里是1.0.0,你要先看看自己有没有创建一个叫做1.0.0的分支,然后将1.0.0这个分支push到github上,然后切换到1.0.0这个分支上,在重复执行上面的命令即可。

上面的命令执行后,不能由任何的error和warning,否则下一步无法完成。

3.push podspec

到了这一步,基本上可以说是大功告成了,执行下面的命令,将podspec push到cocoapods上,如果你不幸与某一个志气其他人podspec重名的话,则cocoapods会提示你,名字被占用,这个问题我是没有遇到过。估计只能改名了吧。

pod trunk push PodName.podspec

OK,基本上就介绍到这里了。如果想继续研究可以通过 –help查看其它命令。

good luck & have fun ^^

http://www.bkjia.com/Androidjc/1005147.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/1005147.htmlTechArticle如何写一个Pod,并发布到CocoaPods上,pod发布cocoapods cocoapods就不用介绍了,是iOS开发的一个第三方库管理工具。 本文主要介绍如何自己写一...

赞助本站

人工智能实验室

相关热词: android开发 android教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港