cocoapods的安装与使用自己经验教程

前戏:
cocoapods是干嘛用的???
答:cocoapods是将第三方的库导入我们的工程中,是自动从网上下载并导入的,而且还把该第三方库的系统依赖库也一并导入了,并且我们还可以管控第三方库的更新等等,麻麻再也不用担心我无法成功使用第三方库了!此外,一些自己下载的demo运行就报错,为啥来?因为别人里面有cocoapods啊!想成功运行怎么办?那就学cocoapods吧!

一、安装
1.Mac电脑打开终端

2.先检查是否拥有ruby环境,一般Mac电脑都会自动有该环境。检测方法:键入ruby -v,本机测试代码如下,双斜杠为注释解释:
//此行为上次终端打开时间
Last login: Sat Jan 9 14:42:25 on ttys000

//输入 ruby -v 检测是否具备环境基础
yinchangfeng-2:~ LongWind$ ruby -v

//回车后输出结果,输出此结果就表示具备ruby环境
ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]

3.检查ruby的sources来源,键入gem sources或者gem sources -l都可以
//键入gem sources
yinchangfeng-2:~ LongWind$ gem sources
* CURRENT SOURCES *
https://ruby.taobao.org/

//键入gem sources -l
yinchangfeng-2:~ LongWind$ gem sources -l
* CURRENT SOURCES *
https://ruby.taobao.org/

如果之前电脑没用过cocoapods那么输出的来源应该是
* CURRENT SOURCES *
https://rubygems.org/

通过此路径执行下一步也可,不过需要翻墙去国外网站下载相关资源,网速较慢,推荐用以下步骤执行

4.删除原来的sources,替换成taobao路径,执行代码如下
gem sources —remove https://rubygems.org/
此代码执行后会提示remove https://rubygems.org/,表示删除成功,如果不确定的话可以在检查来源,键入gem sources,此时输出肯定为
* CURRENT SOURCES *

后不会有任何来源地址。
接着再键入
gem sources -a https://ruby.taobao.org/

此时就建立新的来源了。我们再键入
gem sources,此时输出应该和我上面3步骤输出的是一模一样的了。

5.安装cocoapods
键入命令
sudo gem install cocoapods
回车,此时显示如下
yinchangfeng-2:~ LongWind$ sudo gem install cocoapods
Password:

这时候我们需要输入电脑的密码,注意,此时的光标不会动,小黑点也一直就是一个,不会随着我们键入密码的个数增加而增加。
键入密码后回车,需要静候一段时间,终端会有一段时间没有任何反正,这是正常现象,在安装cocoapods。十秒之后,终端显示如下:

Successfully installed cocoapods-0.39.0
Parsing documentation for cocoapods-0.39.0
1 gem installed

此时表示我们成功安装了coocapods

6.检测是否正常安装成功,我们不放心的话可以键入

pod search **

**为你想查的第三方库,入afnetworking、jsonkit等等),不区分大小写,我反正都能查出来,如下:
yinchangfeng-2:~ LongWind$ pod search afnetworking

-> AFNetworking (3.0.4)
A delightful iOS and OS X networking framework.
pod ‘AFNetworking’, ‘~> 3.0.4’
- Homepage: https://github.com/AFNetworking/AFNetworking
- Source: https://github.com/AFNetworking/AFNetworking.git
- Versions: 3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 3.0.0-beta.3, 3.0.0-beta.2,
3.0.0-beta.1, 2.6.3, 2.6.2, 2.6.1, 2.6.0, 2.5.4, 2.5.3, 2.5.2, 2.5.1, 2.5.0,
2.4.1, 2.4.0, 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]
- Subspecs:
- AFNetworking/Serialization (3.0.4)
- AFNetworking/Security (3.0.4)
- AFNetworking/Reachability (3.0.4)
- AFNetworking/NSURLSession (3.0.4)
- AFNetworking/UIKit (3.0.4)

-> 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]

-> AFNetworking+Ext (1.2.1)
AFNetworking的封装, 并提供一个 UIImageView+DYLoading cache in fileSystem+memory
pod ‘AFNetworking+Ext’, ‘~> 1.2.1’
- Homepage: https://github.com/junhaiyang/AFNetworkingExt
- Source: https://github.com/junhaiyang/AFNetworkingExt.git
- Versions: 1.2.1, 1.2, 1.1, 1.0, 0.5, 0.4, 0.3 [master repo]
- Subspecs:
- AFNetworking+Ext/Base (1.2.1)
- AFNetworking+Ext/AFCustomRequestOperation (1.2.1)
- AFNetworking+Ext/AFDownloadRequestOperation (1.2.1)
- AFNetworking+Ext/AFTextResponseSerializer (1.2.1)
- AFNetworking+Ext/example (1.2.1)
- AFNetworking+Ext/UIKit (1.2.1)
- AFNetworking+Ext/UIKit/UIImageView+DYLoading (1.2.1)

-> AFNetworking+ImageActivityIndicator (1.0.2)
AFNetworking+ImageActivityIndicator makes it easy to show an activity
indicator while an image view’s image is loading using AFNetworking.
pod ‘AFNetworking+ImageActivityIndicator’, ‘~> 1.0.2’
- Homepage:
https://github.com/JRG-Developer/AFNetworking-ImageActivityIndicator
- Source:
https://github.com/JRG-Developer/AFNetworking-ImageActivityIndicator.git
- Versions: 1.0.2, 1.0.1, 1.0.0 [master repo]

-> AFNetworking+SingleBlock (0.0.1)
Categories that aggregate the success and failure block in one single
solution
pod ‘AFNetworking+SingleBlock’, ‘~> 0.0.1’
- Homepage: https://github.com/acerbetti/AFNetworking-SingleBlock
- Source: https://github.com/acerbetti/AFNetworking-SingleBlock.git
- Versions: 0.0.1 [master repo]

-> AFNetworking+streaming (0.6.2)
A very quick extension to AFNetworking that adds stream based parsing
pod ‘AFNetworking+streaming’, ‘~> 0.6.2’
- Homepage: https://github.com/deanWombourne/AFNetworking-streaming
- Source: https://github.com/deanWombourne/AFNetworking-streaming.git
- Versions: 0.6.2, 0.6.1, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1 [master repo]
- Subspecs:
- AFNetworking+streaming/Core (0.6.2)
- AFNetworking+streaming/Json (0.6.2)

-> AFNetworking-BoltsSupport (1.1.0)
Bolts support for AFNetworking.
pod ‘AFNetworking-BoltsSupport’, ‘~> 1.1.0’
- Homepage: https://github.com/taka0125/AFNetworking-BoltsSupport
- Source: https://github.com/taka0125/AFNetworking-BoltsSupport.git
- Versions: 1.1.0, 1.0.0 [master repo]

-> AFNetworking-MUResponseSerializer (1.0.1)
Automatically serialize JSON response to your object model. It also works
with NSManagedObjects
pod ‘AFNetworking-MUResponseSerializer’, ‘~> 1.0.1’
- Homepage: https://github.com/Ulianko/AFNetworking-MUResponseSerializer
- Source: https://github.com/Ulianko/AFNetworking-MUResponseSerializer.git
- Versions: 1.0.1, 1.0.0 [master repo]

-> AFNetworking-PromiseKit (0.2.4)
AFNetworking category for PromiseKit
pod ‘AFNetworking-PromiseKit’, ‘~> 0.2.4’
- Homepage: https://github.com/cmckni3/AFNetworking-PromiseKit
- Source: https://github.com/cmckni3/AFNetworking-PromiseKit.git
- Versions: 0.2.4, 0.2.3, 0.2.2, 0.2.1, 0.2.0, 0.1.0 [master repo]

-> AFNetworking-RACExtensions (0.1.8)
AFNetworking-RACExtensions is a delightful extension to the AFNetworking
classes for iOS and Mac OS X.
pod ‘AFNetworking-RACExtensions’, ‘~> 0.1.8’
- Homepage: https://github.com/CodaFi/AFNetworking-RACExtensions
- Source: https://github.com/CodaFi/AFNetworking-RACExtensions.git
- Versions: 0.1.8, 0.1.6, 0.1.4, 0.1.2, 0.1.1, 0.0.1 [master repo]

-> AFNetworking-RACRetryExtensions (0.2.0)
AFNetworking-RACRetryExtensions is an extension to the AFNetworking classes
for iOS and Mac OS X that adds the auto-retry ability.
pod ‘AFNetworking-RACRetryExtensions’, ‘~> 0.2.0’
- Homepage: https://github.com/legoless/AFNetworking-RACRetryExtensions
- Source: https://github.com/legoless/AFNetworking-RACRetryExtensions.git
- Versions: 0.2.0, 0.1.2, 0.1.1 [master repo]

-> AFNetworking-ReactiveCocoa (0.0.2)
Make AFNetworking reactive.
pod ‘AFNetworking-ReactiveCocoa’, ‘~> 0.0.2’
- Homepage: https://github.com/uasi/AFNetworking-ReactiveCocoa
- Source: https://github.com/uasi/AFNetworking-ReactiveCocoa.git
- Versions: 0.0.2, 0.0.1 [master repo]

-> AFNetworking-Synchronous (0.3.1)
Synchronous requests for AFNetworking
pod ‘AFNetworking-Synchronous’, ‘~> 0.3.1’
- Homepage: https://github.com/paulmelnikow/AFNetworking-Synchronous
- Source: https://github.com/paulmelnikow/AFNetworking-Synchronous.git
- Versions: 0.3.1, 0.3.0, 0.2.0, 0.1.0 [master repo]
- Subspecs:
- AFNetworking-Synchronous/1.x (0.3.1)
- AFNetworking-Synchronous/2.x (0.3.1)

-> AFNetworking-Webp (0.2)
A Webp image response serializer for AFNetworking 2.0
pod ‘AFNetworking-Webp’, ‘~> 0.2’
- Homepage: https://github.com/brandons/AFNetworking-Webp
- Source: https://github.com/brandons/AFNetworking-Webp.git
- Versions: 0.2, 0.1 [master repo]

-> AFNetworking2-RACExtensions (0.0.1)
AFNetworking-RACExtensions is a delightful extension to the AFNetworking
classes for iOS and Mac OS X.
pod ‘AFNetworking2-RACExtensions’, ‘~> 0.0.1’
- Homepage: https://github.com/knshiro/AFNetworking-RACExtensions
- Source: https://github.com/knshiro/AFNetworking-RACExtensions.git
- Versions: 0.0.1 [master repo]

-> AFNetworkingHelper (0.1.4)
A short wrapper written over AFNetworking library.
pod ‘AFNetworkingHelper’, ‘~> 0.1.4’
- Homepage: https://github.com/RainingClouds/AFNetworkingHelper
- Source: https://github.com/RainingClouds/AFNetworkingHelper.git
- Versions: 0.1.4, 0.1.3, 0.1.2, 0.1.1, 0.1.0 [master repo]

-> CollectionUtils-AFNetworking (1.0.2)
CollectionUtils additions for AFNetworking.
pod ‘CollectionUtils-AFNetworking’, ‘~> 1.0.2’
- Homepage: https://github.com/kishikawakatsumi/CollectionUtils
- Source: https://github.com/kishikawakatsumi/CollectionUtils.git
- Versions: 1.0.2, 1.0.1, 1.0.0 [master repo]

-> CollectionUtils-AFNetworking-1.3 (1.0.1)
CollectionUtils additions for AFNetworking 1.3.x.
pod ‘CollectionUtils-AFNetworking-1.3’, ‘~> 1.0.1’
- Homepage: https://github.com/kishikawakatsumi/CollectionUtils
- Source: https://github.com/kishikawakatsumi/CollectionUtils.git
- Versions: 1.0.1, 1.0.0 [master repo]

