Mac + Flutter + VSCode

46 阅读1分钟

电脑配置:MacOS15.4.1, Intel Core i7(非M1/M2)

前置条件:VSCode已下载, HomeBrew下载工具已安装

配置Flutter环境

在终端中使用Homebrew下载Flutter

brew install --cask flutter

然后在.zshrc文件新增Flutter路径

# Flutter 配置
export FLUTTER=~/flutter
export PATH=$FLUTTER/bin

输入echo $FLUTTERwhich flutter验证路径是否一致:

echo $FLUTTER

/Users/jm/flutter
which flutter

/Users/jm/flutter/bin/flutter

像上面两个指令输出的路径一致就证明Flutter环境路径配置好了。

接下来使用虚拟机(Simulator)运行程序

  • 使用VSCode打开项目->切换到正确的分支(在左下角切换分支)
  • 切换到项目支持的flutter版本,如我的项目是基于Flutter 3.19.1开发的,使用以下指令切换:
git checkout 3.19.1
  • 更新项目flutter依赖配置:先cd到项目根目录(根目录有pubspec.yaml文件),执行以下指令:
flutter pub get
  • 更新iOS依赖配置:先cd到项目中的example/.ios文件夹内(该文件夹内有Podfile文件),执行以下指令:
pod update
  • 运行项目:右下角选择Simulator虚拟机,然后cd到项目中的example文件夹(example/lib/main.dart是程序的入口),执行以下指令运行项目:
flutter run

讲道理,此时是可以正常运行的,如果有其他问题,另行解决....

【配置ios环境】

  1. 重新安装 Pods:在 ios 目录下运行。

    bash

    pod install
    

【配置安卓环境】

1.使用homebrew安装java环境

注意:M1/M2与Inter芯片的系统架构不同,安装方式也不同,本文以Inter芯片的环境进行安装;

Temurin 已经被Homebrew官方直接收录,所以可以直接使用homebrew进行安装,不过需要注意mac 先使用指令brew search temurin搜索下有哪些版本的temurin

brew search temurin

# 输出结果如下:
==> Formulae
maturin

==> Casks
temurin          temurin@11       temurin@17       temurin@19       temurin@20       temurin@21       temurin@25       temurin@8

如果看到temurin@11 temurin@17这样的字眼,就可以进行下一步。 如果没有看到,报错信息如下:

brew search temurin

Error: Cask 'temurin@11' is unavailable: No Cask with this name exists.

则说明需要升级homebrew了,使用brew update指令进行升级,升级成功后再次执行brew search temurin搜索下有哪些版本的temurin。

接着,以安装temurin@17为例,执行brew install temurin@17指令安装temurin:

brew install temurin@17

==> Downloading https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.17%2B10/OpenJDK17U-jdk_x64_mac_hotspot_17.0.17_1
==> Downloading from https://release-assets.githubusercontent.com/github-production-release-asset/372925194/cfa8679b-08fd-4e44-a6c3-ef3fbc
################################################################################################################################### 100.0%
==> Installing Cask temurin@17
==> Running installer for temurin@17 with `sudo` (which may request your password)...
Password:
Sorry, try again.
Password:
Sorry, try again.
Password:
installer: Package name is Eclipse Temurin
installer: Installing at base path /
installer: The install was successful.
🍺  temurin@17 was successfully installed!

从信息中可以看出temurin@17已成功安装,接着执行java -version进行验证:

java -version

openjdk version "17.0.17" 2025-10-21
OpenJDK Runtime Environment Temurin-17.0.17+10 (build 17.0.17+10)
OpenJDK 64-Bit Server VM Temurin-17.0.17+10 (build 17.0.17+10, mixed mode)

能输出版本号就代表java环境已安装成功。

2.安装 adb + platform-tools(需要翻墙)

brew install android-platform-tools

成功后需要配置环境变量(必须)

编辑 ~/.zshrc

export ANDROID_HOME=$HOME/Library/Android/sdk
export ANDROID_SDK_ROOT=$ANDROID_HOME

export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin

3.使用 sdkmanager 安装 Android SDK 组件

sdkmanager --licenses

一路y,然后再执行指令:

sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0"

android-33 / 34 均可,Flutter 都支持

