CocoaPods:iOS类库管理工具,用于方便下载、更新、管理第三方库。
终端下载和安装CocoaPods:
1、本地需要安装好Ruby环境,Mac已经自带。
(注意:以下命令需要严格键入,包括空格)
2、终端(Terminator)输入以下命令:
gem sources --remove http://rubygems.org/
等有反应后输入以下命令:
gem sources -a http://ruby.taobao.org/
gem sources -l
只有在终端中出现下面文字才表明上面的命令是成功的:
*** CURRENT SOURCES ***
http://ruby.taobao.org/
3、再输入以下命令:
sudo gem install cocoapods
至此,CocoaPods已经下载并安装完毕
CocoaPods的使用:
利用CocoaPods,在项目中导入AFNetworking类库
1、为了确定AFNetworking是否支持CocoaPods,可以用CocoaPods的搜索功能验证一下。在终端中输入:
pod search AFNetworking
之后会在终端中看到关于AFNetworking类库的一些信息。(一些绿色的标题和代码)。这说明,AFNetworking是支持CocoaPods,所以我们可以利用CocoaPods将AFNetworking导入项目中。
2、在项目中加入CocoaPods的支持:
利用Xcode创建一个名叫CocoaPodsDemo的项目
因为CocoaPods中有一个Podfile文件,专门用于控制CocoaPods该下载什么类库。且每个项目只需要一个Podfile文件。所以,需要在终端手动创建Podfile文件。
终端中进入(cd命令)项目所在目录,到与"CocoaPodsDemo.xcodeproj"同级即可。然后在当前目录下,利用vim创建Podfile
终端输入以下命令:
vim Podfile
然后在Podfile文件中输入以下命令:
platform :ios, '7.0'
pod "AFNetworking", "~> 2.0"
这两句文字的意思是,当前AFNetworking支持的iOS最高版本是iOS 7.0, 要下载的AFNetworking版本是2.0。
保存退出。vim环境下,按esc后,输入命令:
:wq
此时项目目录中,出现一个名字为Podfile的文件,且文件内容就是刚刚输入的内容
这时候,就可以利用CocoPods下载AFNetworking类库了。还是在终端中的当前项目目录下,输入以下命令:
pod install
运行上述命令之后,出现以下信息:
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文件。
项目文件夹中多了一个文件“Podfile.lock”和一个文件夹“Pods”。 点击 CocoaPodsDemo.xcworkspace 打开之后工程之后,此时AFNetwoking已经成功导入项目了
3、进行测试一下,在你的项目任意代码文件中输入:#import<AFNetworking.h>
或者 #import "AFNetworking.h"
然后编译,看看是否出错。
附注:
安装出现的问题:
1、
[!] /usr/bin/git clone 'https://github.com/CocoaPods/Specs.git' master --depth=1
xcrun: error: active developer path ("/Volumes/Xcode/Xcode.app/Contents/Developer") does not exist, use `xcode-select --switch path/to/Xcode.app` to specify the Xcode that you wish to use for command line developer tools (or see `man xcode-select`)
解决方案:终端输入以下命令
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer