MAC上安装cocoapods方法及使用简介

分别转自:

http://www.cnblogs.com/foxting/p/4520829.html

http://blog.csdn.net/zhu410289616/article/details/44986351

http://blog.csdn.net/jymn_chen/article/details/19202397

//////////////////////////////////////////////////////////////ruby环境安装//////////////////////////////////////////////////////////////

在安装CocoaPods之前要先配置好RUBY环境,本文就怎么安装RUBY的环境进行一总结。安装Ruby环境首先需要安装Xcode然后需要安装Homebrew,接下来需要安装RVM最后安装Ruby环境。安装XCode就不用说了,大家都会。

Homebrew是一个包管理器,用于在mac上安装一些os x上没有的UNiX工具。Homebrew将这些工具统统安装到了 /usr/local/Cellar 目录中,并在 /usr/local/bin 中创建符号链接。

1.中文地址:http://brew.sh/index_zh-cn.html

先访问Homebrew官网以确定安装命令,网站链接

打开终端(Terminal)把以下粘贴到终端内

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


安装过程中需要按回车确认(Press enter to continue)安装完后可以通过brew doctor命令检查是否安装成功,如果提示"Your system is ready to brew."就可以使用了。可以参考:http://blog.csdn.net/maojudong/article/details/7918291

2.安装设置RVM

先访问RVM官网以确定安装命令,网站链接

命令:curl -L https://get.rvm.io | bash -s stable

期间会问你管理员的密码,以及自动通过homebrew安装依赖包,等待一段时间后就可以成功安装好 RVM。 然后,载入 RVM环境(新开 Termal 就不用这么做了,会自动重新载入的)
3. 设置RVM
通过以下命令启用RVM
source ~/.rvm/scripts/rvm
检查一下是否安装正确命令

rvm -v 

正确的话会出现类似下面的文字

