一、CocoaPods介绍以及好处
- CocoaPods 是开发 OS X 和 iOS 应用程序的一个第三方库的依赖管理工具,该项目源码在Github上管理。通过 CocoaPods,可以很方便的查找到新的第三方库。CocoaPods的官网是这么描述它自己的”The best way to manage library dependencies in Objective-C projects”。
- 手动导入第三方开源库时,我们还需要在工程中配置一些文件,设置一些参数,有可能导入的库中缺少文件,这时我们要报错误时真的很难发现,而且第三方库升级时,我们又要手动的去添加升级之后的库,认为因素有时总会出现一些无可避免面的错误,有时你还发现不了,这让人很苦恼。
二、CocoaPods原理
在使用CocoaPods后,我们只需要把用到的开源库放到一个名为Podfile的文件中,然后执行pod install.Cocoapods就会自动将这些第三方开源库的源码下载下来,并且为我们的工程设置好响应的系统依赖和编译参数。
1、Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a 文件即可。
2、对于资源文件,CocoaPods提供了一个名为Pods-resources.sh的bash脚本, 该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目 标目录中。
3、CocoaPods通过一个名为Pods.xcconfig的文件来在编译时设置所有的依赖和 参数。
三、CocoaPods安装
1、在安装CocoaPods之前,首先要在本地安装好Ruby环境。然后输入一行命令
$
sudo gem install cocoapods
这时你会发现报错了
2、在终端中敲入这个命令之后,会发现半天没有任何反应。原因无他,因为那堵墙阻挡了cocoapods.org。国内不能直接安装,只能通过VPN或淘宝的Ruby镜像来访问。在这里,我们利用淘宝的Ruby环境来安装,继续输入以下命令:
$ gem sources --remove https://rubygems.org/
//等有反应之后再敲入以下命令
$ gem sources -a http://ruby.taobao.org/
输完以上两个命令时,你会发现还是报错,
报错:ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why: Unable to download data from http://ruby.taobao.org/ - bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)
这就是问题关键所在了,本博主在升级Xcode7之后,报这个错误,我尝试各种办法,就是没查找出原因,最后才发现
淘宝的 ruby源已经改为了 https了(一定要注意 啊),所以要在这里输入命令:
$ gem sources -a https://ruby.taobao.org/
3、这时在输入命令,查看状态,发现成功的
$ gem sources -l
只有在终端中出现下面文字才表明你上面的命令是成功的:
*** CURRENT SOURCES ***
https://ruby.taobao.org/
4、验证一下安装成功,输入命令:(我看有些博客 还需要 设置cocoapods(一定要执行$ sudo setup),我没执行过。
$ pod search AFNetworking
你会看到一下信息,AFNetworking 的各个版本信息
四、CocoaPods使用
1、创建iOS项目,找到项目目录(xxx.xcodeproj)的同级目录
2、(1)在终端中进入(cd命令)你项目所在目录,然后在当前目录下,利用vim创建Podfile,运行:
$ vim Podfile
(2)“i”键进行podfile文件的编辑,退出编辑时先按下ESC键,再 执行 :wq ,Enter键即可。
(3)然后在Podfile文件中输入以下文字:
platform :ios, '8.0'
pod "AFNetworking", "~> 3.0"
这段文字不是凭空生成的,可以在AFNetworking的GitHub页面找到。这两句文字的意思是,当前AFNetworking支持的iOS最高版本是iOS 8.0, 要下载的AFNetworking版本是3.0。注意字符不能出错,直接从GitHub上的Podfile处复制过来(切忌字符不能有错)
本博主写错了字符,单引号时以及多添了第二行的代码:
报错的信息:
(4)修改之后再运行一下命令
$ pod install
(5)这时查看一下工程文件名目录,会发除了之前的Podfile文件之外,还现多了另外一个文件“Podfile.lock”和一个文件夹“Pods”
3、打开项目工程时,不再是之前的xx.xcodeproj了,而是打开xx.xcworkspace工程,然后导入
#import <AFNetworking.h>
或者
#import "AFNetworking.h"都是可以的。
目前来说,使用第三方开源库,后期更新导入升级之后的库容易出错,目前使用CocoaPods管理第三方库我没出现过错误,不过我有两同学遇到过错误,是什么错误我也没去细问,有问题了再向他们询问吧。
在网上关于CocoaPods的安装和使用一大把的文章,在这里我只推荐两篇我觉得不错的文章,供大家参考:
http://blog.csdn.net/iunion/article/details/17010267
http://blog.csdn.net/chen505358119/article/details/47778347
http://www.jianshu.com/p/6e5c0f78200a