最近换了个电脑,又需要安装Cocoapods,无比艰辛,以防以后还碰到这些狗血问题,写下一些艰难的安装过程。
那么为什么要安装这玩意? Cocoapods 是什么玩意。
一、什么是CocoaPods
CocoaPods是iOS项目的依赖管理工具,该项目源码在Github上管理。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和第三方开源库的时间。
在使用CocoaPods之前,开发项目需要用到第三方开源库的时候,我们需要
1.把开源库的源代码复制到项目中
2.添加一些依赖框架和动态库
3.设置-ObjC,-fno-objc-arc等参数
4.管理他们的更新
在使用CocoaPods后,我们只需要把用到的开源库放到一个名为Podfile的文件中,然后执行pod install.Cocoapods就会自动将这些第三方开源库的源码下载下来,并且为我们的工程设置好响应的系统依赖和编译参数。
二、CocoaPods的原理
CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。
三、 安装Cocoapods
1.Cocoapods是在什么环境安装的,需要用到什么工具
RubyGems,RubyGems苹果mac自带,但是时常遇到版本过低的情形。
安装或者升级步骤
rvm -v 查看目前rmv的版本
如果没有rmv则去安装
1)打开终端输入 curl -L get.rvm.io | bash -s stable
2)运行完输入 source ~/.rvm/scripts/rvm
3)再次查看rmv 。 输入rmv-v
4)列表显示都可以安装ruby的哪些版本 rvm list known
5)更新ruby至想要的版本 rvm install 2.3.0
2.开始安装 Cocoapods
1)打开终端输入 sudo gem install cocoapods
可能遇见的问题
执行完这句如果报告以下错误:
ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why:
Unable to download data fromhttps://rubygems.org/- Errno::ETIMEDOUT: Operation timed out - connect(2) (https://rubygems.org/latest_specs.4.8.gz)
ERROR: Possible alternatives: cocoa pods
这是因为ruby的软件源rubygems.org因为使用亚马逊的云服务,被我天朝屏蔽了,需要更新一下ruby的源,过程如下:
$ gem sources -l (查看当前ruby的源)
$ gem sources --removehttps://rubygems.org/
$ gem sources -ahttps://ruby.taobao.org/
$ gem sources -l
如果gem太老,可以尝试用如下命令升级gem
$ sudo gem update --system
升级成功后会提示: RubyGems system software updated
然后重新执行安装下载命令
$ sudo gem install cocoapods
2)运行完输入 pod setup
如果成功了安装,那么接下来就是使用Cocoapods
依旧在终端
进入工程所在的目录(工程根目录) cd空格(+文件所在目录)
执行命令 touch Podfile
这句是说新建一个名为Podfile的文件(不能写成别的名字,也可以自己在工程根目录里面直接新建)
然后对改文件进行编辑,执行命令 open -e Podfile
第一次执行这个命令,会有一个空白文件打开,可以先放在一边,
Podfile文件的格式应该如下:
platform :ios, '7.0'
pod 'AMap2DMap', '~> 2.5.0'
pod 'AFNetworking', '~> 2.5.3'
pod 'SDWebImage', '~> 3.7.2'
需要注意的几点:platform那一行,ios三个字母都要小写,而且与前面的冒号之间不能有间隔,后面的版本号也可以不写,但是有些开源库对版本是有要求的,比如要在6.0以上才能运行,遇到这样的开源库就需要写上版本号。
platform下面就是Cocoapods需要集成的开源库,根据你的需要确定集成那些库。
最后主要说下我在pod setup遇到的一个问题 比较少见
Unable to add a source with url `https://github.com/CocoaPods/Specs.git` named `master`.
You can try adding it manually in `~/.cocoapods/repos` or via `pod repo add`.
这个错误
终端输入 pod repo add master https://github.com/CocoaPods/Specs.git
额 五个小时过去了 依旧不行 。我无fuck可说啊! 这Cocoapods装了我10天时间都没装好。我开大招。最后一招。。
1.通过finder的前往文件夹进行查看 ~/.cocoapods/repos
2.通过终端,进入到 ~/.cocoapods/repos
3.然后通过 git clonehttps://github.com/CocoaPods/Specs.git
还有其他问题的话,先看看是不是rubygem镜像源是不是被墙了,可以切换镜像源。
甚至,如果最终实在没办法,找到一个安装好了cocoapods的Mac电脑,到他的~/.cocoapods/repos目录下面拷贝出master文件到自己的Mac上的相应位置。
成了