一般使用的Ruby版本是Mac系統(tǒng)自帶的败明,可能版本較低隘马,因此需要進(jìn)行升級。使用RVM對Ruby進(jìn)行升級
一妻顶、安裝 RVM
RVM: Ruby Version Manager酸员,即Ruby版本管理器,包括Ruby的版本管理和Gem庫管理(gemset)
- 安裝 RVM
安裝方法:文檔說明
curl -L get.rvm.io | bash -s stable
等待一段時間后就可以成功安裝好 RVM
安裝RVM 失敾渲觥:
通過瀏覽器打開該網(wǎng)址:https://get.rvm.io 幔嗦,將網(wǎng)頁中shell語句全部復(fù)制保存到本地文件命名為:vm_install.sh
執(zhí)行腳本:/Users/xxx/Desktop/rvm_install.sh 為.sh腳本文件路徑
chmod 777 /Users/xxx/Desktop/rvm_install.sh
sh /Users/xxx/Desktop/rvm_install.sh
- 設(shè)置本地路徑
source ~/.bashrc
source ~/.bash_profile
- 測試是否安裝正常
rvm -v
二、用RVM升級Ruby
- 查看當(dāng)前ruby版本
ruby -v
結(jié)果:ruby 2.3.7
- 列出已知的ruby版本
// 查找ruby版本
rvm list known
// 或者去官網(wǎng)
[地址](https://www.ruby-lang.org/en/downloads/)
- 安裝ruby
// 重新安裝 ruby 環(huán)境(默認(rèn)安裝最新版本)
rvm reinstall ruby --disable-binary
// 安裝指定版本
rvm install +版本號沥潭,例如 rvm install 2.7.2
// 安裝完ruby邀泉,在安裝pod如果還報錯,可能需要
rvm reload
- 查看已安裝的最新版本
rvm list
5.設(shè)置默認(rèn)
rvm use 2.2.4@newgemset --create --default
或者:
rvm use 2.2.4 --create
rvm --default ruby-2.2.4
安裝完成之后ruby -v查看是否安裝成功
其它安裝指令:
- 將2.2.4版本指令為新的并創(chuàng)建
rvm use 2.2.4@newgemset --create --default - 重新安裝
rvm reinstall ruby-2.2.4 - 移除已安裝的軟件
rvm remove ruby-2.2.4 - 查看已安裝的最新版本
rvm list - 查看當(dāng)前ruby版本
ruby -v - 升級 rvm
rvm get master - 再次安裝
rvm install 2.4.1
三钝鸽、cocoapods的安裝
- 先升級Gem(可以省略)
sudo gem update --system
- 切換cocoapods的數(shù)據(jù)源
先刪除
gem sources --remove https://rubygems.org/
再添加
gem sources -a https://gems.ruby-china.com/
再查看
gem source -l
- 安裝cocoapods
sudo gem install -n /usr/local/bin cocoapods
再加一句汇恤,完美解決
sudo xcode-select --switch /Applications/Xcode.app
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
安裝命令可能報錯:
// 新版系統(tǒng)報錯問題:
ERROR: While executing gem ... (Gem::Exception)
Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources
解決方法:
// 找到ruby源文件路徑:.rvm/src目錄下
1、cd ~/.rvm/src/ruby-3.0.0
2拔恰、./configure --with-openssl-dir=/usr/local/ssl
3因谎、make
4、sudo make install
// 自動編譯颜懊,解決辦法如下:
brew install openssl
rvm reinstall ruby-3.0.1-version --with-openssl-dir=`brew --prefix openssl`
較新版本的OSX不推薦使用openSSL财岔,從而打破了許多依賴關(guān)系风皿。需要重新安裝ruby,但要確切指定openSSL庫的位置匠璧。如果您使用的是rvm桐款,則如下所示:
// 只需要設(shè)置此env變量,以便編譯器具有openssl庫的正確路徑(如果在macOS上使用Homebrew患朱,請嘗試brew info openssl來查看此信息)
brew info openssl
// 安裝的時候需要指定庫的位置
rvm reinstall 3.0.1 --with-openssl-dir=brew --prefix openssl
- 設(shè)置pod倉庫
在終端中輸入如下命令來完成安裝(或者將 CocoaPods Specs repository復(fù)制到電腦上~/.cocoapods目錄下)
pod setup
或者:
git clone https://github.com/CocoaPods/Specs.git ~/.cocoapods/repos/trunk
git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git ~/.cocoapods/repos/trunk
- 有時候pod setup之后會直接顯示完成,我們可以直接cd到目錄~/.cocoapods/repos下面執(zhí)行命令
git clone https://github.com/CocoaPods/Specs.git master
或者:
git clone --depth=1 https://github.com/CocoaPods/Specs.git master
- 如果安裝失敗 ~/.cocoapods 里面是空的炊苫,就需要重新setup
pod repo remove master
pod setup
- 如果有版本號裁厅,則說明已經(jīng)安裝成功
pod --version
四、Cocoapods使用
- 使用search命令搜索類庫名
pod search AFNetworking - 打開xcode,新建一個工程
- 進(jìn)入要安裝框架的項(xiàng)目的.xcodeproj同級文件夾侨艾,使用命令cd执虹,將新建的工程文件拉進(jìn)來(切換到項(xiàng)目文件路徑)
- 在該文件夾中新建一個文件Podfile
pod init
或者直接輸入命令創(chuàng)建Podfile文件
touch Podfile
在新建的文件中告訴cocoapods需要安裝的框架信息:
該框架支持的平臺、適用的iOS版本唠梨、框架的名稱袋励、框架的版本 - 安裝命令
pod install
pod install —no-repo-update
pod update --no-repo-update
-
常見錯誤:
[!] /usr/bin/git pull --ff-only
原因: Cocoapods的分支不支持當(dāng)前最新的Xcode版本
解決辦法: 刪除master分支,重新建立新的分支当叭,然后重新設(shè)置倉庫即可
sudo rm -fr ~/.cocoapods/repos/master
pod setup
五茬故、卸載Cocoapods
- 命令行運(yùn)行命令進(jìn)行卸載
sudo gem uninstall cocoapods
或者:
sudo gem uninstall -n /usr/local/bin cocoapods - 前往文件夾,可以找到整個文件刪除
~/.cocoapods
六蚁鳖、cocoapods降低版本
當(dāng)cocoapods版本跟第三方庫不兼容時磺芭,我們需要降低cocoapods的版本,才能運(yùn)行第三方庫(有的時候我們需要降低Cocoapods的版本來解決第三方庫的兼容問題
)
1. 查看cocoa pod的版本
pod --version
會看到cocoapods (1.3.1)
2. 移除pod組件
這條指令會告訴你Cocoapods組件裝在哪里 :
which pod
可以手動移除這個組件 :
sudo rm-rf</usr/local/bin/pod>
3. 移除 RubyGems 中的 Cocoapods程序包
Q: RubyGems是什么?
A: RubyGems(簡稱 gems)是一個用于對 Ruby組件進(jìn)行打包的 Ruby 打包系統(tǒng)醉箕。 它提供一個分發(fā) Ruby 程序和庫的標(biāo)準(zhǔn)格式钾腺,還提供一個管理程序包安裝的工具。
-
查看gems中本地程序包
gem list
-
發(fā)現(xiàn)Cocoapods的程序包
移除程序包
在命令行輸入:
sudo gem uninstall cocoapods -v 1.8.4
輸出
in addition to the gem? [Yn]
輸入:
Y
輸出
Successfully uninstalled cocoapods-1.8.4
表示已經(jīng)成功移除cocoapods
輸入:
sudo gem uninstall cocoapods-core -v 1.8.4
輸出
Successfully uninstalled cocoapods-core-1.8.4
表示成功移除 core再安裝cocoapods
sudo gem install cocoapods -v 1.5.1升級指定版本
sudo gem install -n /usr/local/bin cocoapods -v 1.11.3升級最新版本
sudo gem install -n /usr/local/bin cocoapods --pre查看版本
pod --version
七讥裤、升級gem
gem update
- 有時候會碰到?jīng)]有讀寫權(quán)限問題放棒,報錯如下:
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory
這時候在終端命令執(zhí)行:sudo gem install fus,然后輸入密碼就可以正常升級安裝
八己英、報錯問題
- 1间螟、Pod使用報錯 CDN: trunk Repo update failed
查看repo列表:
pod repo list
移除trunk源:
pod repo remove trunk
在 Podfile 加上 https://github.com/CocoaPods/Specs.git
其它命令
- 清除緩存
rm -fr ~/Library/Caches/CocoaPods - 升級
gem update --system
gem update - 清除
gem cleanup - 用終端命令打開cocoapods文件夾
open ~/.cocoapods