一年前在一家外包公司待过。CocoaPods的强大让我惊叹不已,同时也让我很困惑。之前写了一篇关于CocoaPods使用的博客,里面详细列出了通过Unix终端命令搭建环境的步骤,发布在新浪sae搭建的WordPress博客平台上,但是因为没有续费,所以可以现在找到它。在过去六个月的新公司里,我对老板处理项目依赖关系的方式感到惊叹。我老板主要是对iOS平台Xcode工具中的Workspace、Project、Target和各种静态库的关系了解的很透彻,所以他在这方面的操作牛逼。其实向老大学习这方面的知识基本可以满足项目资源管理的需求,但是我为什么要重新梳理CocoaPods,总结搭建CocoaPods环境的博客呢?我觉得主要有以下几点:(1)看了很多iOS博客教程,基本的起步是要有一个CocoaPods环境;(2)CocoaPods确实是一个方便的工具,尤其是在多个项目敏捷开发的时候,一个工具被复用,可以节省很多时间;(3)github上的开源库代码可以及时更新,只需在Podfile文件中更改对应开源库的版本号即可。一、CocoaPods简介CocoaPods是iOS项目中负责管理第三方资源的工具。其项目源码托管在Github上,得益于活跃的Github开发者社区高手的持续维护。自2011年8月项目启动以来,一直保持活跃和更新。开发iOS项目不可避免地要使用第三方开源库。CocoaPods的出现让我们节省了设置和更新第三方开源库的时间。我们有了CocoaPods工具后,只需要将使用到的第三方开源库放到一个名为Podfile的文件中,然后在命令行执行$podinstall命令,CocoaPods就会自动安装这些第三方资源库.下载源码,为当前项目设置相应的系统依赖和编译参数。二、CocoaPods的安装(一)安装安装方法很简单。Mac下已经自带Ruby,只需要使用ruby的gem命令安装即可。打开Mac终端工具,在终端运行如下命令,[sudo]geminstallcocoapodspodsetup指令,上面的[sudo]可以省略,这两步是发起网络请求的过程,所以需要一定的等待时间。(2)更新如果我们修改了Podfile,那么我们需要更新CocoaPods,使用下面的rubygem命令更新,(3)查找第三方库可以使用podsearch+lib_name来搜索第三方libraries,查看版本,如下命令所示:SDWebimage是一个开源的图片缓存库,是UIImageView类的扩展。3、CocoaPods的使用现在我在Desktop/develop文件夹下新建了一个项目,参考了CocoaChina中的一个教程,这是一个完整的天气App,项目名称为SimpleWeather,接下来就是使用CocoaPods,(1)进入工程SimpleWeather.project所在文件夹,在终端输入如下命令,cdDesktop/develop/SimpleWeather(2)在该目录下,通过VimvimPodfile新建Podfile(3)插入如下语句通过i(插入模式),platform:ios,'7.0'pod'Mantle'pod'LBBlurredImage'pod'TSMessages'pod'ReactiveCocoa'从而指定iOS版本的第三方资源,开源库主要包括:Mantle、LBBlurredImage、TSMessages、ReactiveCocoa,这些都不重要,这里只是演示。输入完成后,退出vim并保存,先Esc再输入:wq,即写入退出。(4)在终端输入$podinstall。Podinstall初始化pod也是一个网络请求下载的过程。稍等片刻,如果输入的资源名称没有问题,那么片刻之后,终端会提示初始化成功。4.通过WorkSpace编写项目代码进入项目文件夹,可以看到一个后缀为.workspace的文件,双击打开。从现在开始,我们使用SimpleWeather.xcworkspace来管理项目和编写代码,而不是以前的SimpleWeather.xproj,打开工作区文件。Xcode工程的文件结构如下图所示。第一个箭头指向SimpleWeather项目;第二个箭头是Pods生成的项目,供我们管理所需的资源库;第三个箭头指向Podfile中指定的第三方开源库。还需要注意的是,每当我们修改Podfile时,都要在项目所在的文件夹中执行$podinstall命令,同时也可以执行$podupdate来更新类库。总结:这里是我在开发过程中的简单总结。还有很多细节没有考虑到。我会根据遇到的问题不断更新本博客。在之前的公司工作的时候,遇到了一些CocoaPods更新时需要安装权限的问题。后面我会尽量复现,帮助遇到这个问题的朋友解决这个问题。
