Cocoapods 安装和使用
本文写于2016年9月,安装Cocoapods 用于iOS开发,可直接用Mac上的终端从GitHub上将第三方框架应用到工程中,接下来的安装配置基于上一篇文章《在Mac OS X上安装 Ruby运行环境》所配置的系统环境。
Cocoapods的安装
1.升级Ruby环境
如果Ruby没有安装,请参考 《在Mac OS X上安装 Ruby运行环境》。
gem是一种文件组织的包,基于ruby开发,一般的ruby的很多插件都由各种包提供。
注:以下代码区域,带有 $ 打头的表示需要在控制台(终端)下面执行(不包括 $ 符号),下一行为结果,不需码入。
$ sudo gem -v $ sudo gem update --system
2.安装Cocoapods时我们要访问cocoapods.org,用Ruby China的RubyGems镜像来代替,执行以下命令:
12月20日更新:RubyGems 镜像的管理工作已由淘宝转交 Ruby China 负责,https://ruby.taobao.org/ 更改为 https://gems.ruby-china.org/ 下面已做处理
$ gem sources --remove https://rubygems.org/ //等有反应之后再敲入以下命令 $ gem sources -a https://gems.ruby-china.org/
为了验证你的Ruby镜像是并且仅是taobao,可以用以下命令查看:
$ gem sources -l
只有在终端中出现下面文字才表明你上面的命令是成功的:
*** CURRENT SOURCES *** https://gems.ruby-china.org/
3.1 安装Cocoapods,在终端输入命令:
注意:(Mac版本10.11以上,请直接跳到3.2)
$ sudo gem install cocoapods
3.2 Mac系统版本10.11以上,上面的命令不生效
sudo gem install -n /usr/local/bin cocoapods sudo xcode-select --switch /Applications/Xcode.app
4.安装:
//将 Cocoapods Specs repository 复制到你电脑上 ~/.cocoapods 目录下 pod setup
安装需要花费比较多时间,请耐心等待,到这里你已经成功安装了Cocoapods。
5.问题
(1)如果遇到如下问题:
移除原来的cocoapods:
$ sudo gem uninstall cocoapods //交互时选择 y
重新执行3和4步。
(2)如果安装失败 ~/.cocoapods 文件夹里面是空的,就需要重新setup,命令如下:
pod repo remove master pod setup
另附:
pod --version //查询cocoapods版本 sudo gem install cocoapods --pre //更新cocoapods版本
pod setup解决方案
1.访问 https://github.com/CocoaPods/...,然后将Specs项目fork到自己的github账户上。
2.下载GitHub Desktop, 然后clone Specs项目。
3.将clone的Specs项目的文件夹改名为master,然后拖到/Users/用户名/.cocoapods/repos目录下。
4.运行pod setup
解释:pod setup的本质就是将https://github.com/CocoaPods/...上的Specs项目clone到/Users/用户名/.cocoapods/repos目录下。若此目录下已有Specs项目,则会将项目更新到最新的状态。由于Specs很大,容易导致pod setup失败。这时就需要我们手动安装Specs。若直接从github上下载zip文件,由于缺少git文件,会导致cocoa pods不使用。若用git clone,由于文件过大,容易导致失败。但是使用GitHub Desktop软件,则会提高clone的成功率,并且会给出clone的进度。
更新
可以使用国内的镜像地址(https://coding.net/u/hging/p/...),直接clone到/Users/用户名/.cocoapods/repos目录下,再将文件夹重命名为master。
Cocoapods的使用
1.使用search命令搜索类库名:比如AFNetworking
$ pod search AFNetworking
得到结果如下图:
从这个图上,我们看到AFN有好多版本,最新的版本是3.1.0.
注意第三行,这是我们接下来要添加到Podfile文件里面的内容。按q退出
2.
(1)打开Xcode,新建一个工程,工程名为swift_test。
(2)使用跳转命令cd到工程目录下:cd后面跟空格,然后跟的是工程目录名。
$ cd /Users/ZGZ/Desktop/swift_test
(3)回车后,输入命令---在工程目录下,创建了一个Podfile文件
$ pod init
3.使用vim编辑Podfile文件
$ vim Podfile
然后在Podfile文件中输入以下文字:
$ pod 'AFNetworking', '~> 3.1.0’
按“ i ”进行编辑,在编辑完后按 esc ,然后按" : ",再输入wq保存退出。
4.利用cocopods下载AFNetworking类库
还是在终端中的当前项目目录下,运行以下命令:
$ pod install
安装成功后,在工程目录里会看到多了一个.xcworkspace工程,以后打开项目就用 swift_test.xcworkspace 打开,而不是之前的.xcodeproj文件。
5.打开 CocoapodsSample.xcworkspace 工程,可以看到AFNetwoking已经成功导入项目。
另附:
(1)如果有一些包已经存在了,或者我们更改了Podfile里面的版本,可以在终端cd到该工程目录下使用以下命令更新。
$ pod update
(2)关于Podfile文件编辑时,第三方库版本号的各种写法:
pod ‘AFNetworking’ //不显式指定依赖库版本,表示每次都获取最新版本
pod ‘AFNetworking’, ‘2.0’ //只使用2.0版本
pod ‘AFNetworking’, ‘>2.0′ //使用高于2.0的版本
pod ‘AFNetworking’, ‘>=2.0′ //使用大于或等于2.0的版本
pod ‘AFNetworking’, ‘<2.0′ //使用小于2.0的版本
pod ‘AFNetworking’, ‘<=2.0′ //使用小于或等于2.0的版本
pod ‘AFNetworking’, ‘~>0.1.2′ //使用大于等于0.1.2但小于0.2的版本,相当于>=0.1.2并且<0.2.0
pod ‘AFNetworking’, ‘~>0.1′ //使用大于等于0.1但小于1.0的版本
pod ‘AFNetworking’, ‘~>0′ //高于0的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本