CocoaPods入门开发备忘

随着CocoaPods流行,使得大家嵌入开源代码变得更加简单了,几乎成为了标配。但是,对于如何利用CocoaPods来构建自己的代码库,网上的中文资料似乎比较少。最近,我也加入了CocoaPods来管理自己的开源代码,为此写下这篇备忘。(我当前使用的CocoaPods版本为0.35.0)

 

一、前期准备

首先,大家起码要知道CocoaPods的原理和基本使用,可以参考以下资料。

其中语义化版本规范,无论你是使用者还是开发者都应该去了解清楚,我希望大家花一点点时间认真看看。

 

二、构建项目

好了,有了以上的基础后,可以正式开始构建自己的代码库了。首先是执行以下命令,

pod lib create NAME [TEMPLATE_URL]

其中’NAME’就是你的项目名称,’TEMPLATE_URL’就是模版的url地址,这个暂时空着,使用默认模版。

这个命令是让CocoaPods利用模板在当前目录为你生成一个项目,以下是生成时每一步的选项:

Would you like to include a demo application with your library? [ Yes / No ]
//你是否需要为你的代码库生成一个demo工程

Which testing frameworks will you use? [ Specta / Kiwi / None ]
//你使用什么测试框架

Would you like to do view based testing? [ Yes / No ]
//你是否需要基于测试的view

What is your class prefix?
//你的class前缀

这样子,一个项目就生成好了。接下来,先不要急着添加代码,我们先来了解一下podspec文件的内容。

s.name
项目名字

s.version
项目版本

s.summary
项目简介

s.description
项目描述,以'<<-DESC’开头,’DESC’结尾,Markdown语法

s.homepage
主页

s.screenshots
截图,以’,’来分隔 

s.license
协议,可以指定协议文件,如: s.license = { :type => 'MIT', :file => 'LICENSE' }

s.author
作者,可以加上邮箱,如:s.author = { "XXX" => "xxx@gmail.com" }

s.source
项目的git地址,CocoaPods是通过tag来划分代码版本的

s.platform
这里是指定最低支持的平台版本

s.requires_arc
指定是否使用ARC,默认值是YES,也可以部分使用ARC,如:s.requires_arc = ['Classes/*ARC.m', 'Classes/ARC.mm']

s.source_files
源代码文件

s.resource_bundles
资源文件

s.frameworks
指定一些系统的动态库

s.dependency
指定依赖的开源项目和版本

我暂时只介绍这些基本的语法,详情请参照:http://guides.cocoapods.org/syntax/podspec.html

然后你可以往其中添加你自己的代码,但需要注意代码文件需要和s.source_files的配置一致。
好了,现在代码都添加进去了,先不用急着提交到CocoaPods。请先试着使用:

pod lib lint

这是用于验证你的pod是否合法,如果不通过,会有相对应的错误信息。

 

三、注册账号

下一步就是注册你的CocoaPods账号,也可参考:http://guides.cocoapods.org/making/getting-setup-with-trunk.html
我总结的步骤如下:
执行命令

pod trunk register [your email] '[your name]' —description='[pc description]'

你的邮箱会收到验证邮件,打开后点进去即可。CocoaPods是以邮箱作为账号,为每一台电脑生成token来授权。好了,现在执行一下

pod trunk me

就可以知道当前账号了。切换账号和修改名字等信息也可以使用上述的方法。这里还有个小提示,建议注册的邮箱和Github上的邮箱保持一致,这样才能让Specs正确显示提交者。

 

四、提交代码

以上的步骤都完成了以后,你可以把现有的代码先push到github上,然后加上对应的tag(别告诉我你不知道tag是什么)。tag必须和s.source对应,因此模版中的“s.version.to_s”实质就是“s.version”的字符串,当然你也可以自定义其他的tag。
以上一切都完成了,就可以正式提交到CocoaPods Specs了,执行以下命令:

pod trunk push

然后耐心等待,成功了以后会有“has been pushed”之类的字样。最后,立即试试自己刚提交的开源库吧。

 

PS:

  1. CocoaPods除了能管理托管在Github等开源仓库的代码外,还可以利用它来管理私有代码库,而且流程还更为简单。在Podfile中,如这样:
    pod 'PINKBindView', :git => 'https://github.com/ipinka/PINKBindView'
    

    就可以指定使用哪个git的代码以pod的形式嵌入到项目
    podspec可以参照前面的方法来创建,然后一并放到git上,最后直接使用”pod install”就可以轻松嵌入到项目里了,整个流程还是相当简单的。

  2. 在以前,CocoaPods的管理是通过Fork Specs,然后Pull Requests回去的,随着使用的人越来越来多,这个方法效率显得很低。所以现在CocoaPods是通过trunk这种方法来发布开源库,效率高了不少。而且只要CocoaPods注册的账号和Github上一样,CocoaPods Specs上的提交记录也会有你Github账号的记录。不过也可能存在你的开源项目已经被其他人提交到了Specs了,所以CocoaPods也提供了一个途径让大家取回自己的项目,https://trunk.cocoapods.org/claims/new
  3. 在创建模板的时候,CocoaPods还生成了README.md和.travis.yml等文件。README.md的前几行可以在Github上显示项目的一些状态图标,其中CI Status就是显示项目的持续集成状态,是通过travis-ci.org来实现的。关于持续集成,我希望以后有机会再认真研究。

尊重原创,转载请保留署名Pinka.cn

发表回复