安装cocoapods

iOS开发~CocoaPods使用详细说明



官网是这样给推荐的: 

在创建Podfile的时候,用这种格式使用, 

platform :ios, '8.0'

#use_frameworks!个别需要用到它,比如reactiveCocoa


target 'MyApp' do

  pod 'AFNetworking', '~> 2.6'

end

//执行此处代码时 不能 出错 意思 就是 导入一个完全不会出出现问题的第三方 生成工作空间 否择 生成不了工作空间




一、概要

iOS开发时,项目中会引用许多第三方库,CocoaPodshttps://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库。


二、安装

由于网上的教程基本都大同小异,但细节之处还不是很完善,所以借机会在这里补充下:

注:要使用CocoaPods,那就要下载安装它,而下载安装CocoaPods需要Ruby环境


1Ruby环境搭建

当前安装环境为Mac mini 10.8.5Mac  OS本身自带Ruby,但还是更新一下保险,因为我第一次安装在没有更新Ruby的情况下就失败了。

a 查看下当前ruby版本:打开终端输入 ruby -v(确实安装了,不过用这个版本接下来工作失败了,所以更新下ruby





  1. ritekiMac-mini:PodTest lucky$ ruby -v  
  2. ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]  
  3. ritekiMac-mini:PodTest lucky$   


b 更新ruby


终端输入如下命令(Ruby镜像指向taobao,避免被墙,你懂得

gem sources --remove https://rubygems.org/ 

gem sources -a https://ruby.taobao.org/ 

gem sources -l  (用来检查使用替换镜像位置成功)





  1. ritekiMac-mini:~ lucky$ gem sources --remove https://rubygems.org/  
  2. https://rubygems.org/ removed from sources  
  3. ritekiMac-mini:~ lucky$ gem sources -a https://ruby.taobao.org/  
  4. https://ruby.taobao.org/ added to sources  
  5. ritekiMac-mini:~ lucky$ gem sources -l  
  6. *** CURRENT SOURCES ***  



2、下载安装CocoaPods

终端输入:sudo gem install cocoapods 





  1. ritekiMac-mini:~ lucky$ sudo gem install cocoapods  
  2.   
  3. CHANGELOG:  
  4.   
  5. ## 0.32.1  
  6.   
  7. ##### Bug Fixes  
  8.   
  9. * Fixed the Podfile `default_subspec` attribute in nested subspecs.    
  10.   [Fabio Pelosin][irrationalfab]  
  11.  \ [#2050](https://github.com/CocoaPods/CocoaPods/issues/2050)  
  12.   
  13.   
  14. Successfully installed cocoapods-0.32.1  
  15. Installing ri documentation for cocoapods-0.32.1  
  16. /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:280: warning: conflicting chdir during another chdir block  
  17. /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:287: warning: conflicting chdir during another chdir block  
  18. Done installing documentation for cocoapods after 10 seconds  
  19. 1 gem installed  



这样就下载安装好了CocoaPods



3、使用CocoaPods

a  新建一个项目,名字PodTest

20140520175652031.png


b  终端中,cd到项目总目录(注意:包含PodTest文件夹、PodTest.xcodeprojPodTestTest的那个总目录)





  1. cd /Users/lucky/Desktop/PodTest   


c  建立Podfile(配置文件)


接着上一步,终端输入 vim Podfile

20140520181126609.png


键盘输入 i,进入编辑模式,输入  

platform :ios, '7.0' 

pod 'MBProgressHUD', '~> 0.8'


然后按Esc,并且输入号进入vim命令模式,然后在冒号后边输入wq

20140520182621671.png


注意:键盘输入 :后,才能输入wq。回车后发现PodTest项目总目录中多一个Podfile文件

20140520181840484.png


激动人心的时刻到了:确定终端cd到项目总目录,然后输入 pod install,等待一会,大约3分钟。


20140520183013937.png


查看项目根目录:

20140520183357953.png


注意:现在打开项目不是点击 PodTest.xodeproj了,而是点击 PodTest.xcworkspace


打开项目后看到项目结构并且测试一下:

20140520183654703.png


运行结果:

20140520183813687.png


补充:

1CocoaPods的基本安装及使用都详细的说明了,但还有一些补充,当需要同时导入多个第三方时候怎么办

这就需要修改Podfile了,就是用vim编辑的那个保存在项目根目录中的文件,修改完了Podfile文件,需要重新执行一次pod install命令。

例如:


platform :ios

pod 'JSONKit',       '~> 1.4'

pod 'AFNetworking',  '~> 2.0'


2CocoaPods可以查找你想要的第三方库

终端输入命令:pod search UI

疯了了,我怎么查找这么大众的关键字,好多库~~

20140520184729015.png

然后重新编辑Podfile文件,按照之前的步骤,把更多的库都导入项目!


本博客盗窃自阿福的博客,地址:http://blog.csdn.net/lizhongfu2013/article/details/26384029


============================我是分割线==================================

2015-11-18更新

淘宝已经关闭HTTP协议的景象服务,改为HTTPS协议。

淘宝ruby地址:https://ruby.taobao.org/





//************************************************************************************************************




[置顶] iOS开发~CocoaPods使用详细说明



版权声明:本文为博主原创文章,未经博主允许不得转载。

一、概要

iOS开发时,项目中会引用许多第三方库,CocoaPodshttps://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库(从一个坑出来,又进了另一个坑而已……)。


二、安装

由于网上的教程基本都大同小异,但细节之处还不是很完善,所以借机会在这里补充下:

注:要使用CocoaPods,那就要下载安装它,而下载安装CocoaPods需要Ruby环境


1Ruby环境搭建

当前安装环境为Mac mini 10.8.5Mac  OS本身自带Ruby,但还是更新一下保险,因为我第一次安装在没有更新Ruby的情况下就失败了。

a 查看下当前ruby版本:打开终端输入 ruby -v(确实安装了,不过用这个版本接下来工作失败了,所以更新下ruby



  1. ritekiMac-mini:PodTest lucky$ ruby -v  
  2. ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]  
  3. ritekiMac-mini:PodTest lucky$   


b 更新ruby


终端输入如下命令(Ruby镜像指向taobao,避免被墙,你懂得

gem sources --remove https://rubygems.org/ 

gem sources -a http://ruby.taobao.org/ 

gem sources -l  (用来检查使用替换镜像位置成功)



  1. ritekiMac-mini:~ lucky$ gem sources --remove https://rubygems.org/  
  2. https://rubygems.org/ removed from sources  
  3. ritekiMac-mini:~ lucky$ gem sources -a http://ruby.taobao.org/  
  4. http://ruby.taobao.org/ added to sources  
  5. ritekiMac-mini:~ lucky$ gem sources -l  
  6. *** CURRENT SOURCES ***  


补充:(2016-01-20更新

淘宝已经关闭HTTP协议的景象服务,改为HTTPS协议。

淘宝ruby地址:https://ruby.taobao.org/

2、下载安装CocoaPods

终端输入:sudo gem install cocoapods 



  1. ritekiMac-mini:~ lucky$ sudo gem install cocoapods  
  2.   
  3. CHANGELOG:  
  4.   
  5. ## 0.32.1  
  6.   
  7. ##### Bug Fixes  
  8.   
  9. * Fixed the Podfile `default_subspec` attribute in nested subspecs.    
  10.   [Fabio Pelosin][irrationalfab]  
  11.  \ [#2050](https://github.com/CocoaPods/CocoaPods/issues/2050)  
  12.   
  13.   
  14. Successfully installed cocoapods-0.32.1  
  15. Installing ri documentation for cocoapods-0.32.1  
  16. /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:280: warning: conflicting chdir during another chdir block  
  17. /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:287: warning: conflicting chdir during another chdir block  
  18. Done installing documentation for cocoapods after 10 seconds  
  19. 1 gem installed  



这样就下载安装好了CocoaPods



3、使用CocoaPods

a  新建一个项目,名字PodTest

20140520175652031.png


b  终端中,cd到项目总目录(注意:包含PodTest文件夹、PodTest.xcodeprojPodTestTest的那个总目录)



  1. cd /Users/lucky/Desktop/PodTest   


c  建立Podfile(配置文件)


接着上一步,终端输入 vim Podfile

20140520181126609.png


键盘输入 i,进入编辑模式,输入

platform :ios, '7.0' 

pod 'MBProgressHUD', '~> 0.8'


然后按Esc,并且输入号进入vim命令模式,然后在冒号后边输入wq

20140520182621671.png


注意:键盘输入 :后,才能输入wq。回车后发现PodTest项目总目录中多一个Podfile文件

20140520181840484.png


激动人心的时刻到了:确定终端cd到项目总目录,然后输入 pod install,等待一会,大约3分钟。


20140520183013937.png


查看项目根目录:

20140520183357953.png


注意:现在打开项目不是点击 PodTest.xodeproj了,而是点击 PodTest.xcworkspace


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

a、第三方库会以成静态库方式引入工程使用


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

bxcworkspacePodTest.xcworkspace)的作用是管理工程和第三方库


PodTest工程和Pods工程被以workspace的形式组织和管理。


打开项目后看到项目结构并且测试一下:

20140520183654703.png


运行结果:

20140520183813687.png


补充:

1CocoaPods的基本安装及使用都详细的说明了,但还有一些补充,当需要同时导入多个第三方时候怎么办

这就需要修改Podfile了,就是用vim编辑的那个保存在项目根目录中的文件,修改完了Podfile文件,需要重新执行一次pod install命令。

例如:


platform :ios

pod 'JSONKit',       '~> 1.4'

pod 'AFNetworking',  '~> 2.0'


2CocoaPods可以查找你想要的第三方库

终端输入命令:pod search UI

疯了了,我怎么查找这么大众的关键字,好多库~~

20140520184729015.png

然后重新编辑Podfile文件,按照之前的步骤,把更多的库都导入项目!

3、上文中建立Podfile(配置文件)接着上一步,终端输入 vim Podfile”步骤,如果不习惯使用vim编辑器,也可以使用linux命令touch,生成一个空的Podfile文件,然后使用其他的文本编辑器都可以,例如:



  1. lizhongfudeMacBook-Pro:~ lizhongfu$ cd /Users/lizhongfu/Desktop/TestProject   
  2. lizhongfudeMacBook-Pro:TestProject lizhongfu$ touch Podfile  

编辑好Podfile文件后,就可以执行pod install第三方导入了(详见:补充第1条),CocoaPods就开始为我们做下载源码、配置依赖关系、引入需要的framework等一些列工作。


4、如果已经生成了CocoaPods管理的工程,则可以在Xcode中编辑Podfile,编辑保存后,别忘记cd到根目录,调用pod install命令

20150815182053801.png

5、项目存在多个Target的时候,需要配置Podfile文件来支持新增加的Target,否则只支持项目默认建立时生成的Target

a、如果新建一个Target,命名为Second,并且SecondTest两个Target所需要的第三方支持相同,也就是使用相同的Pods依赖库,则可以使用

link_with关键字:



  1. link_with 'Test''Second'  
  2. platform :ios  
  3. platform :ios, ‘9.0’    
  4. pod 'AFNetworking''~> 2.0'  


b、如果不同的Target需要不同的依赖库,则可以



  1. platform :ios  
  2. target :'Test' do  
  3. pod 'Reachability'  
  4. pod 'SBJson'     
  5. pod 'AFNetworking'   
  6. end    
  7.     
  8. target :'Second' do  
  9. pod 'OpenUDID'   
  10. end  





6、出现/Library/Ruby/Gems/2.0.0/gems/claide-0.8.1/lib/claide/command.rb:417:in `help!': [!] You cannot run CocoaPods as root. (CLAide::Help)

重新打开一个终端,然后pod install,不要sudo pod install

7、如果$ pod install时候遇到:

Analyzing dependencies  

Fetching podspec for `UAAppReviewManager` from `..`  

[!] Unable to satisfy the following requirements:  

- `UAAppReviewManager (from `..`)` required by `Podfile`  

8、如果要移除Cocoapods,则可以:


a. 删除工程文件夹下的PodfilePodfile.lockPods文件夹

b. 删除xcworkspace文件

c. 使用xcodeproj文件打开工程,删除Frameworks组下的Pods.xcconfiglibPods.a引用

d. 在工程设置中的Build Phases下删除Check Pods Manifest.lockCopy Pods Resources

20130824010939328.png



ps:如果将cocoapods集成到工程中后不小心修改或删除了其相关文件导致无法便以通过例如:不小心把

Pods.xcconfig给删除了然后出现diff: /../Podfile.lock: No such file or directory,用上面的方法删除cocoapods后,

再重新$sudo pod install一下就好了。

如果编译的时候出现权限问题,对工程文件夹$sudo chmod 777 path-to-project-folder/*

$sudo chown 777 path-to-project-folder/*


9、当库正常导入,但还是找不到相关头文件,则可以:

TARGETS -> Search Paths -> User Header Search Paths 写入 ${SRCROOT}再将后面参数改为recursive

20150815194205578.png


10Xcode - ld: library not found for -lPods

当新增加一个Target,并且pod install后,由于创建项目是默认创建的TargetBuild Phases中引用了旧的.a,例如libPods.a,当新增加Targget后,libPods.a已经变成了libPods-Test.a,而新增加的Target名字为Second,依赖的.alibPods-Second.a。所以libPods.a此时已经不再被引用,并且不会被生成,如果任何地方引用了就会报错,解决办法是出现问题的TargetBuild Phases中删除无用的.a引用,例如libPods.a

20150815225228933.png20150815230746993.png

11pod update

若果Podfile中指定的依赖库版本不是写死的,当对应的依赖库有了更新,无论有没有Podfile.lock文件都会去获取Podfile文件描述的允许获取到的最新依赖库版本。

12、在引用第三方,如果想明确第三方版本号的时候,还有一些小细节:


  1. pod 'AFNetworking'      //不显式指定依赖库版本,表示每次都获取最新版本  <span style="color: rgb(50, 62, 50); font-family: Arial; font-size: 14px; line-height: 26px;">11</span><span style="color: rgb(50, 62, 50); font-family: Arial; font-size: 14px; line-height: 26px;">pod update</span>  
  2. pod 'AFNetworking''2.0'     //只使用2.0版本    
  3. pod 'AFNetworking''> 2.0'     //使用高于2.0的版本    
  4. pod 'AFNetworking''>= 2.0'     //使用大于或等于2.0的版本    
  5. pod 'AFNetworking''< 2.0'     //使用小于2.0的版本    
  6. pod 'AFNetworking''<= 2.0'     //使用小于或等于2.0的版本    
  7. pod 'AFNetworking''~> 0.1.2'     //使用大于等于0.1.2但小于0.2的版本    
  8. pod 'AFNetworking''~>0.1'     //使用大于等于0.1但小于1.0的版本    
  9. pod 'AFNetworking''~>0'     //使用最新版本,与不显示指定依赖库版本相同  



巧大神这里有更多内容,其中介绍了pod制作及Podfile.lock的相关内容《用CocoaPodsiOS程序的依赖管理》

13、如果pod install之后,一直停留在Updating local specs repositories,可以试一试 pod install --verbose --no-repo-update,原因是pod install被墙了

 14、(2016611日)The dependency 'xxx' is not used in any concrete target

Podfile文件中需要明确指出使用第三方库的target,例如:

platform:ios,'7.0'

pod 'MJRefresh', '~> 3.1.0'

pod 'SDWebImage', '~> 3.7.6'

pod 'SVProgressHUD', '~> 2.0.3'

pod 'AFNetworking', '~> 3.1.0'


改为:


platform:ios,'7.0'

target "MyTarget" do

pod 'MJRefresh', '~> 3.1.0'

pod 'SDWebImage', '~> 3.7.6'

pod 'SVProgressHUD', '~> 2.0.3'

pod 'AFNetworking', '~> 3.1.0'

end



//*************************************************************************************************



CocoaPods报错:The dependency `AFNetworking ` is not used in any concrete target



ex:

The dependency `` is not used in any concrete target

The dependency `AFNetworking ` is not used in any concrete target


  • CocoaPods再遇困难,前几天电脑重装了系统,所有的开发工具就都装了最新的,当我用CocoaPods的时候,出了一个提示,大概就是我的版本不是 last version,然后给你提示了一个命令,直接复制即可,就是下面这个:

sudo gem install cocoapods --pre

安装cocoapods的预览版本,就会更新下来新的1.0.0.beta.2版本,如下所示:

Successfully installed cocoapods-1.0.0.beta.2

Parsing documentation for cocoapods-1.0.0.beta.2

很高兴啊,更新了新的版本,然而pod install就出错了,悲了个剧!出错如下:

Updating local specs repositories

Analyzing dependencies

[!] The dependency `FMDB (~> 2.3)` is not used in any concrete target.

The dependency `SDWebImage (~> 3.6)` is not used in any concrete target.

The dependency `AFNetworking (~> 2.3.0)` is not used in any concrete target.

The dependency `DACircularProgress (~> 2.2.0)` is not used in any concrete target.

The dependency `MBProgressHUD (~> 0.8)` is not used in any concrete target.

The dependency `PSTCollectionView (~> 1.2.1)` is not used in any concrete target.

The dependency `HPGrowingTextView (~> 1.1)` is not used in any concrete target.

The dependency `ProtocolBuffers (= 1.9.3)` is not used in any concrete target.

The dependency `leveldb-library (~> 1.18.1)` is not used in any concrete target.

The dependency `SCLAlertView-Objective-C (~> 0.7.5)` is not used in any concrete target.

The dependency `MWPhotoBrowser (~> 1.4.1)` is not used in any concrete target.

The dependency `MMMarkdown (~> 0.5)` is not used in any concrete target.

The dependency `MJExtension (~> 2.5.16)` is not used in any concrete target.

The dependency `MJRefresh (~> 2.4.12)` is not used in any concrete target.

The dependency `Masonry (~> 0.6.3)` is not used in any concrete target.

我用的三方库比较多,挺长的,出这个错是告诉我们我们所用的库没有指定target,它不知道用在哪里,所以就给报错了,然后我去了cocoapods的官网看了下,cocoapods官网地址


官网是这样给推荐的: 

在创建Podfile的时候,用这种格式使用, 

platform :ios, '8.0'

#use_frameworks!个别需要用到它,比如reactiveCocoa


target 'MyApp' do

  pod 'AFNetworking', '~> 2.6'

  pod 'ORStackView', '~> 3.0'

  pod 'SwiftyJSON', '~> 2.3'

end


  • 里面的 MyApp 记得替换为自己攻城里面的target。这样就基本OK了,执行pod install / pod update 就都可以了。(use_frameworks! 这个是个别需要的,这里修改一下,可以把我上面的代码中的这一行【删除】


下面是另外一种写法,

platform :ios, '8.0'

#use_frameworks!个别需要用到它,比如reactiveCocoa


def pods

  pod 'AFNetworking', '~> 2.6'

  pod 'ORStackView', '~> 3.0'

  pod 'SwiftyJSON', '~> 2.3'

end

target 'MyApp' do

  pods

end





//*********************************************************




CocoaPods版本升级


和往常一样使用CocoaPods管理一个基于FMDB的项目类库

命令行执行

$ pod install

[!] The 'master' repo requires CocoaPods 0.32.1 - 

失败,提示需要CocoaPods 0.32.1版本

查看CocoaPods版本

$ pod --version

0.29.0

确实需要更新了

命令行更新(安装)步骤【更新】

$ sudo gem update --system // 先更新gem,国内需要切换源

$ gem sources --remove https://rubygems.org/

$ gem sources -a https://ruby.taobao.org/

$ gem sources -l

\*\*\* CURRENT SOURCES \*\*\*

https://ruby.taobao.org/

$ sudo gem install cocoapods // 安装cocoapods

$ pod setup

和安装过程是一样的,再次查看版本

$ pod --version

0.39.0






//********************************************************************************************





史上最详细的CocoaPods安装教程



虽然网上关于CocoaPods安装教程多不胜数,但是我在安装的过程中还是出现了很多错误,所以大家可以照下来步骤装一下,我相信会很好用.

前言

iOS项目中使用第三方类库可以说是非常常见的事,但是要正确地配置他们有时候是非常繁琐的事情,幸运的是CocoaPods是一个很好的解决方案。

什么是CocoaPods

CocoaPodsOS XiOS下的一个第三类库管理工具,通过CocoaPods工具我们可以为项目添加被称为“Pods”的依赖库(这些类库必须是CocoaPods本身所支持的),并且可以轻松管理其版本。

Cocoapods意义体现在两个方面。第一,在引入第三方库时它可以自动为我们完成各种各样的配置,包括配置编译阶段、连接器选项、甚至是ARC环境下的-fno-objc-arc配置等。第二,使用CocoaPods可以很方便地查找新的第三方库,这些类库是比较标准的,而不是网上随便找到的,这样可以让我们找到真正好用的类库。

接下来我们将介绍CocoaPods的使用。

CocoaPods的核心组件

CocoaPods是用Ruby写的,并划分成了若干个Gem包。

CocoaPods在解析执行过程中最重要的几个包的路径分别是:CocoaPods/CocoaPods CocoaPods/Core CocoaPods/Xcodeproj

CocoaPods / CocoaPod:这是面向用户的组件,每当执行一个pod命令时,这个组件将被激活。它包括了所有实用CocoaPods的功能,并且还能调用其他gem包来执行任务。

CocoaPods / CoreCore gem提供了与CocoaPods相关的文件(主要是podfilepodspecs)的处理。

 

Podfile:该文件用于配置项目所需要的第三方库,它可以被高度定制。本文中我们主要在这里做动作。

Podspec:该文件描述了一个库将怎样被添加进工程中。.podspec文件可以标识该第三方库所需要的源码文件、依赖库、编译选项,以及其他第三方库需要的配置。

CocoaPods / Xcodeproj:这个包负责处理工程文件,它能创建以及修改.xcodeproj文件和.xcworkspace文件。它也可以作为一个独立的包使用,当你要编写修改项目文件的脚本时,可以考虑使用CocoaPods/Xcodeproj



 

Cocoapods安装步骤

1、升级Ruby环境

终端输入:$gem update --system

此时会出现

ERROR: While executing gem ... (Gem::FilePermissionError)

You don‘t have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

zijingMacBook-Pro:~ shiyunlei$ sudo gem update —system

这个是因为你没有权限去更新Ruby

这个时候你可以在终端使用:$sudo gem update —system来进行升级

20141023190954371.png

 

这个时候表示Ruby升级完成。

 

2、安装CocoaPods时我们要访问cocoapods.org,该网站可能被我们大天朝墙了,这样下载安装可能会是龟速,幸好我们可以用淘宝的Ruby镜像来访问该网站,方法如下:

1gem sources --remove https://rubygems.org/

2gem sources -a http://ruby.taobao.org/

可以使用下面的命令(红色部分)查看是否更换镜像成功(如下图所示):

$ gem sources -l

20141023190955372.png

 

3、安装Cocoapods,在终端输入命令

$sudo gem install cocoapods

这个时候会提示你输入密码,注:在终端输入密码不会有提示,光标也不会移动,一定要注意

开始安装,如下图:PS:这个过程可能花费时间比较长

20141023190957375.png

 

安装成功如下:

20141023191000385.png

 

4、使用search命令搜索类库名:

$pod search AFNetworking

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

-> AFNetworking (2.3.1)

A delightful iOS and OS X networking framework.

pod ‘AFNetworking‘, ‘~> 2.3.1’(这个语句是需要在编辑Podfile的时候输入的命令,即是如何安装下载相关类库的指令)

- Homepage: https://github.com/AFNetworking/AFNetworking

- Source: https://github.com/AFNetworking/AFNetworking.git

- Versions: 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0,

2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1, 1.3.4, 1.3.3,

1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3, 1.0RC2, 1.0RC1,

0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1 [master repo]

- Sub specs: - AFNetworking/Serialization (2.3.1) -

AFNetworking/Security (2.3.1) - AFNetworking/Reachability (2.3.1) -

AFNetworking/NSURLConnection (2.3.1) - AFNetworking/NSURLSession (2.3.1)

- AFNetworking/UIKit (2.3.1)

-> AFNetworking+AutoRetry (0.0.5)

Auto Retries for AFNetworking requests

pod ‘AFNetworking+AutoRetry‘, ‘~> 0.0.5‘

- Homepage: https://github.com/shaioz/AFNetworking-AutoRetry

- Source: https://github.com/shaioz/AFNetworking-AutoRetry.git

- Versions: 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1 [master repo]

5、需要在工程中创建一个Podfile文件,

使用命令:

$cd /Users/shiyunlei/Desktop/CocoapodsSample(进入工程目录,cd后面的是工程的路径)

$ touch Podfile(创建Podfile文件)

20141023191002388.png

 

然后使用vim编辑Podfile文件,使用命令:

$ vim Podfile

进入如下界面

20141023191002389.png

 

然后紧接着按键盘上的“i”键,变成如下状态,这个时候可以对Podfile文件进行编辑:

$platform:ios, ‘7.0‘

$ pod ‘AFNetworking‘, ‘~> 2.3.1‘

在编辑完成后按“esc”

20141023191003394.png

 

在按“:”,这个时候输入wq,点击回车,保存并退出。

20141023191004395.png

 

这个时候打开Podfile文件就会看到里面添加了刚才在终端输入的一行语句,如下图

20141023191004396.png

 

然后在终端输入命令安装相应的第三方类库

$pod install

20141023191013425.png

 

因为这个过程需要下载相应的类库,所以时间和网速有关。

安装成功之后截图如下:

20141023191024436.png

 

这个时候会看到之后打开工程都需要从类型为工程名.xcworkspace文件打开。

20141023191024437.png

史上最详细的CocoaPods安装教程





////***********************************************************************************************************


1 从此以后 需要使用cocoapods 生成的 .xcworkspace 文件来打开工程 , 而不是使用以前的 .xcodeprij 文件


2 每次更改 padfile 文件 , 都需要重新执行一次 pod update 命令


PS : 当 pod install 之后 , 除了podfile 还会生成一个名为podfile.lock 的文件 , 他会锁定当前各依赖库的版本 , 之后即使多次执行 pod install 也不会更改版本 

, 只有执行 pod update 才会改变 podfile.lock 在多人协作的时候 这样可以防止 第三方库 升级的时候 造成 大家各自的第三方 库版本不一致 , 所以用svn 

提交版本的时候 不能 把它落下 




//*************************************************************************************************************************************





CocoaPods安装和使用教程

portrait.gif 浅唱那回忆

  • 发布时间: 2014/08/08 10:26 阅读: 276 收藏: 3 点赞: 0 评论: 0

摘要 正文

目录

CocoaPods是什么?

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

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

如何下载和安装CocoaPods?

在安装CocoaPods之前,首先要在本地安装好Ruby环境。至于如何在Mac中安装好Ruby环境,请google一下,本文不再涉及。

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

sudo gem install cocoapods

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

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

$ gem sources --remove https://rubygems.org/

//等有反应之后再敲入以下命令

$ gem sources -a http://ruby.taobao.org/

为了验证你的Ruby镜像是并且仅是taobao,可以用以下命令查看:

$ gem sources -l

只有在终端中出现下面文字才表明你上面的命令是成功的:

*** CURRENT SOURCES ***


http://ruby.taobao.org/

上面所有的命令完成之时,在小编的终端上是这个的样子:

08102610_Tt2R.png

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

$ sudo gem install cocoapods

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

敲入以上命令时,小编终端上是这个样子的(由于太长,仅截取前面一部分):

08102611_Eg9M.png

看到这里,你心里会不会说,我靠!太爽了,这么容易就可以下载并且安装好了!是的,小编也是这么想的。CocoPods就是这么简单,使用也十分简单。继续往下看吧。

如何使用CocoaPods?

好了,安装好CocoPods之后,接下来就是使用它。所幸,使用CocoPods和安装它一样简单,也是通过一两行命令就可以搞定。

小编在这里用两种使用场景来具体说明如何使用CocoaPods。

场景1:利用CocoaPods,在项目中导入AFNetworking类库

AFNetworking类库在GitHub地址是:https://github.com/AFNetworking/AFNetworking

为了确定AFNetworking是否支持CocoaPods,可以用CocoaPods的搜索功能验证一下。在终端中输入:

$ pod search AFNetworking

过几秒钟之后,你会在终端中看到关于AFNetworking类库的一些信息。比如:

08102611_MXxi.png

这说明,AFNetworking是支持CocoaPods,所以我们可以利用CocoaPods将AFNetworking导入你的项目中。

首先,我们需要在我们的项目中加入CocoaPods的支持。你可以跟随小编的步骤,先利用Xcode创建一个名字CocoaPodsDemo的项 目,用于以下的教程。创建好之后,在继续下一步之前,小编先截图,看看项目没有支持CocoaPods时的项目Xcode目录结构:

08102611_ZKPs.png

上图等一下要跟项目支持CocoaPods之后的项目Xcode目录结构做对比。

你看到这里也许会问,CocoaPods为什么能下载AFNetworking呢,而不是下载其他类库呢?这个问题的答案是,有个文件来控制 CocoaPods该下载什么。这个文件就叫做“Podfile”(注意,一定得是这个文件名,而且没有后缀)。你创建一个Podfile文件,然后在里 面添加你需要下载的类库,也就是告诉CocoaPods,“某某和某某和某某某,快到碗里来!”。每个项目只需要一个Podfile文件。

好吧,废话少说,我们先创建这个神奇的PodFile。在终端中进入(cd命令)你项目所在目录,然后在当前目录下,利用vim创建Podfile,运行:

$ vim Podfile

然后在Podfile文件中输入以下文字:

platform :ios, '7.0'

pod "AFNetworking""~> 2.0"

注意,这段文字不是小编凭空生成的,可以在AFNetworking的github页面找到。这两句文字的意思是,当前AFNetworking支持的iOS最高版本是iOS 7.0, 要下载的AFNetworking版本是2.0。

然后保存退出。vim环境下,保存退出命令是:

:wq

这时候,你会发现你的项目目录中,出现一个名字为Podfile的文件,而且文件内容就是你刚刚输入的内容。注意,Podfile文件应该和你的工程文件.xcodeproj在同一个目录下。

这时候,你就可以利用CocoPods下载AFNetworking类库了。还是在终端中的当前项目目录下,运行以下命令:

$ pod install

因为是在你的项目中导入AFNetworking,这就是为什么这个命令需要你进入你的项目所在目录中运行。

运行上述命令之后,小编的终端出现以下信息:

EricmatoMacBook-Pro:CocoaPodsDemo ericwang$ pod install

Analyzing dependencies

Downloading dependencies

Installing AFNetworking (2.0.2)

Generating Pods project

Integrating client project


[!] From now on use `CocoaPodsDemo.xcworkspace`.

注意最后一句话,意思是:以后打开项目就用 CocoaPodsDemo.xcworkspace 打开,而不是之前的.xcodeproj文件。

你也许会郁闷,为什么会出现.xcodeproj文件呢。这正是你刚刚运行$ pod install命令产生的新文件。除了这个文件,你会发现还多了另外一个文件“Podfile.lock”和一个文件夹“Pods”。 点击 CocoaPodsDemo.xcworkspace 打开之后工程之后,项目Xcode目录结构如下图:

08102611_M2Gc.png

你会惊喜地发现,AFNetwoking已经成功导入项目了(红框部分)!

现在,你就可以开始使用AFNetworking.h啦。可以稍微测试一下,在你的项目任意代码文件中输入:

#import <AFNetworking.h>

或者

#import "AFNetworking.h"

然后编译,看看是否出错。如果你严格按照小编上述的步骤来,是不可能出错的啦。

至此,CocoPods的第一个应用场景讲述完毕。别看小编写了这么多,其实过程是十分简单的。总结一下就是:

  1. 先在项目中创建Podfile,Podfile的内容是你想导入的类库。一般类库的原作者会告诉你导入该类库应该如何写Podfile;
  2. 运行命令:`$ pod install.

下面,小编继续讲述第二种使用场景。

场景2:如何正确编译运行一个包含CocoPods类库的项目

你也许曾经遇到过(特别是新手iOS开发者)这种情况,好不容易在GitHub上找到一份代码符合自己想需求,兴冲冲下载下来,一编译,傻眼了,发 现有各种各样错误。一看,原来是缺失了各种其他第三方类库。这时候莫慌,你再仔细一看,会发现你下载的代码包含了Podfile。没错,这意味着你可以用 CocoaPods很方便下载所需要的类库。

下面,小编以代码 UAAppReviewManager 为例来说明如何正确编译运行一个包含CocoPods类库的项目。

UAAppReviewManager是一个能够让你方便地将提醒用户评分的功能加入你的应用中。当你去UAAppReviewManager的 GitHub地址下载这份代码之后,打开Example工程(UAAppReviewManagerExample),编译,你会发现Xcode报告一大 堆错误,基本都是说你编译的这份代码找不到某某头文件,这就意味着你要成功编译UAAppReviewManager的Example代码,必须先导入一 些第三方类库。同时你会发现在UAAppReviewManagerExample文件夹下面有三个跟CocosPods相关的文件(文件 夹):Podfile,Podfile.lock和Pods,如下图:

08102612_Atfh.png

这时候,打开终端,进入UAAppReviewManagerExample所在的目录,也就是和Podfile在同一目录下,和场景1一样,输入以下命令(由于已经有Podfile,所以不需要再创建Podfile):

$ pod update

过几秒(也许需要十几秒,取决于你的网络状况)之后,终端出现:

Analyzing dependencies

Fetching podspec for `UAAppReviewManager` from `../`

Downloading dependencies

Installing UAAppReviewManager (0.1.6)

Generating Pods project

Integrating client project


[!] From now on use `UAAppReviewManagerExample.xcworkspace`.

这时候,再回到UAAppReviewManagerExample文件夹看一看,会看到多了一个文件UAAppReviewManagerExample.xcworkspace:

08102612_GMeG.png

根据终端的信息提示,你以后就需用新产生的UAAppReviewManagerExample.xcworkspace来运行这个Example代码了。

打开UAAppReviewManagerExample.xcworkspace,编译运行,成功!如下图:

08102612_fq0K.png

注意,这里有个小问题,如果刚刚你不是输入$ pod update,而是输入$ pod install,会发现类库导入不成功,并且终端出现下面提示:

[!] Required version (UAAppReviewManager (from `../`)) not found for `UAAppReviewManager`.

Available versions: 0.1.6

这里的意思大概是Podfile文件过期,类库有升级,但是Podfile没有更改。$ pod install只会按照Podfile的要求来请求类库,如果类库版本号有变化,那么将获取失败。但是 $ pod update会更新所有的类库,获取最新版本的类库。而且你会发现,如果用了 $ pod update,再用 $ pod install 就成功了。

那你也许会问,什么时候用 $ pod install,什么时候用 $ pod update 呢,我又不知道类库有没有新版本。好吧,那你每次直接用 $ pod update 算了。或者先用 $ pod install,如果不行,再用 $ pod update



//*************************************************************************************************************************************




CocoaPods详解之----使用篇

2014-03-09  ccccshq  摘自 csdn博客   107948   444

转藏到我的图书馆


微信

分享:

CocoaPods详解之----使用篇

作者:wangzz

原文地址:http://blog.csdn.net/wzzvictory/article/details/18737437

转载请注明出处

如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号wangzzstrive来支持我,谢谢!



一、什么是CocoaPods

1、为什么需要CocoaPods

在进行iOS开发的时候,总免不了使用第三方的开源库,比如SBJsonAFNetworkingReachability等等。使用这些库的时候通常需要:


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


自从有了CocoaPods以后,这些繁杂的工作就不再需要我们亲力亲为了,只需要我们做好少量的配置工作,CocoaPods会为我们做好一切!

2、什么是CocoaPods

CocoaPods是一个用来帮助我们管理第三方依赖库的工具。它可以解决库与库之间的依赖关系,下载库的源代码,同时通过创建一个Xcodeworkspace来将这些第三方库和我们的工程连接起来,供我们开发使用。

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


二、安装CocoaPods

1、安装

CocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环境。幸运的是OS X系统默认的已经可以运行Ruby了,因此我们只需要执行以下命令:

[objc] view plaincopy?CODE_ico.png


  1. $ sudo gem install cocoapods  

CocoaPods是以Ruby gem包的形式被安装的。在安装执行的过程中,可能会问我们是不是更新rake,输入y即可。这是因为rake gem包会在安装的过程中检查更细,如果有可用的新版本就会出现刚才的选项。


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

[objc] view plaincopy?CODE_ico.png


  1. $ pod setup  

如果没有报错,就说明一切安装就成功了!


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

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

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

[objc] view plaincopy?CODE_ico.png


  1. $ gem sources --remove https://rubygems.org/  
  2. //等有反应之后再敲入以下命令  
  3. $ gem sources -a http://ruby.taobao.org/  

要想验证是否替换成功了,可以执行:

[objc] view plaincopy?CODE_ico.png


  1. $ gem sources -l  

正常的输出是:

[objc] view plaincopy?CODE_ico.png


  1. *** CURRENT SOURCES ***  
  2.   
  3. http://ruby.taobao.org/  


gem版本过老


gem是管理Ruby库和程序的标准包,如果它的版本过低也可能导致安装失败,解决方案自然是升级gem,执行下述命令即可:

[objc] view plaincopy?CODE_ico.png


  1. $ sudo gem update --system  


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

[objc] view plaincopy?CODE_ico.png


  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 plaincopy?CODE_ico.png


  1. $ rvm use ruby-1.9.3-p448  

解决该问题。


3、升级CocoaPods

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

[objc] view plaincopy?CODE_ico.png


  1. $ sudo gem install cocoapods  

需要注意的是,如果安装的时候使用了sudo,升级的时候一样需要使用该关键字,不然升级完了以后又会出现路径不匹配问题。



三、使用CocoaPods

如果之前做的一切顺利,接下来就可以体验体验CocoaPods的神奇之处了,需要经过以下几步:

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

1、创建Podfile

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

[objc] view plaincopy?CODE_ico.png


  1. $ cd /Users/wangzz/Desktop/CocoaPodsTest  
  2. $ touch Podfile  

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


39743623_1.jpg

PSPodfile文件也可以不放在工程的根目录下,只是会稍微麻烦点,在下一篇文章中会有介绍,敬请关注。)

2、编辑Podfile

根据需要,我们可以在Podfile文件中写入需要用到的第三方库,以SBJsonAFNetworkingReachability三个库为例,我的Podfile内容如下:

[objc] view plaincopy?CODE_ico.png


  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'  


3、执行导入命令


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

[objc] view plaincopy?CODE_ico.png


  1. $ cd /Users/wangzz/Desktop/CocoaPodsTest  
  2. $ pod install  

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

[objc] view plaincopy?CODE_ico.png


  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命令执行成功了。再来看看工程根目录发生的变化,如下图:


39743623_2.jpg

可以看到,工程的根目录下多了三个东西:CocoaPodsTest.xcworkspacePodfile.lock文件和Pods目录。

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


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

[objc] view plaincopy?CODE_ico.png


  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,界面如下:
39743623_3.jpg

工程的目录结构还是非常明显的。

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

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



//

/

/

/




CocoaPods安装和使用教程

[在原有描述文档基础上进行修正 来自:Sure]

CocoaPods是什么?

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

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

如何下载和安装CocoaPods

        在安装CocoaPods之前,首先要在本地安装好Ruby环境。至于如何在Mac中安装好Ruby环境,请google一下,本文不再涉及。

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

   $ sudo gem install cocoapods

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

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

   $ gem sources --remove https://rubygems.org/

   //等有反应之后再敲入以下命令

   $ gem sources -a https://ruby.taobao.org/

       为了验证你的Ruby镜像是并且仅是taobao,可以用以下命令查看:

   $ gem sources -l

       只有在终端中出现下面文字才表明你上面的命令是成功的:

   *** CURRENT SOURCES ***


   https://ruby.taobao.org/

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

   $ sudo gem install cocoapods

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

如何使用CocoaPods

好了,安装好CocoPods之后,接下来就是使用它。所幸,使用CocoPods和安装它一样简单,也是通过一两行命令就可以搞定。

场景1:利用CocoaPods,在项目中导入AFNetworking类库

AFNetworking类库在GitHub地址是:https://github.com/AFNetworking/AFNetworking

为了确定AFNetworking是否支持CocoaPods,可以用CocoaPods的搜索功能验证一下。在终端中输入:

$ pod search AFNetworking

过几秒钟之后,你会在终端中看到关于AFNetworking类库的一些信息。比如:

屏幕快照 2015-11-27 11.11.11.png

这说明,AFNetworking是支持CocoaPods,所以我们可以利用CocoaPodsAFNetworking导入你的项目中。

首先,我们需要在我们的项目中加入CocoaPods的支持。你可以跟随小编的步骤,先利用Xcode创建一个名字CocoaPodsDemo的项 目,用于以下的教程。创建好之后,在继续下一步之前,小编先截图,看看项目没有支持CocoaPods时的项目Xcode目录结构:

屏幕快照 2015-11-27 10.58.55.png

上图等一下要跟项目支持CocoaPods之后的项目Xcode目录结构做对比。

你看到这里也许会问,CocoaPods为什么能下载AFNetworking呢,而不是下载其他类库呢?这个问题的答案是,有个文件来控制 CocoaPods该下载什么。这个文件就叫做“Podfile”(注意,一定得是这个文件名,而且没有后缀)。你创建一个Podfile文件,然后在里 面添加你需要下载的类库,也就是告诉CocoaPods某某和某某和某某某,快到碗里来!。每个项目只需要一个Podfile文件。

好吧,废话少说,我们先创建这个神奇的PodFile。在终端中进入(cd命令)你项目所在目录,然后在当前目录下,利用vim创建Podfile,运行:

   $ vim Podfile

然后在Podfile文件中输入以下文字:

   platform :ios, '7.0'

   pod "AFNetworking", "~> 2.0"

注意,这段文字不是小编凭空生成的,可以在AFNetworkinggithub页面找到。这两句文字的意思是,当前AFNetworking支持的iOS最高版本是iOS 7.0, 要下载的AFNetworking版本是2.0

然后保存退出。vim环境下,保存退出命令是:

  :wq

这时候,你会发现你的项目目录中,出现一个名字为Podfile的文件,而且文件内容就是你刚刚输入的内容。注意,Podfile文件应该和你的工程文件.xcodeproj在同一个目录下。

这时候,你就可以利用CocoPods下载AFNetworking类库了。还是在终端中的当前项目目录下,运行以下命令:

   $ pod install (新增翻墙操作,提高加载效率(Sure):pod install —verbose —no-repo-update)

因为是在你的项目中导入AFNetworking,这就是为什么这个命令需要你进入你的项目所在目录中运行。

运行上述命令之后,小编的终端出现以下信息:

屏幕快照 2015-11-27 11.13.31.png

[!] Please close any current Xcode sessions and use `CocoapodDemo.xcworkspace` for this project from now on.

注意最后一句话,意思是:以后打开项目就用 CocoaPodsDemo.xcworkspace 打开,而不是之前的.xcodeproj文件。

你也许会郁闷,为什么会出现.xcodeproj文件呢。这正是你刚刚运行$ pod install命令产生的新文件。除了这个文件,你会发现还多了另外一个文件“Podfile.lock”和一个文件夹“Pods” 点击 CocoaPodsDemo.xcworkspace 打开之后工程之后,项目Xcode目录结构如下图:

屏幕快照 2015-11-27 11.04.35.png

你会惊喜地发现,AFNetwoking已经成功导入项目了(红框部分)!

现在,你就可以开始使用AFNetworking.h啦。可以稍微测试一下,在你的项目任意代码文件中输入:

   #import <AFNetworking.h>(通过cocoapods添加的三方库以静态库形式存在,通常以<>引入)

或者

   #import "AFNetworking.h"

然后编译,看看是否出错。

场景2:如何正确编译运行一个包含CocoPods类库的项目

你也许曾经遇到过(特别是新手iOS开发者)这种情况,好不容易在GitHub上找到一份代码符合自己想需求,兴冲冲下载下来,一编译,傻眼了,发 现有各种各样错误。一看,原来是缺失了各种其他第三方类库。这时候莫慌,你再仔细一看,会发现你下载的代码包含了Podfile。没错,这意味着你可以用 CocoaPods很方便下载所需要的类库。

下面,小编以代码 UAAppReviewManager 为例来说明如何正确编译运行一个包含CocoPods类库的项目。

UAAppReviewManager是一个能够让你方便地将提醒用户评分的功能加入你的应用中。当你去UAAppReviewManager GitHub地址下载这份代码之后,打开Example工程(UAAppReviewManagerExample),编译,你会发现Xcode报告一大 堆错误,基本都是说你编译的这份代码找不到某某头文件,这就意味着你要成功编译UAAppReviewManagerExample代码,必须先导入一 些第三方类库。同时你会发现在UAAppReviewManagerExample文件夹下面有三个跟CocosPods相关的文件(文件 夹):PodfilePodfile.lockPods

这时候,打开终端,进入UAAppReviewManagerExample所在的目录,也就是和Podfile在同一目录下,和场景1一样,输入以下命令(由于已经有Podfile,所以不需要再创建Podfile):

   $ pod update

过几秒(也许需要十几秒,取决于你的网络状况)之后,终端出现:

   Analyzing dependencies

   Fetching podspec for `UAAppReviewManager` from `../`

   Downloading dependencies

   Installing UAAppReviewManager (0.1.6)

   Generating Pods project

   Integrating client project

[!] From now on use `UAAppReviewManagerExample.xcworkspace`.

这时候,再回到UAAppReviewManagerExample文件夹看一看,会看到多了一个文件UAAppReviewManagerExample.xcworkspace

根据终端的信息提示,你以后就需用新产生的UAAppReviewManagerExample.xcworkspace来运行这个Example代码了。

打开UAAppReviewManagerExample.xcworkspace,编译运行,成功!

注意,这里有个小问题,如果刚刚你不是输入$ pod update,而是输入$ pod install,会发现类库导入不成功,并且终端出现下面提示:

[!] Required version (UAAppReviewManager (from `../`)) not found for `UAAppReviewManager`.

Available versions: 0.1.6

这里的意思大概是Podfile文件过期,类库有升级,但是Podfile没有更改。$ pod install只会按照Podfile的要求来请求类库,如果类库版本号有变化,那么将获取失败。但是 $ pod update会更新所有的类库,获取最新版本的类库。而且你会发现,如果用了 $ pod update,再用 $ pod install 就成功了。

那你也许会问,什么时候用 $ pod install,什么时候用 $ pod update 呢,我又不知道类库有没有新版本。好吧,那你每次直接用 $ pod update 算了。或者先用 $ pod install,如果不行,再用 $ pod update

好了,小编就啰嗦到这里吧。上述都只是CocoaPods的最基本用法。要继续研究CocoaPods其他高级用法,请点击这里CocoaPods Wiki

当然,如果你觉得小编上面的叙述有问题,或者你有补充,可以发邮件给小编:admin@code4app.com

另外,如果你希望小编写其他iOS技术类的文章,也可以发信给小编。

CocoPods常见错误汇总

屏幕快照 2015-11-27 11.23.51.png

     sudo xcode-select —switch /Application/Library/Xcode.6.1(自己Xcode名称)

待补充。。。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值