-> HYVConfiguratorAFNetworking-Mantle (0.6.3)
Configurator for using AFNetworking with Mantle
pod ‘HYVConfiguratorAFNetworking-Mantle’, ‘~> 0.6.3’
- Homepage:
https://github.com/LilushFess/HYVConfiguratorAFNetworking-Mantle.git
- Source:
https://github.com/LilushFess/HYVConfiguratorAFNetworking-Mantle.git
- Versions: 0.6.3, 0.6.2, 0.6.1, 0.6, 0.4.1, 0.4, 0.3.1, 0.3.0, 0.2.1, 0.2.0,
0.1.4, 0.1.3.2, 0.1.3.1, 0.1.3, 0.1.2.2, 0.1.2, 0.1.1.42, 0.1.0 [master repo]

-> Haneke+AFNetworking (0.2.0)
Haneke extension to use AFNetworking to download images.
pod ‘Haneke+AFNetworking’, ‘~> 0.2.0’
- Homepage: https://github.com/Haneke/Haneke-AFNetworking
- Source: https://github.com/Haneke/Haneke-AFNetworking.git
- Versions: 0.2.0 [master repo]

-> JJAFNetworking (1.0)
A Networking Tool used on iOS.
pod ‘JJAFNetworking’, ‘~> 1.0’
- Homepage: https://github.com/JayJJ/JJAFNetworking
- Source: https://github.com/JayJJ/JJAFNetworking.git
- Versions: 1.0 [master repo]

-> PromiseKit-AFNetworking (0.6.0)
PromiseKit extensions for AFNetworking
pod ‘PromiseKit-AFNetworking’, ‘~> 0.6.0’
- Homepage: https://github.com/csotiriou/AFNetworking-PromiseKit/
- Source: https://github.com/csotiriou/AFNetworking-PromiseKit.git
- Versions: 0.6.0, 0.5.1, 0.5.0, 0.1.7, 0.1.6, 0.1.5, 0.1.4, 0.1.3, 0.1.2,
0.1.1 [master repo]

-> UIImageView_AFNetworking-Blocks (0.1.0)
UIImageView+AFNetworking with a single completion block for success and
failure.
pod ‘UIImageView_AFNetworking-Blocks’, ‘~> 0.1.0’
- Homepage: https://github.com/pixio/UIImageView_AFNetworking-Blocks
- Source: https://github.com/pixio/UIImageView_AFNetworking-Blocks.git
- Versions: 0.1.0 [master repo]

这个表示你正常安装了,而且afnetworking是支持cocoapods的!目前大部分的第三方库都支持cocoapods的!

二、cocoapods的使用(自己导入新库)
1.用xcode新建工程,名字随便(我这里就起名为CocoapodsTest)

2.打开终端,键入
cd *(你新建工程的路径)

不知道路径咋办?最简单地办法就是找到我们的新建工程文件夹,将该文件夹往终端中拖,不要怕,记得是先输了cd后空格一下再拖,此时会自动填我们的新工程路径。回车,上终端代码:

//输入完cd 空格一下,拖文件
yinchangfeng-2:~ LongWind cd/Users/yitong/Desktop/swift/CocoapodsTest//,yinchangfeng2:CocoapodsTestLongWind c d / U s e r s / y i t o n g / D e s k t o p / s w i f t / C o c o a p o d s T e s t / / 回 车 发 现 了 没 有 , 文 件 夹 的 名 字 跑 到 电 脑 名 字 前 面 去 了 , 这 就 表 示 成 功 打 开 了 文 件 夹 y i n c h a n g f e n g − 2 : C o c o a p o d s T e s t L o n g W i n d

3.在当前的文件夹中新建Podfile文件,键入

vi Podfile

回车后显示如下
yinchangfeng-2:CocoapodsTest LongWind$ vi Podfile

~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
“Podfile” [New File]

我们会发现光标停在最上面,此时就表示我们已经新建好Podfile文件在新建工程的文件夹中了,接下来做如下操作,在当前终端界面键入i,此表示Podfile中新增内容,键下i后显示如下(连回车都不用)

~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
– INSERT –

发现了没,最后一行显示不一样了,此时就可以向Podfile中增加内容了,啥内容,就是你想下载的第三方库的内容。比如我们在新工厂中加入最常用的afnetworking,其代码如下

