CocoaPods 安装过程+总结
1、检查当前rvm环境 $rvm -v
`输出结果:( 存在 rvm 环境)`muxuguixiandeMacBook-Pro:~ jijiucheng$ rvm -vrvm1.27.0(latest) by Wayne E. Seguin , Michal Papis [https://rvm.io/]
`输出结果:(不存在 rvm 环境)`muxuguixiandeMacBook-Pro:~ jijiucheng$ rvm -v-bash: rvm:commandnotfound
如果不存在rvm环境,先安装配置rvm环境 $curl -L https://get.rvm.io | bash -s stable
期间可能会问你 `sudo管理员` 密码,以及自动通过 `homebrew` 安装依赖包;
等待一段时间后就可以成功安装好 `rvm`。
然后,载入 RVM 环境(新开 Termal 就不用这么做了,会自动重新载入的)。
$source ~/.rvm/scripts/rvm
输出结果:(^_^)(什么都没有输出)muxuguixiandeMacBook-Pro:~ jijiucheng$source ~/.rvm/scripts/rvm
③ 再次检查 rvm 是否安装正确。
$rvm -v
`输出结果:( 存在 rvm 环境)`muxuguixiandeMacBook-Pro:~ jijiucheng$ rvm -vrvm1.27.0(latest) by Wayne E. Seguin , Michal Papis [https://rvm.io/]
2、用rvm安装ruby环境 $ rvm list known
指定ruby版本进行更新( 此处按照ruby2.3.0版本进行更新 )。
$ rvm install 2.3.0
查询已安装的 ruby:
$ rvm list
卸载一个已安装版本:
$ rvm remove 2.3.0
检查更新 ruby 版本环境(正常情况下从此步骤开始)
CocoaPods是用gem ruby实现的,要想使用它首先需要有gem ruby的环境。且 MAC 的 OS X系统默认已经可以运行ruby。
此处建议gem ruby包环境升级到2.6.x以上。
检查gem ruby版本号:
$sudo gem -v
检查结果:( 默认情况下版本应该较低,建议升级到 )muxuguixiandeMacBook-Pro:localjijiucheng$ gem -v2.5.1
更新gem ruby版本号:
$gem update --system
更新成功:( 实际打印可能与此不同,但是成功了就会显示 Successfully )muxuguixiandeMacBook-Pro:localjijiucheng$ gemupdate--systemUpdating rubygems-updateFetching: rubygems-update-2.6.7.gem (100%)Successfully installed rubygems-update-2.6.7
此种提示:( 表示已经是最新的 gemruby环境 )muxuguixiandeMacBook-Pro:~ jijiucheng$ gemupdate--systemLatestversioncurrently installed. Aborting.
检查ruby 源
$ gem sources -l
检查结果:( 如果电脑没安装过 CocoaPods,此时应该是默认 ruby 源 )muxuguixiandeMacBook-Pro:~ jijiucheng$gem sources -l*** CURRENT SOURCES ***https://rubygems.org/
移除ruby 源
$ gem sources --removehttps://rubygems.org/
移除结果:muxuguixiandeMacBook-Pro:local jijiucheng$ gem sources --removehttps://rubygems.org/https://rubygems.org/ removed from sources
替换添加国内镜像源ruby-china 源,因为上面已经提到国内镜像源taobao 源已经停止维护了,所以此处替换的是ruby-china 源,且尽量确保只有一个ruby-china 源
$ gem sources --addhttps://gems.ruby-china.org
$ gem sources --addhttps://gems.ruby-china.com (因为该源的域名备案问题,提供.com代替.org)
替换结果:muxuguixiandeMacBook-Pro:local jijiucheng$ gem sources --addhttps://gems.ruby-china.orghttps://gems.ruby-china.org addedtosources
再次检查此时的 ruby 源:( 已经变成了 ruby-china 源 )muxuguixiandeMacBook-Pro:localjijiucheng$ gem sources -l*** CURRENT SOURCES ***https://gems.ruby-china.org
3、安装 CocoaPods
安装 CocoaPods(sudo 表示管理员执行指令)(此处需要输入一次密码)
$ sudo geminstallcocoapods OS X10.11之前用这个命令
$ sudo gem install -n /usr/local/bin cocoapods OS X10.11以后用这个命令
底端有 gems installed 标志着安装 CocoaPods 成功
$ pod setup 安装成功之后执行这个命令 可是这个要等太久太久了 下面介绍个实用的办法,还可以看到进度条
$ cd ~/.cocoapods/repos
$ git clone https://github.com/CocoaPods/Specs.git
好了,现在可以尽情的看到进度条在动了。安心等下载完成吧,再也不用在那里死等那个pod setup了。有进度提示,放心多了。
等下载好之后,只需要把这个Specs 改名为master 就可以了。
然后执行 pod repo 可以看到如下信息:
master
- Type: git (master)
- URL: https://github.com/CocoaPods/Specs.git
- Path: /Users/fengsh/.cocoapods/repos/master
1 repo
最后,pod setup 成功了。现在就可以cd到你的项目路径下尽情的pod install 了。注意,pod install 和pod update也慢,但这两命令慢的话,我们也可以自己搭建私有的cocoapod库来中转一下。来解决这个慢的问题。
使用 pod install 还是 pod update,原文这里
许多人开始使用CocodPods的时候认为pod install只是你第一次用CocoaPods建立工程的时候使用,而之后都是使用pod update,但实际上并不是那会事。简单来说,就是:
1.使用pod install来安装新的库,即使你的工程里面已经有了Podfile,并且已经执行过pod install命令了;所以即使你是添加或移除库,都应该使用pod install。
2.使用pod update [PODNAME] 只有在你需要更新库到更新的版本时候用。
pod install
这个是第一次在工程里面使用pods的时候使用,而且每次你编辑你的Podfile(添加、移除、更新)的时候使用。
1:每次运行pod install命令的时候,在下载、安装新的库的同时,也会把你安装的每个库的版本都写在了Podfile.lock文件里面。这个文件记录你每个安装库的版本号,并且锁定了这些版本。
2:当你使用pod install,它只处理了pods的依赖,但是不会处理Podfile.lock文件。
对于在Podfile.lock里面所列出的pods,会下载在Podfile.lock里面明确的版本,并不会去检查是否该库有新的版本。
对于不在Podfile.lock里面的库,会找到Podfile里面描述对应版本(例如:pod "MyPod", "~>1.2")。
pod outdated
当你运行pod outdated命令,CocoaPods会列出那些所有较Podfile.lock里面有新版本的库(那些当前被安装着的库的版本)。这个意思就是,如果你运行pod update PODNAME,如果这个库有新的版本,并且新版本仍然符合在Podfile里的限制,它就会被更新。
pod update
当你运行 pod update PODNAME 命令时,CocoaPods会帮你找到并更新到这个库的新版本,而不需要考虑Podfile.lock里面的限制,它会更新到这个库尽可能的新版本,只要符合Podfile里面的版本限制。
如果你运行pod update,后面没有跟库的名字,CocoaPods就会更新每一个Podfile里面的库到尽可能的最新版本。
正确用法:
你应该使用pod update PODNAME(库名)去只更新某个特定的库(检查是否有新版本,并尽可能更新到新的版本)。相反,使用pod install,这个命令不会更新那些已经安装了的库。
当你在你的Podfile里面添加了一个库的时候,你应该使用pod install,而不是pod update,这样既安装了这个库,也不需要去更新其它的已安装库。
你应该使用pod update去更新某个特定的库,或者所有的库(在Podfile的限制中)。
提交你的Podfile.lock文件:
在此提醒,即使你一向以来,不commit你的Pods文件夹到远程仓库,你也应该commit并push到远程仓库中。 要不然,就会破坏整个逻辑,没有了Podfile.lock限制你的Pods中的库的版本。