乐趣区

关于程序员:如何在-macOS-上同时使用-Flutter2-和-Flutter3-进行-ios-开发

如何在 macOS 上同时应用 Flutter2 和 Flutter3 进行 ios 开发

<img src=”https://ducafecat.oss-cn-beijing.aliyuncs.com/podcast/2023/06/0d4fbae8d8cf6e6f2a8eb55841e1c60b.jpeg” style=”width:90%;” />

前言

猫哥主打零碎环境是:

  • macos
  • flutter 3.7.12
  • ruby 3.2.2
  • cocoapods 1.12.1
  • xcode 14.3.1

这套配置运行最新的我的项目没问题,然而最近须要保护 flutter 2.10.5 这种老我的项目,尽管用了 fvm 进行 flutter 版本切换,然而 flutter 2.10.5 用的 ruby 2,我以后是 ruby 3 所以运行 pod install 的时候就报错了。

[!] 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__))
 #
 #  -------------------------------------------

这个谬误很常见,因为 ruby 3 的 api 接口有变动。

明天就来说说我是怎么解决的,我是须要灵便切换旧版、新版的 IOS 开发环境。

原文 https://ducafecat.com/blog/011-flutter-macos-rvm-cocoapods-fvm

参考

https://www.moncefbelyamani.com/how-to-install-xcode-homebrew…

https://www.moncefbelyamani.com/why-you-should-never-use-sudo…

https://www.phusionpassenger.com/library/walkthroughs/deploy/…

https://blog.driftingruby.com/articles/2023/03/04/ruby-with-y…

https://github.com/rvm/rvm

https://rvm.io/rvm/install

https://brew.sh/

https://cocoapods.org/

rvm 知识点

RVM(Ruby Version Manager)是一个用于治理 Ruby 版本的工具,它能够让您在同一台机器上装置和应用多个 Ruby 版本,并且能够为每个 Ruby 版本提供独立的 gem 环境。以下是 RVM 的一些长处:

  1. 多版本治理:应用 RVM,您能够轻松地在同一台机器上装置和治理多个 Ruby 版本。这对于开发人员来说十分有用,因为不同的我的项目可能须要不同的 Ruby 版本或 gem 包。
  2. gem 环境隔离:RVM 能够为每个 Ruby 版本提供独立的 gem 环境,以防止不同版本之间的 gem 包抵触。这意味着您能够在不同的 gem 环境中装置和治理 gem 包,而不会互相烦扰。
  3. 简略易用:RVM 提供了一组简略易用的命令,使您能够轻松地装置、卸载、切换和治理 Ruby 版本、gem 包和 gemset。
  4. 社区反对:RVM 是一个风行的 Ruby 工具,领有沉闷的社区反对和开发团队,能够及时解决问题和更新版本。
  5. 跨平台反对:RVM 反对多种操作系统,包含 macOS、Linux 和 Windows,使您能够在不同的平台上应用雷同的工具和环境。

思路

我尝试了些办法,过程如下:

  • 删除本机各种 ruby cocoapods 工具
  • 装置最新版 ruby 3.2.2
  • 装置最新版 cocoapods
  • 装置 rvm ruby 版本切换工具
  • 通过 rvm 装置 ruby 2.7.8
  • 切换 ruby 2.7.8 装置 cocoapods
  • 实现后 rvm 能够切换回零碎 ruby 3.2.2 版本

步骤

留神以下操作竟可能不要用 sudo 执行,否则权限会乱掉。

第一步:筹备环境

卸载旧版 ruby 2 和 ruby 版本工具(rvm rbenv asdf frum)

装置 homebrew

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

brew 降级到最新

$ brew update && brew doctor

查看本人的零碎芯片 arm64 x86_64

$ uname -m

清理谬误的配置,有些包管理工具会写上面的配置文件

~/.zshrc
~/.zprofile
~/.zlogin
~/.bash_profile
~/.profile
~/.bashrc
~/.config/fish/config.fish

次要是 .zshrc .bash_profile .profile

第二步:装置 ruby 最新版

装置 ruby 3.2.2

$ brew install ruby

配置 ruby 环境

$ 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 会主动治理 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 还原零碎

$ rvm reset

fvm 切到 3.7.12

$ fvm global 3.7.12

cocoapods 拉包

$ cd ios
$ pod install

小结

大家能够看到当初能够顺利的切换 flutter 2&3 的开发环境了,如果你有和我雷同需要的,能够入手试试。

感激浏览本文

如果我有什么错?请在评论中让我晓得。我很乐意改良。


© 猫哥
ducafecat.com

end

本文由 mdnice 多平台公布

退出移动版