rvm、Ruby、gem、CocoaPods 的安装与卸载
有了 CocoaPods则无需再通过拖 第三方库及第三方库所依赖的 framework静态库到项目中等麻烦的操作,仅仅只需要通过终端(Terminal)输入一些指令即可完成这些操作;而且涉及到第三方库的更新升级也可以通过 CocoaPods进行手动管理更新。
官网链接
Homebrew 官网
Rvm 官网
Rvm 安装指南
Ruby 官网
CocoaPods 官网
Ruby 镜像
Homebrew 介绍
Homebrew是一个软件包管理器,用于在mac上安装一些os x上没有的UNiX工具;类似于360软件管理器。
Rvm 介绍
Rvm全称 Ruby Version Manager,是安装和管理 ruby 的一种工具。
摘录: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 实现的,要想使用它首先需要有 ruby 的环境。幸运的是OS X系统默认已经可以运行 ruby 了。但是有时候 ruby 版本过低是无法正常支持 CocoaPods 的使用,所以需要先安装更新升级 rvm 和 ruby。
rvm 安装与卸载
查看当前版本
rvm -v
安装
curl -L get.rvm.io | bash -s stable 或者 curl -L https://get.rvm.io | bash -s stable
source ~/.bashrc
source ~/.bash_profile
卸载(执行会彻底删除 .rvm 目录,从而删除 rvm)
rvm implode 或者 rm -rf ~/.rvm
Ruby 安装与卸载
使用 ruby 原因:
虽然 macOS 自带了一个 ruby 环境,但是是系统自己使用的,所以权限很小,只有系统能用;~/Library 目录是 root 管理者权限,所以很多会提示无权限。使用自带 Ruby 更新,管理不方便,一系列无原因的报错,因此推荐另外安装一个 ruby 环境。
删除系统 ruby 方法[删除容易出现问题,不要删除]
系统 Ruby 安装路径
这里只是单纯的介绍下,系统 ruby 的相关内容,在安装 Cocoapods 时,并不需要对系统 ruby 做而外操作,请忽略该内容。
查看系统 Ruby 版本
cd /System/Library/Frameworks/Ruby.framework/Versions
删除系统 Ruby
sudo rm /System/Library/Frameworks/Ruby.framework/Versions/Current
下载并解压所需的 Ruby 版本
sudo ln -s 2.6 /System/Library/Frameworks/Ruby.framework/Versions/Current
Ruby 安装与卸载
在安装 Cocoapods 时,后面的内容才是我们需要注意的地方。
查看 Ruby 版本
ruby -v
查看已安装 Ruby 版本
rvm list
查看可安装 Ruby 版本
rvm list known
安装指定 Ruby 版本
rvm install x.x.x
(安装时,可能会遇到错误,大部分是因为没有安装Homebrew造成,所以要提前安装Homebrew比较好)
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
设置默认版本(不知道啥子用)
rvm use x.x.x –default(曾经删除了的 ruby,
ruby -v
竟然还输出默认值,没事别尝试)
查看 Ruby 安装的路径地址
which ruby
卸载 Ruby(或者直接使用删除 rvm 命令)
rvm uninstall x.x.x 或者 rvm remove x.x.x
如果出现类似错误:
Error running '__rvm_rm_rf /Users/xxx/.rvm/rubies/ruby-2.6.9-preview2',
please read /Users/xxx/.rvm/log/1538210544_ruby-2.6.0-preview2/remove.rubies.log
可以使用 remove 命令:
sudo rvm remove 2.6.0,完全移除。
或者 sudo rm -rf ”ruby 安装的路径地址“ (暴力删除,直接将 ruby 文件干掉)
gem
查看 gem 版本
gem -v
查看 Ruby 源
gem sources -l
更新 gem 版本
gem update –system
如果出现类似错误:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/3.0.1 directory.
可以使用:
sudo gem update –system
CocoaPods 安装与卸载
pods安装的前提是先要安装好上述三种环境。
查看镜像源
gem sources -l
添加镜像源
gem sources –add https://gems.ruby-china.com/
删除镜像源
gem sources –remove https://gems.ruby-china.org/
https://gems.ruby-china.org/
该镜像源已被弃用,请使用 https://gems.ruby-china.com/
查看 CocoaPods 安装的路径地址
which pod
安装 CocoaPods
sudo gem install cocoapods
如果出现类似错误:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.
可以使用:
sudo gem install -n /usr/local/bin cocoapods
如果安装了多个Xcode使用下面的命令选择(一般需要选择最近的Xcode版本)
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
卸载 CocoaPods
sudo gem uninstall cocoapods
或者 sudo rm -rf ”cocoapods 安装的路径地址“ (暴力删除,直接将 ruby 文件干掉,别轻易尝试)
CocoaPods 具体使用
安装 Podspec(本地库)
方式一:
pod setup
为什么要执行pod setup?
所有的项目的 Podspec 文件都托管在https://github.com/CocoaPods/Specs。第一次执行 pod setup 时,CocoaPods 会将这些 podspec 索引文件更新到本地的~/.cocoapods/目录下,这个索引文件比较大,主要是这网有堵墙在那,咋个也快不起来呀?
pod setup
超级慢咋办? 贴一下网上:解决方案
方式二:
/// A.翻墙,直接从官方进行下载安装
git clone https://github.com/CocoaPods/Specs.git ~/.cocoapods/repos/trunk
/// B.国内的镜像地址,速度快准稳
git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git ~/.cocoapods/repos/trunk
更新 Podspec(本地库)
pod repo update
查看 CocoaPods 版本号
pod –version
搜索三方库
pod search xxx
项目中初始化 CocoaPods(生成 podfile)
pod init // init 之后,项目中就会存在 cocoapods 的依赖环境
编辑 Podfile
# 指定的 workspace,可选
workspace 'MyWorkspace'
# 指定的 project,可选
project 'Myxcodeproj'
# 不指定会默认,可配置镜像源、私有源
source 'https://github.com/CocoaPods/Specs.git'
# 支持的平台和版本
platform :ios, '9.0'
# 可忽略引用库的所有警告
inhibit_all_warnings!
# 抽象的 Target 用于多个 Target
abstract_target 'Shows' do
# 尽可能不使用 动态库
#use_frameworks!
# 添加需要的 Pod
pod 'testPod'
# 添加指定版本的 Pod
#'> 0.1'任何高于 0.1 的版本
#'>= 0.1'0.1 版及更高版本
#'['Debug']
# 添加从指定Git仓库下载指定 Tag 的Pod
pod 'testGitSource',:git=>'https://github.com/test/testGitSource.git',:tag=> '1.0.0'
# 添加指定本地路径的 Pod
pod 'testLocal', :path => '../code/Pods/'
# 针对多Target项目的书写方法
# Has its own copy of ShowsKit + ShowWebAuth
target 'ShowsiOS' do
# 可以在这里单独添加该Target单独使用的开源框架
pod 'ShowWebAuth'
end
# Has its own copy of ShowsKit + ShowTVAuth
target 'ShowsTV' do
# 可以在这里单独添加该Target单独使用的开源框架
pod 'ShowTVAuth'
end
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' # 最低适配iOS 12.0, 这里设置第三方适配最低版本,避免部分警告出现
end
end
end
编辑 Podfile 该内容摘自原文
搜索依赖库(第三方库)
pod search AFNetWorking
安装依赖库(第三方库)
pod install
更新依赖库(第三方库)
pod update
查找可更新的库
pod outdated
完全删除项目中的 CocoaPods
当我们在从 github 上,下载一些 Demo 时,运行总会因为 pod 的某些问题,而导致运行失败,或者你觉得 CocoaPods让你的项目出现了问题,非常的搞心态,想将其从项目中彻底移除,可以试试下面的方式:
-
利用终端删除项目中 CocoaPods 依赖
0、删除之前,应确保已备份项目!
1、sudo gem install cocoapods-deintegrate cocoapods-clean // 同时安装cocoapods-deintegrate 和 cocoapods-clean 插件
2、先 cd 到想要删除的工程目录下,再打开终端输,最后输入一下命令
3、pod deintegrate // 删除项目中 CocoaPods
4、pod clean 或者 pod cache clean –all // 清除项目 CocoaPods 缓存,目的是为了删除 pod 的一些衍生文件/数据。如果清洁完还有 pod 残留,手动删除好了。
5、rm Podfile (可选,可以接着使用,也可以重新pod init
一份) -
cocoapods-deintegrate 插件
-
不用上面方式,手动直接删? 没试过,不知道行不行,贴下试过小伙伴的文章:在项目中移除CocoaPods
cocoapods-deintegrate 插件 该内容摘自原文
常用命令汇总
rvm 、 Ruby
$ ruby -v # 查看ruby 版本
$ rvm list known # 列出已知的 ruby 版本
$ rvm install x.x.x # 选择指定 ruby 版本进行更新
$ rvm get stable # 更新 rvm
$ rvm use x.x.x # 切换到指定 ruby 版本
$ rvm use x.x.x --default # 设置指定 ruby 版本为默认版本
$ rvm list # 查询已安装的 ruby 版本
$ rvm remove x.x.x # 卸载移除 指定 ruby 版本
$ curl -L https://get.rvm.io | bash -s stable # 安装 rvm 环境
$ curl -sSL https://get.rvm.io | bash -s stable --ruby # 默认安装 rvm 最新版本
$ curl -sSL https://get.rvm.io | bash -s stable --ruby=3.0.0 # 安装 rvm 指定版本
$ source ~/.rvm/scripts/rvm # 载入 rvm
gem
$ gem -v # 查看 gem 版本
$ gem source # 查看 gem 配置源
$ gem source -l # 查看 gem 配置源目录
$ gem sources -a url # 添加 gem 配置源(url 需换成网址)
$ gem sources --add url # 添加 gem 配置源(url 需换成网址)
$ gem sources -r url # 删除 gem 配置源(url 需换成网址)
$ gem sources --remove url # 删除 gem 配置源(url 需换成网址)
$ gem update # 更新 所有包
$ gem update --system # 更新 Ruby Gems 软件
$ gem install rake # 安装 rake,从本地或远程服务器
$ gem install rake --remote # 安装 rake,从远程服务器
$ gem install watir -v 1.6.2 # 安装 指定版本的 watir
$ gem install watir --version 1.6.2 # 安装 指定版本的 watir
$ gem uninstall rake # 卸载 rake 包
$ gem list d # 列出 本地以 d 打头的包
$ gem query -n ''[0-9]'' --local # 查找 本地含有数字的包
$ gem search log --both # 查找 从本地和远程服务器上查找含有 log 字符串的包
$ gem search log --remoter # 查找 只从远程服务器上查找含有 log 字符串的包
$ gem search -r log # 查找 只从远程服务器上查找含有log字符串的包
$ gem help # 提醒式的帮助
$ gem help install # 列出 install 命令 帮助
$ gem help examples # 列出 gem 命令使用一些例子
$ gem build rake.gemspec # 把 rake.gemspec 编译成 rake.gem
$ gem check -v pkg/rake-0.4.0.gem # 检测 rake 是否有效
$ gem cleanup # 清除 所有包旧版本,保留最新版本
$ gem contents rake # 显示 rake 包中所包含的文件
$ gem dependency rails -v 0.10.1 # 列出 与 rails 相互依赖的包
$ gem environment # 查看 gem 的环境
$ gem list --local | grep cocoapods # 查看本地安装过的cocopods相关东西
$ sudo gem -v # 查看 gem 版本(以管理员权限)
$ sudo gem install cocoapods # 安装 CocoaPods(以管理员权限)
$ sudo gem install cocoapods --pre # 安装 CocoaPods 至预览版(以管理员权限)
$ sudo gem update cocoapods # 更新 CocoaPods 至最新版(以管理员权限)
$ sudo gem update cocoapods --pre # 更新 CocoaPods 至预览版(以管理员权限)
$ sudo gem uninstall cocoapods -v 0.39.0 # 移除 CocoaPods 指定版本(以管理员权限)
pod
$ --verbose # 可以显示详细的检测过程,出错时会显示详细的错误信息
$ --repo-update # 不忽略本地库的更新
$ --no-repo-update # 忽略本地库的更新,执行效率更快
$ 以上三个可以在 pod 的时候组合使用
$ pod setup # CocoaPods 将信息下载到~/.cocoapods/repos 目录下。如果安装 CocoaPods 时不执行此命令,在初次执行 pod intall 命令时,系统也会自动执行该指令
$ pod --version # 检查 CocoaPods 是否安装成功及其版本号
$ pod init # 创建 Podfile 文件
$ pod search AFNetworking # 搜索 AFNetworking 第三方库
$ pod install # 安装第三方库,默认会更新本地库
$ pod update # 更新所有可更新的三方库,默认会更新本地库
$ pod update AFNetworking # 只更新AFNetworking,其他第三方库不会更新
$ pod deintegrate # 删除项目中的 CocoaPods,
$ pod clean # 清理项目中的 CocoaPods 缓存,
$ pod install --no-repo-update # 忽略本地库更新,安装第三方库
$ pod install --verbose --no-repo-update # 显示详细的检测过程,出错时会显示详细的错误信息;忽略本地库更新,安装第三方库
$ pod update --no-repo-update # 忽略本地库更新,更新第三方库 建议 pod update 的时候太慢的时候使用
$ pod update --verbose --no-repo-update # 显示详细的检测过程,忽略本地库更新,更新第三方库。
$ pod repo update # 更新本地库repo
$ pod repo remove master # 移除本地 master
$ sudo rm -fr ~/.cocoapods/repos/master # 移除本地 master
$ sudo rm -fr ~/Library/Caches/CocoaPods/ # 移除本地缓存
$ pod repo remove trunk # 移除trunk
$ sudo rm -fr ~/.cocoapods/repos/trunk # 移除本地 trunk
$ pod repo list # 确认是否已移除 trunk