cocoapods的使用

http://blog.csdn.net/wzzvictory/article/details/1873ios

 

CocoaPods详解之----使用篇

 

做者: wangzz

 

 

转载请注明出处

 

若是以为文章对你有所帮助,请经过留言或关注微信公众账号wangzzstrive来支持我,谢谢!

 

 

 

1、什么是CocoaPods

 

一、为何须要CocoaPods

在进行iOS开发的时候,总免不了使用第三方的开源库,好比SBJson、AFNetworking、Reachability等等。使用这些库的时候一般须要:xcode

 

  • 下载开源库的源代码并引入工程
  • 向工程中添加开源库使用到的framework
  • 解决开源库和开源库以及开源库和工程之间的依赖关系、检查重复添加的framework等问题
  • 若是开源库有更新的时候,还须要将工程中使用的开源库删除,从新执行前面的三个步骤,顿时头都大了。。。

 

自从有了CocoaPods之后,这些繁杂的工做就再也不须要咱们亲力亲为了,只须要咱们作好少许的配置工做,CocoaPods会为咱们作好一切!ruby

二、什么是CocoaPods

CocoaPods是一个用来帮助咱们管理第三方依赖库的工具。它能够解决库与库之间的依赖关系,下载库的源代码,同时经过建立一个Xcode的workspace来将这些第三方库和咱们的工程链接起来,供咱们开发使用。微信

使用CocoaPods的目的是让咱们能自动化的、集中的、直观的管理第三方开源库。app

 

2、安装CocoaPods

一、安装

CocoaPods是用Ruby实现的,要想使用它首先须要有Ruby的环境。幸运的是OS X系统默认的已经能够运行Ruby了,所以咱们只须要执行如下命令:工具

[objc]  view plain copy 在CODE上查看代码片 派生到个人代码片
 
  1. $ sudo gem install cocoapods  

CocoaPods是以Ruby gem包的形式被安装的。在安装执行的过程当中,可能会问咱们是否是更新rake,输入y便可。这是由于rake gem包会在安装的过程当中检查更细,若是有可用的新版本就会出现刚才的选项。spa

 

在安装进程结束的时候,执行命令:.net

[objc]  view plain copy 在CODE上查看代码片 派生到个人代码片
 
  1. $ pod setup  

若是没有报错,就说明一切安装就成功了!命令行

 

二、安装过程当中可能遇到的问题

①执行完install命令半天没反应

这有多是由于Ruby的默认源使用的是cocoapods.org,国内访问这个网址有时候会有问题,网上的一种解决方案是将远替换成淘宝的,替换方式以下:code

[objc]  view plain copy 在CODE上查看代码片 派生到个人代码片
 
  1. $ gem sources --remove https://rubygems.org/  
  2. //等有反应以后再敲入如下命令  
  3. $ gem sources -a http://ruby.taobao.org/  

要想验证是否替换成功了,能够执行:

[objc]  view plain copy 在CODE上查看代码片 派生到个人代码片
 
  1. $ gem sources -l  

正常的输出是:

[objc]  view plain copy 在CODE上查看代码片 派生到个人代码片
 
  1. *** CURRENT SOURCES ***  
  2.   
  3. http://ruby.taobao.org/  

 

②gem版本过老

 

gem是管理Ruby库和程序的标准包,若是它的版本太低也可能致使安装失败,解决方案天然是升级gem,执行下述命令便可:

[objc]  view plain copy 在CODE上查看代码片 派生到个人代码片
 
  1. $ sudo gem update --system  

 

③安装完成后,执行pod setup命令时报错:

[objc]  view plain copy 在CODE上查看代码片 派生到个人代码片
 
  1. /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:298:in `to_specs': Could not find 'cocoapods' (>= 0) among 6 total gem(s) (Gem::LoadError)  
  2.     from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:309:in `to_spec'  
  3.     from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_gem.rb:53:in `gem'  
  4.     from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/bin/pod:22:in `<main>'  

这就是路径设置的问题,能够经过执行:

[objc]  view plain copy 在CODE上查看代码片 派生到个人代码片
 
  1. $ rvm use ruby-1.9.3-p448  

解决该问题。

三、升级CocoaPods

升级很简单,再次执行安装命令便可:

[objc]  view plain copy 在CODE上查看代码片 派生到个人代码片
 
  1. $ sudo gem install cocoapods  

须要注意的是,若是安装的时候使用了sudo,升级的时候同样须要使用该关键字,否则升级完了之后又会出现路径不匹配问题。

 

 

3、使用CocoaPods

若是以前作的一切顺利,接下来就能够体验体验CocoaPods的神奇之处了,须要通过如下几步:

为了演示这个过程,我建立了一个名为CocoaPodsTest的工程。

一、建立Podfile

CocoaPods的一切都是从一个名为Podfile的文件开始的,咱们须要先建立这个文件。我的习惯使用命令行,我会这样作:

[objc]  view plain copy 在CODE上查看代码片 派生到个人代码片
 
  1. $ cd /Users/wangzz/Desktop/CocoaPodsTest  
  2. $ touch Podfile  

首先进入到工程的根目录下,建立空白的Podfile文件,建立完毕的目录结构以下图:

 



(PS:Podfile文件也能够不放在工程的根目录下,只是会稍微麻烦点,在下一篇文章中会有介绍,敬请关注。)

二、编辑Podfile

根据须要,咱们能够在Podfile文件中写入须要用到的第三方库,以SBJson、AFNetworking、Reachability三个库为例,个人Podfile内容以下:

[objc]  view plain copy 在CODE上查看代码片 派生到个人代码片
 
  1. platform :ios  
  2. pod 'Reachability',  '~> 3.0.0'  
  3. pod 'SBJson', '~> 4.0.0'  
  4.   
  5. platform :ios, '7.0'  
  6. pod 'AFNetworking', '~> 2.0'  

 

三、执行导入命令

 

准备工做都完成后,开始导入第三方库:

[objc]  view plain copy 在CODE上查看代码片 派生到个人代码片
 
  1. $ cd /Users/wangzz/Desktop/CocoaPodsTest  
  2. $ pod install  

首先进入工程根目录,而后执行pod install命令,CocoaPods就开始为咱们作下载源码、配置依赖关系、引入须要的framework等一些列工做,命令的执行结果打印出来以下:

[objc]  view plain copy 在CODE上查看代码片 派生到个人代码片
 
  1. Analyzing dependencies  
  2. Downloading dependencies  
  3. Installing AFNetworking (2.1.0)  
  4. Installing JSONKit (1.5pre)  
  5. Installing Reachability (3.0.0)  
  6. Generating Pods project  
  7. Integrating client project  
  8.   
  9. [!] From now on use `CocoaPodsTest.xcworkspace`.  

这就说明pod install命令执行成功了。再来看看工程根目录发生的变化,以下图:

 

能够看到,工程的根目录下多了三个东西:CocoaPodsTest.xcworkspace、Podfile.lock文件和Pods目录。

(PS:篇幅有限,Podfile.lock文件会放到系列文章的下一篇介绍,敬请关注。)

 

再看看刚才执行完pod install命令打印出来的内容的最后一行:

[objc]  view plain copy 在CODE上查看代码片 派生到个人代码片
 
  1. [!] From now on use `CocoaPodsTest.xcworkspace`.  

提示咱们从如今起,咱们须要使用CocoaPodsTest.xcworkspace文件来开发。

 

对于工程发生的变化,有几点须要说明:

 

  • 第三方库会被编译成静态库供咱们正真的工程使用

 

CocoaPods会将全部的第三方库以target的方式组成一个名为Pods的工程,该工程就放在刚才新生成的Pods目录下。整个第三方库工程会生成一个名称为libPods.a的静态库提供给咱们本身的CocoaPodsTest工程使用。

 

  • 咱们的工程和第三方库所在的工程会由一个新生成的workspace管理

 

为了方便咱们直观的管理工程和第三方库,CocoaPodsTest工程和Pods工程会被以workspace的形式组织和管理,也就是咱们刚才看到的CocoaPodsTest.xcworkspace文件。

原来的工程设置已经被更改了,这时候咱们直接打开原来的工程文件去编译就会报错,只能使用新生成的workspace来进行项目管理。

打开CocoaPodsTest.xcworkspace,界面以下:

工程的目录结构仍是很是明显的。

在项目中引用刚才添加的第三方库的头文件,执行编译操做,果断成功!

至此,CocoaPods使用篇告一段落,接下来打算再用一个篇幅介绍CocoaPods稍微深层次的东西,敬请关注。

 

4、参考资料

一、http://code4app.com/article/cocoapods-install-usage

二、http://cocoapods.org/

相关文章
相关标签/搜索