FlutterFlutter

2021-01-11 使用fvm 管理多版本flutter

2021-01-11  本文已影响0人  我是小胡胡123

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

上一篇 下一篇

猜你喜欢

热点阅读