创建自己的Spec

CocoaPods相信大家都听说过了,是用来帮助我们管理第三方依赖库的工具。

CocoaPods使用起来相当方便,简单的安装和使用就不说了,可以参考一下资料:

CocoaPods安装和使用教程
CocoaPods详解之—-使用篇
CocoaPods官网

相信大家有自己重用的代码,而且很多都可以当做第三方库使用,我们完全可以创建自己的依赖库。

先给出参考链接:

CocoaPods详解之—-制作篇 貌似上传podspec文件,已经不用该博主的方式了。CocoaPods在0.33加入了Trunk服务,后面会讲到。
Cocoa​Pods,该博文也提到了Trunk服务。

下面给出创建步骤:

创建GitHub Repository

alt text

如图所示,我创建了一个叫做HZPersistentStack的Repository,描述那里根据自己的需求随便写,设为Public。选择License,大家自行选择,这里的License是必须的。点击创建后如下图所示:

alt text

然后我们Clone到本地,如下图:

alt text

然后我们进入Clone的文件夹,创建一个叫做HZPersistentStack的spec,如下所示:

alt text

创建Spec

创建了一个HZPersistentStack.podspec文件,下面我们就要编辑这个文件,你可以使用Vim直接打开编辑或者进入文件夹打开文件直接编辑。

博主用Sublime Text 2打开,打开后发现有很多可编辑的选项,大家可以自行研究下。直接替换为如下内容:

Pod::Spec.new do |s|  
  s.name             = "HZPersistentStack"  
  s.version          = "0.0.1"  
  s.summary          = "CoreData PersistentStack"  
  s.homepage         = "https://github.com/LynchWong/HZPersistentStack"  
  s.license          = 'MIT'  
  s.author           = { "Lynch Wong" => "lynch.wong@me.com" }  
  s.source           = { :git => "https://github.com/LynchWong/HZPersistentStack.git", :tag => s.version.to_s }    
  s.platform     = :ios, '7.0'  
  s.requires_arc = true  
  s.source_files = 'Classes/*'  
end

请注意将s.name、s.source替换成自己。

注意这里的s.source_files是相对于HZPersistentStack.podspec的路径,所以我们进入到文件夹创建Classes文件夹,如下图所示:

alt text

然后我们将文件类文件放入到Classes里,如下图所示:

alt text

验证Spec

然后设置版本和tag,注意版本和tag都是0.0.1,和HZPersistentStack.podspec里面的是一样的。如下图所示:

alt text

然后执行

git add -A && git commit -m "Release 0.0.1."  
git tag '0.0.1'  
git push --tags  
git push origin master

然后执行pod lib lint验证Spec,如下图所示:

alt text

如图所示,通过了验证。

发布Spec

其实这部分内容可以参考Cocoa​Pods,也解释了为什么要使用Trunk服务。所以这里不再赘述,直接引用:

CocoaPods 0.33中加入了Trunk服务。

虽然一开始使用GitHub Pull Requests来整理所有公共pods效果很好。但是,随着Pod数量的增加,这个工作对于spec维护人员Keith Smiley来说变得十分繁杂。甚至一些没有通过$ pod lint的spec也被提交上来,造成repo无法build。

CocoaPods Trunk服务的引入,解决了很多类似的问题。CocoaPods作为一个集中式的服务,使得分析和统计平台数据变得十分方便。

要想使用Trunk服务,首先你需要注册自己的电脑。这很简单,只要你指明你的邮箱地址(spec文件中的)和名称即可。

pod trunk register mattt@nshipster.com "Mattt Thompson"

然后就会收到邮件验证等。
至此,你就可以通过以下命令来方便地发布和升级你的Pod!

pod trunk push NAME.podspec

最后发布Spec:

alt text

现在你可以搜索你自己的依赖库了,如下:

alt text

在项目的Podfile文件中添加,如下:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

target 'Demooo' do
    pod 'HZPersistentStack', '~> 0.0.1'
end

然后pod install,最后项目结构如下:

alt text

在需要使用的地方引入:

#import <HZPersistentStack/PersistentStack.h>
坚持原创技术分享,您的支持将鼓励我继续创作!