如何在 macOS 上同時(shí)使用 Flutter2 和 Flutter3 進(jìn)行 ios 開(kāi)發(fā)

前言
貓哥主打系統(tǒng)環(huán)境是:
-
macos -
flutter 3.7.12 -
ruby 3.2.2 -
cocoapods 1.12.1 -
xcode 14.3.1
這套配置運(yùn)行最新的項(xiàng)目沒(méi)問(wèn)題,但是最近需要維護(hù) flutter 2.10.5 這種老項(xiàng)目,雖然用了 fvm 進(jìn)行 flutter 版本切換,但是 flutter 2.10.5 用的 ruby 2 ,我當(dāng)前是 ruby 3 所以運(yùn)行 pod install 的時(shí)候就報(bào)錯(cuò)了。
[!]?Invalid?`Podfile`?file:?undefined?method?`exists?'?for?File:Class.
?#??from?/Users/ducafecat/Documents/project-2021/helber_v2/helber_v2_flutter_210/ios/Podfile:34
?#??-------------------------------------------
?#
?>????flutter_install_all_ios_pods?File.dirname(File.realpath(__FILE__))
?#
?#??-------------------------------------------
這個(gè)錯(cuò)誤很常見(jiàn),因?yàn)?ruby 3 的 api 接口有變化。
今天就來(lái)說(shuō)說(shuō)我是怎么解決的,我是需要靈活切換舊版、新版的 IOS 開(kāi)發(fā)環(huán)境。
原文 https://ducafecat.com/blog/011-flutter-macos-rvm-cocoapods-fvm
參考
https://www.moncefbelyamani.com/how-to-install-xcode-homebrew-git-rvm-ruby-on-mac/
https://www.moncefbelyamani.com/why-you-should-never-use-sudo-to-install-ruby-gems/
https://www.phusionpassenger.com/library/walkthroughs/deploy/ruby/ownserver/nginx/oss/install_language_runtime.html
https://blog.driftingruby.com/articles/2023/03/04/ruby-with-yjit.html
https://github.com/rvm/rvm
https://rvm.io/rvm/install
https://brew.sh/
https://cocoapods.org/
rvm 知識(shí)點(diǎn)
RVM(Ruby Version Manager)是一個(gè)用于管理 Ruby 版本的工具,它可以讓您在同一臺(tái)機(jī)器上安裝和使用多個(gè) Ruby 版本,并且可以為每個(gè) Ruby 版本提供獨(dú)立的 gem 環(huán)境。以下是 RVM 的一些優(yōu)點(diǎn):
-
多版本管理:使用 RVM,您可以輕松地在同一臺(tái)機(jī)器上安裝和管理多個(gè) Ruby 版本。這對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)非常有用,因?yàn)椴煌捻?xiàng)目可能需要不同的 Ruby 版本或 gem 包。
-
gem 環(huán)境隔離:RVM 可以為每個(gè) Ruby 版本提供獨(dú)立的 gem 環(huán)境,以避免不同版本之間的 gem 包沖突。這意味著您可以在不同的 gem 環(huán)境中安裝和管理 gem 包,而不會(huì)相互干擾。
-
簡(jiǎn)單易用:RVM 提供了一組簡(jiǎn)單易用的命令,使您可以輕松地安裝、卸載、切換和管理 Ruby 版本、gem 包和 gemset。
-
社區(qū)支持:RVM 是一個(gè)流行的 Ruby 工具,擁有活躍的社區(qū)支持和開(kāi)發(fā)團(tuán)隊(duì),可以及時(shí)解決問(wèn)題和更新版本。
-
跨平臺(tái)支持:RVM 支持多種操作系統(tǒng),包括 macOS、Linux 和 Windows,使您可以在不同的平臺(tái)上使用相同的工具和環(huán)境。
思路
我嘗試了些方法,過(guò)程如下:
-
刪除本機(jī)各種 ruby cocoapods 工具 -
安裝最新版 ruby 3.2.2 -
安裝最新版 cocoapods -
安裝 rvm ruby 版本切換工具 -
通過(guò) rvm 安裝 ruby 2.7.8 -
切換 ruby 2.7.8 安裝 cocoapods -
完成后 rvm 可以切換回系統(tǒng) ruby 3.2.2 版本
步驟
注意以下操作竟可能不要用 sudo
執(zhí)行,否則權(quán)限會(huì)亂掉。
第一步:準(zhǔn)備環(huán)境
卸載舊版 ruby 2 和 ruby 版本工具(rvm rbenv asdf frum)
安裝 homebrew
$?/bin/bash?-c?"$(curl?-fsSL?https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew 升級(jí)到最新
$?brew?update?&&?brew?doctor
檢查自己的系統(tǒng)芯片 arm64 x86_64
$?uname?-m
清理錯(cuò)誤的配置,有些包管理工具會(huì)寫下面的配置文件
~/.zshrc
~/.zprofile
~/.zlogin
~/.bash_profile
~/.profile
~/.bashrc
~/.config/fish/config.fish
主要是
.zshrc
.bash_profile
.profile
第二步:安裝 ruby 最新版
安裝 ruby 3.2.2
$?brew?install?ruby
配置 ruby 環(huán)境
$?vi?~/.bash_profile
#?ruyb
#?intel?芯片
if?[?-d?"/usr/local/opt/ruby/bin"?];?then
??export?PATH=/usr/local/opt/ruby/bin:$PATH
??export?LDFLAGS="-L/usr/local/opt/ruby/lib"
??export?CPPFLAGS="-I/usr/local/opt/ruby/include"
??export?PATH=`gem?environment?gemdir`/bin:$PATH
fi
#?m1?silicon?芯片
if?[?-d?"/opt/homebrew/opt/ruby/bin"?];?then
??export?PATH=/opt/homebrew/opt/ruby/bin:$PATH
??export?LDFLAGS="-L/opt/homebrew/opt/ruby/lib"
??export?CPPFLAGS="-I/opt/homebrew/opt/ruby/include"
??export?PATH=`gem?environment?gemdir`/bin:$PATH
fi
查看版本
$?ruby?-v
ruby?3.2.2?(2023-03-30?revision?e51014f9c0)?[x86_64-darwin22]
安裝 cocoapods
$?gem?install?cocoapods
第三步:安裝 rvm 版本管理
安裝 rvm
$?curl?-sSL?https://get.rvm.io?|?bash?-s?stable
rvm 查看可安裝版本
$?rvm?list?known
安裝 ruby 2.7.8
$?rvm?install?ruby-2.7.8?--default
rvm 切換版本
$?rvm?use?ruby-2.7.8
安裝 cocoapods
$?gem?install?cocoapods
rvm 會(huì)自動(dòng)管理 gem 不同 ruby 版本的隔離
使用
切換 flutter 2.10.5
fvm 切到 2.10.5
$?fvm?global?2.10.5
rvm 切到 ruby 2.7.8
$?rvm?use?ruby-2.7.8
cocoapods 拉包
$?cd?ios
$?pod?install
切換 flutter 3.7.12
rvm 還原系統(tǒng)
$?rvm?reset
fvm 切到 3.7.12
$?fvm?global?3.7.12
cocoapods 拉包
$?cd?ios
$?pod?install
小結(jié)
大家可以看到現(xiàn)在可以順利的切換 flutter 2&3 的開(kāi)發(fā)環(huán)境了,如果你有和我相同需求的,可以動(dòng)手試試。
感謝閱讀本文
如果我有什么錯(cuò)?請(qǐng)?jiān)谠u(píng)論中讓我知道。我很樂(lè)意改進(jìn)。
? 貓哥 ducafecat.com
end文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-517932.html
本文由 mdnice 多平臺(tái)發(fā)布文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-517932.html
到了這里,關(guān)于如何在 macOS 上同時(shí)使用 Flutter2 和 Flutter3 進(jìn)行 ios 開(kāi)發(fā)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!