rvm 1.26.11 (master) by Wayne E. Seguin , Michal Papis [https://rvm.io/]

4.安装RUBY

rvm install 2.0.0

漫长的等待下载过程,安装完成后需要执行下面的命令指定哪个RUBY为系统默认的

rvm 2.0.0 --default


//////////////////////////////////////////////////////////////cocoapods安装//////////////////////////////////////////////////////////////

CocoaPods是什么?

当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况。总之小编的意思就是,手动一个个去下载所需类库十分麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦。如果能有什么工具能解决这些恼人的问题,那将“善莫大焉”。所以,你需要 CocoaPods。

CocoaPods应该是iOS最常用最有名的类库管理工具了,上述两个烦人的问题,通过cocoaPods,只需要一行命令就可以完全解决,当然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库,都支持CocoaPods。所以,作为iOS程序员的我们,掌握CocoaPods的使用是必不可少的基本技能了。

假如你在本地已经安装好Ruby环境,那么下载和安装CocoaPods将十分简单,只需要一行命令。在Terminator(也就是终端)中输入以下命令(注意,本文所有命令都是在终端中输入并运行的。什么,你不知道什么是终端?那请小编吃饭,小编告诉你)

sudo gem install cocoapods

但是,且慢。如果你在天朝,在终端中敲入这个命令之后,会发现半天没有任何反应。原因无他,因为那堵墙阻挡了cocoapods.org。(你会问,我靠,这都要墙!是的,小编也纳闷。)

但是,是的,又但是(不过是个可喜的“但是”)。我们可以用淘宝的Ruby镜像来访问cocoapods。按照下面的顺序在终端中敲入依次敲入命令:

$ gem sources --remove https://rubygems.org/
//等有反应之后再敲入以下命令
//先访问 https://ruby.taobao.org 以确定镜像是否有效
$ gem sources -a https://ruby.taobao.org/
为了验证你的Ruby镜像是并且仅是taobao,可以用以下命令查看:

$ gem sources -l //这里是小写字母"l"
只有在终端中出现下面文字才表明你上面的命令是成功的:

*** CURRENT SOURCES ***

https://ruby.taobao.org/

这时候,你再次在终端中运行:

$ sudo gem install cocoapods
等上十几秒钟,CocoaPods就可以在你本地下载并且安装好了,不再需要其他设置。


最后配置cocoapods,时间会很长:

$ pod setup 

如果gem太老,可以用如下命令升级gem:

sudo gem update —system


//////////////////////////////////////////////////////////////cocoapods使用//////////////////////////////////////////////////////////////

一.添加第三方库,步骤如下

1.搜索要添加的库

$ pod search AFNetworking 

如果CocoaPods支持,将会输出搜索到的所有类库版本和信息,以及在Podfile中配置的写法,例如:

[plain]  view plain copy
  1. -> AFNetworking (2.1.0)  
  2.    A delightful iOS and OS X networking framework.  
  3.    pod 'AFNetworking', '~> 2.1.0'  
  4.    - Homepage: https://github.com/AFNetworking/AFNetworking  
  5.    - Source:   https://github.com/AFNetworking/AFNetworking.git  
  6.    - Versions: 2.1.0, 2.0.3, 2.0.2, 2.0.1, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1,  
  7.    2.0.0, 1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0RC3, 1.0RC2,  
  8.    1.0RC1, 1.0.1, 1.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1, 0.10.1, 0.10.0 [master  
  9.    repo]  
  10.    - Sub specs:  
  11.      - AFNetworking/Serialization (2.1.0)  
  12.      - AFNetworking/Security (2.1.0)  
  13.      - AFNetworking/Reachability (2.1.0)  
  14.      - AFNetworking/NSURLConnection (2.1.0)  
  15.      - AFNetworking/NSURLSession (2.1.0)  
  16.      - AFNetworking/UIKit (2.1.0)  
  17.   
  18.   
  19. -> AFNetworking+AutoRetry (0.0.2)  
  20.    Auto Retries for AFNetworking requests  
  21.    pod 'AFNetworking+AutoRetry', '~> 0.0.2'  
  22.    - Homepage: https://github.com/shaioz/AFNetworking-AutoRetry  
  23.    - Source:   https://github.com/shaioz/AFNetworking-AutoRetry.git  
  24.    - Versions: 0.0.2, 0.0.1 [master repo]  
  25.   
  26.   
  27. -> AFNetworking-RACExtensions (0.1.2)  
  28.    AFNetworking-RACExtensions is a delightful extension to the AFNetworking  
  29.    classes for iOS and Mac OS X.  
  30.    pod 'AFNetworking-RACExtensions', '~> 0.1.2'  
  31.    - Homepage: https://github.com/CodaFi/AFNetworking-RACExtensions  
  32.    - Source:   https://github.com/CodaFi/AFNetworking-RACExtensions.git  
  33.    - Versions: 0.1.2, 0.1.1, 0.0.1 [master repo]  
  34.   
  35.   
  36. -> AFNetworking-ReactiveCocoa (0.0.2)  
  37.    Make AFNetworking reactive.  
  38.    pod 'AFNetworking-ReactiveCocoa', '~> 0.0.2'  
  39.    - Homepage: https://github.com/uasi/AFNetworking-ReactiveCocoa  
  40.    - Source:   https://github.com/uasi/AFNetworking-ReactiveCocoa.git  
  41.    - Versions: 0.0.2, 0.0.1 [master repo]  
  42.   
  43.   
  44. -> AFNetworking-Synchronous (0.2.0)  
  45.    Synchronous requests for AFNetworking  
  46.    pod 'AFNetworking-Synchronous', '~> 0.2.0'  
  47.    - Homepage: https://github.com/paulmelnikow/AFNetworking-Synchronous  
  48.    - Source:   https://github.com/paulmelnikow/AFNetworking-Synchronous.git  
  49.    - Versions: 0.2.0, 0.1.0 [master repo]  

好吧,进入主题,首先在我们的工程目录下创建Podfile文件,该文件用来控制CocoaPods的下载内容,该文件是没有后缀的,每个项目只需要一个Podfile文件,如果需要导入多个类库那么统一在该文件中书写下载内容。

创建过程:首先进入到工程目录,然后创建Podfile最后使用vim编写,命令分别如下:

$ cd Desktop/CocoaPodsDemo/    //具体查看 cd指令

$ touch Podfile 

$ vim Podfile   //同效命令 open -e Podfile,编辑 Podfile 每次使用此命令前需确保路径准确,使用 cd命令指定路径

[plain] view plaincopy
  1. platform:ios, '7.0'  
  2. pod "AFNetworking", "~>2.1"  
  3. ~                                                                                 
  4. ~                                                                                 
  5. ~                                                                                 
  6. ~                                                                                 
  7. ~                                                                                 
  8. ~                                                                                 
  9. ~                                                                                 
  10. ~                                                                                 
  11. ~                                                                                 
  12. ~                                                                                 
  13. ~                                                                                 
  14. ~                                                                                 
  15. ~                                                                                 
  16. ~                                                                                 
  17. ~                                                                                 
  18. ~                                                                                 
  19. ~                                                                                 
  20. ~                                                                                 
  21. ~                                                                                 
  22. ~                                                                                 
  23. ~                                                                                 
  24. :wq  
开始编辑是按i 在编辑完成后先按esc,再按“:”,输入wq保存并退出。

2.下载库文件

在有了Podfile后,输入以下命令安装类库:

[plain] view plaincopy
  1. $ pod install  

安装完成后,输出信息如下:

[plain]  view plain copy
  1. $ pod install  
  2. Analyzing dependencies  
  3. Downloading dependencies  
  4. Installing AFNetworking (2.1.0)  
  5. Installing JSONKit-NoWarning (1.1)  
  6. Installing MBProgressHUD (0.8)  
  7. Generating Pods project  
  8. Integrating client project  
  9.   
  10. [!] From now on use `CocoaPodsDemo.xcworkspace`.  

最后一句表明,如果要正确打开工程我们应该打开最新生成的.xcworkspace文件。


二.删除库文件

在前面Podfile文件中把要删除的库文件安装命令删除,如这里的pod "AFNetworking", "~>2.1" 

然后执行如下命令:

$ pod update


//////////////////////////////////////////////////////////////cocoapods使用-其他//////////////////////////////////////////////////////////////

正确编译运行一个包含CocoaPods类库的项目

如果一个项目中已经包含了CocoaPods的配置文件,但是编译却出现错误,那么我们仅需要一行命令就可以配置好所有的第三方类库了:

[plain]  view plain copy
  1. $ pod update  

参考Demo的项目地址:https://github.com/UrbanApps/UAAppReviewManager

打开Demo的UAAppReviewManagerExample目录,可以发现少了一个xcworkspace文件,另外还有几个CocoaPods的配置文件在这里:

MAC上安装cocoapods方法及使用简介_第1张图片

打开Podfile文件看看:

[plain] view plaincopy
  1. target 'UAAppReviewManagerExampleiOS' do  
  2.   platform :ios, '5.1'  
  3.   pod 'UAAppReviewManager', :path => '..'  
  4. end  
  5.   
  6. target 'UAAppReviewManagerExampleMac' do  
  7.   platform :osx, '10.7'  
  8.   pod 'UAAppReviewManager', :path => '..'  
  9. end  

platform表示类库支持的最高版本,该类库的target包括了iOS和Mac。而path指定了到上级目录去查找该类库的安装信息。

编译工程,将会出错,原因是我们没有将类库链接到工程中:

MAC上安装cocoapods方法及使用简介_第2张图片

因此我们要用pod命令进行安装。cd到Example目录下执行pod install命令,将会报错:

[plain] view plaincopy
  1. $ pod install  
  2. Analyzing dependencies  
  3. Fetching podspec for `UAAppReviewManager` from `..`  
  4. [!] Unable to satisfy the following requirements:  
  5. - `UAAppReviewManager (from `..`)` required by `Podfile`  

原因是要添加的类库已经有最新版本推出,而Podfile文件并没有更改其下载版本(Podfile文件过期),于是获取安装数据失败。

因此我们要用update命令获取最新版本的类库:

[plain] view plaincopy
  1. $ pod update  
  2. Analyzing dependencies  
  3. Fetching podspec for `UAAppReviewManager` from `..`  
  4. Downloading dependencies  
  5. Installing UAAppReviewManager (0.2.1)  
  6. Generating Pods project  
  7. Integrating client project  
  8.   
  9. [!] From now on use `UAAppReviewManagerExample.xcworkspace`.  
同样地我们成功生成了xcworkspace文件:

MAC上安装cocoapods方法及使用简介_第3张图片


再编译运行就没问题了。



补充

当Cocoapods向项目中增加了一个第三方库的时候,不仅仅只是添加代码,由于每个第三方类库有不同的target,所以每次添加第三方库时,都会有几个文件被写入磁盘,包括Podfile.lock和Manifest.lock文件等。

其中Podfile.lock记录了需要被安装的pod的每个已安装的版本。如果你想知道已安装的pod是哪个版本,可以查看这个文件。

Manifest.lock是每次运行pod install时创建的Podfile.lock文件的副本。



本文参考资料及扩展阅读

CocoaPods安装和使用教程

AFNetworking

CocoaPods详解之----使用篇

CocoaPods一个Objective-C第三方库的管理利器

CocoaPods Under The Hood

iOS系列译文:深入理解 CocoaPods

CocoaPods 安装使用

CocoaPods使用手册





你可能感兴趣的:(IOS开发)