成功后,我们进行验证,再次输入flutter doctor指令查看整个环境配置,如果全部显示✅就表示配置好了:

flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[!] Flutter (Channel [user-branch], 3.19.1, on macOS 15.4.1 24E263 darwin-x64, locale zh-Hans-CN)
    ! Flutter version 3.19.1 on channel [user-branch] at /Users/jiameng/flutter
      Currently on an unknown channel. Run `flutter channel` to switch to an official channel.
      If that doesn't fix the issue, reinstall Flutter by following instructions at
      https://flutter.dev/docs/get-started/install.
    ! Upstream repository unknown source is not a standard remote.
      Set environment variable "FLUTTER_GIT_URL" to unknown source to dismiss this error.
[✗] Android toolchain - develop for Android devices
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
[✓] Xcode - develop for iOS and macOS (Xcode 16.2)
[✓] Chrome - develop for the web
[!] Android Studio (not installed)
[✓] VS Code (version 1.104.1)
[!] Proxy Configuration
    ! NO_PROXY is not set
[✓] Connected device (3 available)
    ! Error: Browsing on the local area network for iPhoneXR. Ensure the device is unlocked and
      attached with a cable or associated with the same local area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)
    ! Error: Browsing on the local area network for iPhoneSE. Ensure the device is unlocked and
      attached with a cable or associated with the same local area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)
    ! Error: Browsing on the local area network for 哈哈哈哈哈哈哈哈. Ensure the device is unlocked and
      attached with a cable or associated with the same local area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)
[✓] Network resources

! Doctor found issues in 4 categories.

很显然,我的安卓环境没配置好:[✗] Android toolchain - develop for Android devices,具体原因也提示了是✗ cmdline-tools component is missing, 如果你是按照我上面的步骤安装的话,那其实并不是缺失cmdline-tools,因为你刚使用homebrew安装过,真正的问题也正是使用homebrew安装导致目录结构(安装路径)不能被flutter正确识别:

Flutter 真正期望的目录结构(非常关键)

Flutter 只认这一套 👇

$ANDROID_HOME
└── cmdline-tools
    └── latest
        ├── bin/sdkmanager
        ├── bin/avdmanager
        └── lib/...

而你现在的是:

/usr/local/share/android-commandlinetools/ # homebrew默认的安装路径
└── cmdline-tools
    ├── latest
        ├── bin/sdkmanager
        ├── bin/avdmanager
        └── lib/...

解决方式有两种,一种是直接下载Android Studio,再利用Android Studio下载cmdline-tools及其他工具;另一种是不想要下载Android Studio。

我当然是不想下载Android Studio(想下载的话一开始就不需要用homebrew配置安卓环境),所以接下来的目标就是把 Homebrew 安装的 cmdline-tools 同步到 $ANDROID_HOME

① 确认 ANDROID_HOME(先对齐)

使用echo $ANDROID_HOME指令查看AndroidSDK路径,其中$ANDROID_HOME是刚才写入.zshrc文件的变量:

echo $ANDROID_HOME

/Users/jiameng/Library/Android/sdk

② 创建 Flutter 需要的目录结构

mkdir -p $ANDROID_HOME/cmdline-tools

③ 把“正确的一份”拷贝过去(关键步骤)

将homebrew安装的cmdline-tools移到$ANDROID_HOME目录下:

cp -R /usr/local/share/android-commandlinetools/cmdline-tools/latest \
      $ANDROID_HOME/cmdline-tools/latest

这一步是核心修复动作

④ 验证结构是否正确

ls $ANDROID_HOME/cmdline-tools/latest/bin

你应该能看到:

sdkmanager
avdmanager

如果能看到,说明 100% 对了

最后!再次输入flutter doctor指令查看整个环境配置。

⚠️⚠️⚠️ 如果成功了就不用往下看了,如果依旧提示[✗] Android toolchain - develop for Android devices,那大概率还是其他安卓包的路径问题,直接重新安装,并且指定安装路径统一到$ANDROID_HOME目录下

sdkmanager --sdk_root="$ANDROID_HOME" "platform-tools" "platforms;android-34" "build-tools;34.0.0"

再次输入flutter doctor指令查看整个环境配置,要是还没对,我也没办法了!!!!