首次在m1上搭建flutter开发环境的时候在终端勾选了以rosetta方式运行,导致环境混乱,同时存在x86-64和arm64的插件,在更新flutter最新版本的时候遇到问题,重新整理开发环境。
flutter环境的关键资源,flutter sdk,xcode,xcode命令行,ruby,cocoapods,ffi
删除之前的环境
卸载cocoapods
查询所有已经安装的cocoapod有关包
gem list
卸载相关包
sudo gem uninstall cocoapods
sudo gem uninstall cocoapods-core
sudo gem uninstall cocoapods-try
sudo gem uninstall cocoapods-trunk
sudo gem uninstall cocoapods-downloader
sudo gem uninstall cocoapods-deintegrate
sudo gem uninstall cocoapods-plugins
sudo gem uninstall cocoapods-search
卸载Hombrew和Ruby
记录Homebrew已经安装的包
brew list
通过Homebrew提供的卸载脚本卸载
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
删除完成之后会提示有一些缓存的目录需要手动删除,比如
sudo rm -rf /usr/local/Homebrew
sudo rm -rf /opt/homebrew
重新安装环境
安装Homebrew
在官网上找到最新的安装脚本
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装完成后会提示设置环境变量,根据提示运行命令
==> Next steps:
- Run these two commands in your terminal to add Homebrew to your PATH:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/your-username/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
- Run brew help to get started
- Further documentation:
https://docs.brew.sh
完成后重新打开终端,运行which brew
应该指向/opt/homebrew/bin/brew,说明安装成功,接下来安装ruby。
安装
rbenv
安装rbenv可以用来管理ruby
brew install openssl libffi zlib rbenv readline ruby-build
添加rbenv环境变量,执行init命令会输出环境变量配置,完成后重新打开终端使其生效
rbenv init
通过rbenv官方提供的脚本验证安装成功
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-doctor | bash
安装最新版本的ruby,或者需要的版本
rbenv install 3.2.2
设置全局ruby默认版本,或者设置当前目录ruby版本
//全局
rbenv global 3.2.2
//当前
rbenv local 3.2.2
最后需要更新gem使其生效
gem update --system
安装cocoapods
安装
gem install cocoapods
或
sudo gem install cocoapods
ffi问题
ffi在1.14.0版本中添加了对 M1 的官方支持,因此尝试更新最新版本。
flutter官方提供的升级方法
sudo gem uninstall ffi && sudo gem install ffi -- --enable-libffi-alloc
卸载ffi
gem uninstall ffi