CocoaPods--iOS类库管理工具

作者: 上发条的树 | 来源:发表于2016-06-17 18:24 被阅读194次

什么是CocoaPods

CocoaPods是iOS最常用最有名的类库管理工具。

如何下载和安装CocoaPods?

在安装CocoaPods之前,需要在本地安装好Ruby环境。
如果已经安装好Ruby环境,那么下载和安装CocoaPods只需要一行命令:

$ sudo gem install cocoapods

但是,由于天朝的墙。。。以上命令无效。
所以,需要使用淘宝的Ruby来访问cocoapods。如下:

$ gem sources --remove https://rubygems.org/
//以上执行完,在执行下面命令
$ gem sources -add https://ruby.taobao.org/
//如果淘宝的源不能使用,则用以下这个源
$ gem sources -add https://gems.ruby-china.org/

验证下此时的Ruby镜像是taobao,可以用一下命令查看:

$ gem sources -l

只有出现如下文字,才说明以上命令成功

*** CURRENT SOURCES ***

https://ruby.taobao.org/

安装CocoaPods:

$ sudo gem install  cocoapods

等上十几秒钟,CocoaPods就在本地下载并安装完了。

执行pod install 命令
出现Setting up CocoaPods master repo,说明Cocoapods在将它的信息下载到 ~/.cocoapods里;
cd 到该目录里,用du -sh *命令来查看文件大小,每隔几分钟查看一次会发现大小不断改变,这里需要耐心等待下。大概需要等到735M才算完成(我也不知道这为什么这么大)。

使用CocoaPods

使用CocoaPods和安装它一样简单,也是一两行命令即可搞定。
使用CocoaPods的两种情况:

情况一:使用CocoaPods,在项目中导入AFNetworking类库

导入AFNetworking类库之前,可以使用以下命令先验证下AFNetworking是否支持CocoaPods

$pod search AFNetworking

如果支持,可以在终端看到如下的信息(截取了一部分):

-> AFNetworking (3.1.0)
   A delightful iOS and OS X networking framework.
   pod 'AFNetworking', '~> 3.1.0'
   - Homepage: https://github.com/AFNetworking/AFNetworking
   - Source:   https://github.com/AFNetworking/AFNetworking.git
   - Versions: 3.1.0, 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.1.0)
     - AFNetworking/Security (3.1.0)
     - AFNetworking/Reachability (3.1.0)
     - AFNetworking/NSURLSession (3.1.0)
     - AFNetworking/UIKit (3.1.0)

具体的步骤可以如下:
1、创建一个项目,这里我取名为CocoaPodsDemo。
2、在终端中进入本项目所在目录,创建名为PodFile的文件

$ touch PodFile

3、打开PodFile文件,在PodFile文件中输入支持的iOS最低版本,要导入的类库AFNetworking以及版本,如果AFNetworking不填版本,则默认导入最新的版本(如果该开源库支持的话)。保存并关闭PodFile文件。需要注意的几点:platform那一行,ios三个字母都要小写,而且与前面的冒号之间不能有间隔,后面的版本号也可以不写,但是有些开源库对版本是有要求的,比如要在6.0以上才能运行,遇到这样的开源库就需要写上版本号。

platform :ios, '7.0'
pod "AFNetworking", '~> 3.0'

4、这个时候,就可以真正使用CocoaPods导入AFNetworking了。

$ pod install

如果无效(一般有梯子的都有效),使用:

$ pod install --verbose --no-repo-update

由于手贱,更新了CocoaPods版本,查看版本可以使用命令:

$ pod --version
1.0.1

所以执行$ pod install报错了:

[!] The dependency `AFNetworking (~> 3.0)` is not used in any concrete target.

随便Google了下
(http://stackoverflow.com/questions/37464977/the-dependency-afnetworking-2-5-is-not-used-in-any-concrete-target)
发现可以这样修改:

platform :ios, '7.0'
target 'CocoaPodsDemo' do
pod "AFNetworking", '~> 3.0'
end

居然就成功了,估计是1.X版本之后的什么新的玩法吧。终端显示:

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

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

它提示我们使用CocoaPodsDemo.xcworkspace打开项目。我们在项目中,也可以发现多了这个文件:

1.png

通过CocoaPodsDemo.xcworkspace打开工程,发现AFNetworking已经被导入了:

2.png

这时就可以通过这样的方式导入AFNetworking的头文件了:

#import <AFNetworking.h>

下次如果是更新现有的库或者导入之前未导入过的库,则可以直接执行update操作,而不必进行install操作:

$ pod update

如果无效,使用:

pod update --verbose --no-repo-update

情况二:如何正确编译运行一个包含CocoPods类库的项目

很多时候,作为新手iOS开发者的我们,好不容易在GitHub上找到一份代码符合我们的要求,兴高采烈地下载下来,然后编译,然后傻眼了,特么编译不过,一看,发现是缺少了其他第三方类库。还可以发现,这个项目包含了PodFile。所以这一切,意味着,我们可以使用CocoPods来使这个项目添加需要的类库:

$ pod update

具体再自己找例子试下。

参考:
http://my.oschina.net/w11h22j33/blog/206129

相关文章

网友评论

    本文标题:CocoaPods--iOS类库管理工具

    本文链接:https://www.haomeiwen.com/subject/xwjvdttx.html