platform :iOS,’7.0’ (回车下一行)
pod “AFNetworking”,”~>2.0”
如果还想下其他的,自己模仿第二行 pod “”,具体如何下载你想要的第三方库,需要前去看好再操作,一般来说,pod “**”就可以了
此时按下esc键,表示退出编辑,界面如下:
platform :ios ,‘7.0’
pod “afnetworking”,”~>2.0”
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~

保存退出,按下“shift” 键加“:”键,再 键入 wq
platform :ios ,‘7.0’
pod “AFNetworking”,”~>2.0”

~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
:wq
回车
yinchangfeng-2:CocoapodsTest LongWind Podfile4.podinstallyinchangfeng2:CocoapodsTestLongWind 这 时 候 在 你 的 新 工 程 文 件 夹 下 就 能 看 见 一 个 叫 P o d f i l e 的 文 件 , 点 击 后 你 能 看 见 里 面 的 内 容 和 你 写 的 内 容 是 一 模 一 样 的 4. 下 载 第 三 方 库 在 终 端 中 键 入 p o d i n s t a l l y i n c h a n g f e n g − 2 : C o c o a p o d s T e s t L o n g W i n d pod install
回车,会有一段时间没有反应,这是正常的
yinchangfeng-2:CocoapodsTest LongWind podinstallUpdatinglocalspecsrepositoriesPodfilePodHeaderyinchangfeng2:CocoapodsTestLongWind p o d i n s t a l l U p d a t i n g l o c a l s p e c s r e p o s i t o r i e s 在 这 漫 长 的 时 间 里 , 我 们 可 以 点 开 新 工 程 的 文 件 , 会 发 现 里 面 有 P o d f i l e 文 件 , 还 有 一 个 P o d 的 文 件 , 里 面 有 H e a d e r 之 类 的 次 级 文 件 夹 , 等 待 完 之 后 , 终 端 输 出 如 下 y i n c h a n g f e n g − 2 : C o c o a p o d s T e s t L o n g W i n d pod install
Updating local specs repositories

CocoaPods 1.0.0.beta.2 is available.
To update use: gem install cocoapods --pre
[!] This is a test version we’d love you to try.

For more information see http://blog.cocoapods.org
and the CHANGELOG for this version http://git.io/BaH8pQ.

Analyzing dependencies
Downloading dependencies
Installing AFNetworking (2.6.3)
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use CocoapodsTest.xcworkspace for this project from now on.
Sending stats
Pod installation complete! There is 1 dependency from the Podfile and 1 total
pod installed.

[!] CocoaPods was not able to update the master repo. If this is an unexpected issue and persists you can inspect it running pod repo update --verbose
yinchangfeng-2:CocoapodsTest LongWind$

这时候我们会发现工程中导入了af了,此时我们发现输出有这么一句话[!] Please close any current Xcode sessions and use CocoapodsTest.xcworkspace for this project from now on.

意思是打开工程不能再用CocoapodsTest.xcodeproj而是用.xcworkspace了!

然后再看看你的新工程文件夹,你会发现AFNetworking已经安静躺在里面了。。。我们用CocoapodsTest.xcworkspace打开工程,你会发现里面有些依赖库是红色的,甚至全部是红得,别怕,没事,不用管,运行吧!绝壁不会错!
然后哪里想用AF就导入,此时可能用#import ”“导入不提示,用#import <>却可以,别问我为什么。。。看看你的build phases ,里面已经把af当做一个.a库了
二、cocoapods的使用(网上下载别人的第三方库demo)
大家这里可以去github搜索下载一个弹出框希望用户评论咱们app的第三方库UAAppReviewManager,然后用以下步骤尝试一下!
1.下载了别人的第三放库demo后,发现有很多报错,这是因为缺少了很多第三方库导致的,别担心,你会在文件中找到叫podfile的,这就说明我们可以用cocoapods下载这些库。
2.将demo的路径用终端打开,cd *,参考以上内容如何获取路径
3.因为demo中有了podfile文件,就不需要新建了。此时我们终端打开了demo,键入pod update,
回车等待即可!
4.重新打开工程,嗯哼,完美运行!
5.PS,其实有时候键入pod install也可以的,但还是建议直接用pod update!
6.等待更新好后,再打开你的第三方demo,嗯哼,完美运行了!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值