2021-01-11 使用fvm 管理多版本flutter
- fvm安装
- fvm配置flutter多版本
- fvm切换flutter
- 配置flutter业务工程dart 和flutter sdk path
1、fvm安装
fvm git官网
方法1
https://github.com/befovy/fvm
brew tap befovy/taps
brew install fvm
方法2
https://pub.flutter-io.cn/packages/fvm
pub global activate fvm
2、fvm使用
fvm help
Flutter Version Management: A cli to manage Flutter SDK versions.
Usage:
fvm [command]
Available Commands:
current Show current Flutter SDK info
flutter Proxies Flutter Commands
help Help about any command
import Import installed flutter into fvm
install Installs Flutter SDK Version
list Lists installed Flutter SDK Version
remove Removes Flutter SDK Version
use Which Flutter SDK Version you would like to use
Flags:
-h, --help help for fvm
-v, --verbose Print verbose output
Use "fvm [command] --help" for more information about a command.
修改FVM_HOME环境变量,配置fvm 目录为/opt/fvm
=====我的配置信息 start=====
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer/
export ANDROID_HOME=~/Library/Android/sdk
# export FLUTTER_ROOT=/opt/flutter
export FLUTTER_ROOT=/opt/fvm/current
export FVM_HOME=/opt/fvm
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$HOME/.pub-cache/bin
export PATH=$PATH:$FLUTTER_ROOT/bin/cache/dart-sdk/bin
export PATH=$PATH:$FLUTTER_ROOT/bin
=====我的配置信息 end=====
ll /Users/huchu/.pub-cache/bin
total 16
-rwxr-xr-x 1 huchu staff 201 Jan 6 01:21 magpie_tool
-rwxr-xr-x 1 huchu staff 696 Jan 6 01:20 secure-random
ll /opt/flutter/bin/cache/dart-sdk/bin
total 77200
-rwxr-xr-x 1 huchu staff 33210240 Jan 8 00:37 dart
-rwxr-xr-x 1 huchu staff 1535 Jan 8 00:37 dart2js
-rwxr-xr-x 1 huchu staff 781 Jan 8 00:37 dart2native
-rwxr-xr-x 1 huchu staff 986 Jan 8 00:37 dartanalyzer
-rwxr-xr-x 1 huchu staff 6285600 Jan 8 00:37 dartaotruntime
-rwxr-xr-x 1 huchu staff 1164 Jan 8 00:37 dartdevc
-rwxr-xr-x 1 huchu staff 857 Jan 8 00:37 dartdoc
-rwxr-xr-x 1 huchu staff 915 Jan 8 00:37 dartfmt
-rwxr-xr-x 1 huchu staff 1345 Jan 8 00:37 pub
drwxr-xr-x 3 huchu staff 96 Jan 8 00:37 resources
drwxr-xr-x 16 huchu staff 512 Jan 8 00:37 snapshots
drwxr-xr-x 3 huchu staff 96 Jan 8 00:37 utils
fvm install失败问题!!
fvm install beta -v
fvm: Command 'git' exited with error: chdir /opt/fvm/versions/beta: no such file or directory
/opt/flutter/之前安装的flutter((也就是通过git clone的flutter)) 拷贝到/opt/fvm/versions 目录下面
再次执行
fvm install beta -v
成功了!
fvm: Running git --version
to check if git is available
fvm: beta is a valid flutter channel
fvm: Flutter channel beta is already installed
同样的方法, 拷贝多次flutter,
然后手动切换到对应版本(cd到flutter git仓库下,git checkout 1.17.3 想切换到那个分支或者tag就切换到哪个),
再对拷贝到fvm/versions/下面文件夹重新命名,
比如切换到1.17.3的tag下面, 改名为1.17.3
ls -l /opt/fvm/versions
total 0
drwxr-xr-x@ 29 huchu wheel 928 Jan 8 02:19 1.17.3
drwxr-xr-x@ 28 huchu wheel 896 Jan 8 00:49 beta
ll /opt/fvm
total 0
-rw-r--r-- 1 huchu wheel 0 Jan 8 01:10 config.yaml
lrwxr-xr-x 1 huchu wheel 24 Jan 11 10:52 current -> /opt/fvm/versions/1.17.3
drwxr-xr-x 5 huchu wheel 160 Jan 11 12:01 versions
但是这样copy flutter,dart的cache 比较大
所以直接到官方重新下载好对应的版本
https://flutter.cn/docs/development/tools/sdk/releases?tab=macos
flutter_macos_1.17.3-stable.zip
flutter_macos_1.22.5-stable.zip
flutter_macos_1.25.0-8.3.pre-beta.zip
然后拷贝到/opt/frm/versions
下
分别到fvm use 个版本,到flutter工程下pub get得到了最适合大的大小
du -sh *
2.1G 1.17.3
1.9G 1.22.5
1.3G beta
3、fvm切换flutter版本
current实际上是一个软连接,
随着fvm use 修改,其实就是改这个软连接
1、切换flutter到 beta
fvm use beta
fvm: .DS_Store exists but was not setup correctly. Doing cleanup...
fvm: Add /opt/fvm/current/bin to path to make sure you can use flutter from terminal
export PATH="/opt/fvm/current/bin:$PATH"
fvm: beta is active
flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, 1.25.0-8.1.pre, on Mac OS X 10.15.7 19H2 darwin-x64,
locale zh-Hans-CN)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.1)
[✓] Connected device (1 available)
• No issues found!
2、切换flutter到1.17.3
fvm use 1.17.3
fvm: Add /opt/fvm/current/bin to path to make sure you can use flutter from terminal
export PATH="/opt/fvm/current/bin:$PATH"
fvm: 1.17.3 is active
flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel unknown, v1.17.3, on Mac OS X 10.15.7 19H2, locale zh-Hans-CN)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
[!] Android Studio (version 4.1)
✗ Flutter plugin not installed; this adds Flutter specific functionality.
✗ Dart plugin not installed; this adds Dart specific functionality.
[!] Connected device
! No devices available
! Doctor found issues in 2 categories.
4、配置flutter业务工程
打开android studio
Languages & Frameworks
Dart
Dart SDK Path 修改为/opt/fvm/current/bin/cache/dart-sdk
Flutter
Flutter SDK Path修改为/opt/fvm/current
flutter doctor
Waiting for another flutter command to release the startup lock...
^C
rm /opt/fvm/current/bin/cache/lockfile
flutter doctor