OC学习14:rvm、Ruby、gem、cocoapods探索
Homebrew 介绍
Homebrew
是一个 软件包管理器
,用于在 Mac 上安装一些 OS X 上没有的 UNiX 工具;类似于360软件管理器。
Rvm 介绍
Rvm
全称 Ruby Version Manager
,是安装和管理 ruby
的一种工具。
1 | 摘录:RVM is a command-line tool which allows you to easily install, manage, and work with multiple ruby environments from interpreters to sets of gems. |
Ruby 介绍
Ruby
是一种 面向对象的脚本语言
,简单易用,功能强大。能跨平台和可移植性好等等。其实就是种脚本语言。
Ruby
的软件源使用的是亚马逊的云服务,国内网络环境下载时可能会出现各种不稳定和超时,所以自带的需要FQ,可以将官方 ruby
源 替换成国内 China ruby
源。2016.06 淘宝源暂停维护了。
CocoaPods 介绍
CocoaPods
是iOS
最常用的第三方类库管理工具
,绝大部分有名的开源类库都支持 CocoaPods。CocoaPods
是用ruby
实现的,它是由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)
创建于1993年,与Perl、Python等类似,是一种脚本语言
。要想使用它首先需要有ruby
的环境。幸运的是OS X
系统默认已经可以运行ruby
了。但是有时候ruby
版本过低是无法正常支持CocoaPods
的使用,所以需要先安装更新升级rvm
和ruby
。Cocoapods
项目 源码 存放在Github
上进行管理,我们在开发iOS项目时,不可避免的要使用第三方开源库
,Cocoapods
的出现使我们节省了设置和更新第三方开源库的时间
。CocoaPods
让我们无需再通过拖第三方库及第三方库所依赖的
framework静态库到项目中等麻烦的操作,仅仅只需要通过终端(Terminal)输入一些指令即可完成这些操作;而且涉及到第三方库的更新升级也可以通过 CocoaPods进行手动管理更新。
rvm 安装与卸载
- 查看当前版本
1 | rvm -v |
- 安装
1 | curl -L get.rvm.io | bash -s stable 或者 curl -L https://get.rvm.io | bash -s stable |
- 卸载(执行会彻底删除
.rvm
目录,从而删除 rvm)
1 | rvm implode 或者 rm -rf ~/.rvm |
Ruby 安装与卸载
1 | 使用 ruby 原因: |
- Ruby查看
在安装
Cocoapods
管理依赖工具前,我们需要保证Ruby
环境是最新
的,否则会出现一些安装问题
默认情况下,
MacOS
系统已经安装好Ruby
,默认安装在cd /System/Library/Frameworks/Ruby.framework/Versions/Current
目录下,但不是最新的环境在
终端
可以直接通过以下命令,确认系统的Ruby
的版本信息:
1 | // 查看 Ruby 版本 |
- 查看已安装 Ruby 版本
1 | rvm list |
- 查看可安装 Ruby 版本
1 | rvm list known |
- 安装指定 Ruby 版本
1 | rvm install x.x.x |
- 删除系统 Ruby
1 | sudo rm /System/Library/Frameworks/Ruby.framework/Versions/Current |
- 下载并解压所需的 Ruby 版本
1 | sudo ln -s 2.6 /System/Library/Frameworks/Ruby.framework/Versions/Current |
安装时,可能会遇到错误,大部分是因为没有安装 Homebrew 造成,所以要提前安装Homebrew比较好)
但是,由于默认的
Ruby
安装在/System
目录下,过深的与linux
约定不同的目录结构对日常的开发、维护都带来许多不便。所以,在
MacOS
上推荐使用homebrew
来安装、管理Ruby
的版本。
- 安装
homebrew
- 在终端下,执行下面的命令,即可完成homebrew的安装(注:安装过程中提示输入当前用户的密码):
1 | /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
该命令将会从
homebrew
的GitHub
仓库抓取最新版本并自动完成安装
。安装成功后,即可使用brew
命令来安装Ruby
的最新版本,以及其他工具。homebrew
的默认安装目录为/usr/local
,所有通过brew
安装的程序都会默认安装到/usr/local/Cellars/程序名/版本号/
目录下。
- 通过
brew
安装Ruby
最新版本
在终端下执行以下命令,即可自动完成最新版本 Ruby
的安装:
1 | brew update |
说明:
1、brew update
将会从GitHub
上更新brew
所支持的所有软件的版本信息,保证你能够安装到最新的版本
2、brew install ruby
将会从Ruby
的GitHub
仓库抓取最新版本的代码,并编译安装
- 安装成功后,重新执行
ruby -v
确认已成功安装了最新版本的 Ruby:
1 | ruby -v |
- 查看 Ruby 安装的路径地址
1 | which ruby |
- 卸载 Ruby(或者直接使用删除 rvm 命令)
1 | rvm uninstall x.x.x 或者 rvm remove x.x.x |
如果出现类似错误:
1 | Error running '__rvm_rm_rf /Users/xxx/.rvm/rubies/ruby-2.6.9-preview2', |
可以使用 remove 命令:
1 | sudo rvm remove 2.6.0,完全移除。 |
gem
默认的镜像资源服务器被天朝给墙了。所以需要先更换源地址,然后再安装。
- 移除原先的
Ruby
源:
1 | $ gem sources --remove https://rubygems.org/ |
- 指定为
Ruby China
的镜像源:
1 | $ gem sources --add https://gems.ruby-china.com/ |
- 验证新源是否替换成功
1 | $ gem sources -l |
Cocoapods 安装
使用 ruby
的 gem
命令下载并安装 CocoaPods
。
macOS Catalina
系统版本之前用:$sudo gem install cocoapods
;macOS Catalina
系统版本之前版本后需要改为 :$ sudo gem install -n /usr/local/bin cocoapods
安装
$ pod setup
所有项目的
Podspec
文件都托管在 https://github.com/CocoaPods/Specs 中。第一次执行pod setup
时,CocoaPods
会将这些Podspec
索引文件更新到本地的~/.cocoapods/目录下
,该索引文件较大且更新非常缓慢。可以替换镜像,有两种方式:
gitcafe
或者occhina
镜像:
1 | pod repo remove master |
- 也可以将以上代码中的
https://gitcafe.com/akuandev/Specs.git
替换成http://git.oschina.net/akuandev/Specs.git
即可使用occhina
上的镜像。
搜索相关框架
打开终端,输入以下命令:pod search 框架名
,如搜索网络框架 AFNetworking
1 | $ pod search AFNetworking |
移除 trunk 源
如果执行 pod
相关命令时,显示 CDN
无法连接、连接超时之类的情况,可以移除 trunk
源,然后在 Podfile
文件中第一行指明依赖库的来源地址,不使用默认 CDN
。
1 | $ pod repo remove trunk |
项目中的使用
- 创建
Podfile
文件
新建 Xcode
项目,在终端里 cd
到项目的主文件夹(就是包含 项目 .xcodeproj
的文件)。执行命令:
1 | # 创建 Podfile 文件 |
- 编辑
Podfile
文件有两种方式:
【方法一】:终端编辑
vim Podfile
执行vim Podfile
命令后,会打开上一步骤创建的Podfile
文件,你需要通过vim
编辑此文件,默认进入命令模式。- 键盘命令
i
:input,输入模式 - 键盘命令
ESC
: 从输入模式退出到命令模式 - 键盘命令
shift + :
: 在命令模式下,输入该键盘组合命令,就会进入末行模式 - 键盘命令
wq
: 在末行模式下,输入 wq ,即write and quit
,保存并退出!
- 键盘命令
【方法二】:直接打开项目文件
Podfile
- 保存文件后,安装第三方库
- 更新依赖库,执行
pod update
(记得cd 到项目主文件下)。 - 安装依赖库,执行
pod install
。
- 安装完成,此时项目文件中会多出
.xcworkspace
文件,以后就通过它来打开项目。
Podfile 文件示例
1 | # 指明依赖库的来源地址,不使用默认 CDN |
三方库常用命令
1 | ###### 安装 Cocoapods ###### |
Cocoapods常用命令?
- 下载并安装所有依赖项
pod install
- 更新依赖项
pod update
- 查找可更新的库
pod outdated
- 删除项目中的cocoapods
pod deintegrate
- 搜索
pod search
podfile.lock是什么?
podfile.lock
文件是第一次运行 pod install
后生成的,并跟踪安装每个 pod
版本。
pod install做了什么?
- 创建或更新
workspace
- 将
project
添加到workspace
- 将
Cocoapods静态库
添加到workspace
- 将
Cocoapods 的 xcconfig
文件添加到应用程序项目中 - 将应用的
target xcconfig
更改为基于Cocoapods
的配置
CDN: trunk URL couldn’t be downloaded: https://cdn.jsdelivr.net/cocoa/Specs/d/1/8/CocoaLumberjack/1.9.2/CocoaLumberjack.podspec.json Response: Timeout was reached
pod install 时,报上面的错误,我们在浏览器中输入 https://cdn.jsdelivr.net/
回车,如果连不上,肯定是会报错的。
由于 cocoapods
默认是走 CDN
镜像源,从这个源的 URL干线 去更新,如果 CDN 不通,就无法更新。
看 Podfile
中指定的源是 source 'https://cdn.cocoapods.org/'
,如果项目中指定的源为 source 'https://cdn.cocoapods.org/'
,那么就得先保证 CDN
能通,否则肯定报错。
如果走不通 CDN
的话,我们就需要将 Podfile中
源设置成 清华源(source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git')
或 GitHub源(https://github.com/CocoaPods/Specs.git)
等
- Post title:OC学习14:rvm、Ruby、gem、cocoapods探索
- Post author:张建
- Create time:2020-08-01 16:33:41
- Post link:https://redefine.ohevan.com/2020/08/01/OC/OC学习14:rvm、Ruby、gem、cocoapods探索探索/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.