概念:所谓第三方,就是除了官方和本人以外写的框架我们称为第三方。CocoaPads作为一个工具,就应该具有工具的一些职能,比如引入,更新,删除等。我们常用的第三方框架包括:Mansory,AFNetworking,SDWebImage等。CocoaPads能够更好的管理我们项目中的第三方库,尤其在swift开发中,更加明显,因为在swift新增一个概念叫“命名空间”,在同一个命名空间内资源是共享的,默认情况下项目名就是命名空间,并且项目里面的类都是以:命名空间名.类名,作为真实的类名。便利的同时,也为开发者挖了不少的坑,在引入第三方框架的时,最好用cocoapods管理第三方框架,避免第三方框架里面的类与我们自己项目里面的类名冲突。
安装步骤:
一:打开终端:
$sudo gem update --system
这一步是更新gem(要不然以后会出现很多问题)
敲完回车后会让你输入密码:在终端你是看不到密码的,所以当输入密码时光标是不会移动的
二:跟新源:
因为安装CocoaPods时,我们需要访问国外服务器,这时就非常的慢。所以我们要先把国外的源删掉,执行以下指令:
gem sources --remove https://rubygems.org/
删掉之后你可能会想,不是更完蛋吗,源都没有了。还怎么搞?
所以我们要添加一个国内的源叫淘宝源,执行下面命令:
gem sources --add https://ruby.taobao.org/
执行完毕之后我们可以用以下指令检查有没有成功:
gem sources -l
看到当前的源是国内的时候就成了
三:安装(这个时候才开始安装)
$sudo gem install cocoapods
如果上面的指令不好使尝试执行下面一个:
sudo gem install -n /usr/local/bin cocoapods
拷贝上面指令,敲回车。
sudo:管理权限 .
gem:是一个管理Ruby库和程序的标准包(CocoaPads是用Ruby这门语言写的),通过Ruby Gem来查找,安装,升级和卸载软件包。
四:初始化第三方库的信息(把远程的一些库(支持CocoaPods的库)缓存在我们的本机上),这时还是从国外的服务器下载的。输入以下指令,你就可以先吃个饭,这一步是很慢的:
pod setup //以后遇到莫名其妙的问题,尝试执行此命令
五:当看到第四步时内心很是崩溃呀,太慢了,这时我们更换repo镜像为国内服务器(按control加C,取消第四步的安装),这一步小编不推荐使用,有时会出现莫名其妙的报错,这是本人亲身经验。
分别执行以下指令:
pod repo remove master
这一步是删除
pod repo add master https://gitcafe.com/akuandev/Specs.git
这一步是添加国内的服务
pod repo update
这一步是更新
六:用法
1.新建一个项目我的工程名就叫“1.test”,并在终端把目录切换到该项目所在的路径
2.新建一个文件,文件名为Podfile,执行以下命令会制动创建一个名为Podfile文件。该文件的作用是说明我们要用到哪些框架
$ vim Podfile
3.在Podfile文件输入以下内容
platform :ios, '7.0'
pod 'AFNetworking', "~> 2.0"
pod 'SDWebImage'
platform :ios ,’7.0’
ios:表示是ios平台还是Mac平台,因为CocoaPods既可以用于mac也可以用于ios,注意ios要小写。7.0:告诉我们项目用于什么环境。”~> 2.0” :表示我们的AFN下载2.0版本的框架,如果不写默认会下载最新的。
写完所要导入的库时,我们需要退出Vim环境,先按以下ESC,在按冒号和wq
:wq
$ pod install
这时会找到Podfile文件,然后解析里面的内容,安装相应的框架。
这时如果报一下信息错误:
[!] The dependency `AFNetworking (~> 2.0)` is not used in any concrete target.
[!] The dependency `SDWebImage` is not used in any concrete target
此时在写Podfile文件时最好使用以下格式:
platform :ios, '7.0'
use_frameworks!
target '1.test' do
pod 'AFNetworking', '~> 2.0'
pod 'SDWebImage',
end
注意:target后面的那个”1.test“要改成你自己工程名;
然后重新执行pod install指令就可以了
$ pod install
当你看到一下信息时说明已经OK了。