CocoaPods的安装和简单使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cyuyanenen/article/details/51848874

一、CocoaPods简介
CocoaPods是iOS项目的依赖管理工具,该项目源码在Github上管理。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和第三方开源库的时间。
在使用CocoaPods之前,开发项目需要用到第三方开源库的时候,我们需要
(1)把开源库的源代码复制到项目中
(2)添加一些依赖框架和动态库
(3)设置-ObjC,-fno-objc-arc等参数
(4)管理他们的更新
在使用CocoaPods后,我们只需要把用到的开源库放到一个名为Podfile的文件中,然后执行pod install。Cocoapods就会自动将这些第三方开源库的源码下载下来,并且为我们的工程设置好响应的系统依赖和编译参数。
(5)使用CocoaPods带来的便利:
<1> 不用到入SDK所依赖的其他库文件 例如:libsqlite3,UIKit.framework等
<2> 无需修改MRC或ARC
<3> 不用把下载的文件导入工程
<4> 当库更新时无须删除重新继承
<5> 不用去网上下载

二、CocoaPods的原理
CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。

三、CocoaPods的安装
1、打开终端,移除现有 Ruby 默认源(因为ruby 的软件源 https://rubygems.org 使用的是亚马逊的云服务,所以被墙了,需要更新一下 ruby 的源,使用下面2行代码将官方的 ruby 源替换成国内淘宝的源)

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

2、验证新源是否替换成功

$ gem sources -l

如果替换成功,则显示为:

*** CURRENT SOURCES ***

https://ruby.taobao.org/

3、安装 CocoaPods

$ sudo gem install cocoapods
$ pod setup

注意:苹果系统升级 OS X EI Capitan 后安装改为:

$ sudo gem install -n /usr/local/bin cocoapods
$ pod setup

本人安装过程中遇到的问题如下:
(1)在执行$ sudo gem install cocoa pods时,会有如下错误:
ERROR: Error installing cocoapods: activesupport requires Ruby version >= 2.2.2
原因分析:当前ruby的版本太低,所以需要对Ruby进行升级。这里使用RVM对Ruby进行升级,升级过程如下:
<1>安装 RVM
RVM:Ruby Version Manager,Ruby版本管理器,包括Ruby的版本管理和Gem库管理(gemset)

$ curl -L get.rvm.io | bash -s stable  

等待一段时间后就可以成功安装好 RVM。

$ source ~/.bashrc  
$ source ~/.bash_profile  

测试是否安装正常

& rvm -v

输出如下:

rvm 1.27.0 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

<2>用RVM升级Ruby

#查看当前ruby版本  
$ ruby -v  
ruby 2.0.0
#列出已知的ruby版本  
$ rvm list known  
#安装ruby 2.2.4  
$ rvm install 2.2.4  

安装完成之后,通过 ruby -v 查看是否安装成功。

ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-darwin14]

(2)在执行 $ pod setup 时,会一致卡在 Setting up CocoaPods master repo。
原因分析:此时 Cocoapods在将它的信息下载到 ~/.cocoapods里,因为要进行下载安装,而且目录比较大,所以需要等待一段时间。
此时可以新开一个终端窗口,然后 cd 到该目录里,用du -sh *命令来查看文件大小,每隔几分钟查看一次,这个目录最终大小是300M左右(不一定,有人的最终目录大小是100M或200M左右等),但是完成后一般会有如下提示:

这里写图片描述

(3)如果你的 gem 太老,可能也会有问题,可以尝试用如下命令升级gem:

$ sudo gem update --system

四、CocoaPods的初步使用
例如,利用CocoaPods,在项目中导入AFNetworking类库。
(1)为了确定AFNetworking是否支持CocoaPods,可以用CocoaPods的搜索功能验证一下。在终端中输入:

$ pod search AFNetworking

会在终端中看到关于AFNetworking类库的一些信息,如下:
这里写图片描述

说明AFNetworking是支持CocoaPods,所以可利用CocoaPods将AFNetworking导入项目中。
(2) 具体使用步骤(此处项目名称为“podTest“):
<1> cd 项目文件的位置;
<2> 在项目文件的根目录下,执行如下命令:

     $ pod init 

此命令会自动在项目文件的根目录下,自动创建一个Podfile文件。
打开后,内容如下:

# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'

target 'podTest' do
  # Uncomment this line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

  # Pods for podTest

  target 'podTestTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'podTestUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

然后,在其中添加一行代码

 pod ‘AFNetworking’, ‘~>3.1.0’

添加后,Podfile的内容如下:

# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'

target 'podTest' do
  # Uncomment this line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

pod ‘AFNetworking’, ‘~>3.1.0# Pods for podTest

  target 'podTestTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'podTestUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

<3> 执行如下命令:

$ pod install

<4> 此时在原项目的根目录下,会产生一个名为:podTest.xcworkspace的文件。此后就通过该文件来打开项目,以本例演示,打开podTest.xcworkspace文件后,项目的目录结构如下所示:
这里写图片描述

由上图可知,AFNetwoking已经成功导入项目了。

知识点补充:
(1)若执行 pod install 或 pod update 时,卡在了Analyzing dependencies不动,那么原因在于当执行以上两个命令的时,会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:

pod install –verbose –no-repo-update
pod update –verbose –no-repo-update

或者

pod install –no-repo-update
pod update –no-repo-update

(2)如果想在工程中,用双引号去引第三方库,需要做如下配置:
Build Settings —> Search Paths —> User Header Search Paths ,

这里写图片描述

双击这一行的最右侧,会弹出如下界面,然后点击左下角的”+”,左侧写入 ${SRCROOT},再将后面参数改为recursive即可:

这里写图片描述

参考文章如下:
CocoaPods的安装使用和常见问题
Mac上更新Ruby

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页