Flutter 官方发布记录显示,Flutter 3.47 于 2026 年 8 月 12 日发布。(Flutter 3.47 官方发布记录) 本周建议动作:先在现有电脑上整理课程项目,再用远程 Mac 配置 Xcode、启动 iOS 模拟器完成验收。 Flutter 3.47 远程 Mac iOS 项目的关键边界是:iOS 构建与模拟器验收要在 macOS 和 Xcode 环境中完成;这不代表编写所有 Flutter 代码都必须用 Mac。(Flutter iOS 开发设置文档)

适合刚开始学 Flutter、想把第一个项目跑到 iOS 模拟器上的学生,按步骤搭环境。
只有 Windows 或学校电脑的学习者,也可以用本文判断何时需要补上 macOS。
已经能写代码、但 iOS 构建还没成功的初学者,可以按检查结果定位问题。

最后更新于 2026 年 10 月 3 日;版本发布日期与操作步骤已按 Flutter 官方发布记录、Flutter iOS 开发文档和 Apple 的 Xcode 文档复核。

01

动手前的目标和边界

这次练习的目标是:把一个 Flutter 项目构建到 iOS 模拟器,并确认页面能显示、终端没有构建失败。它不等于发布 App,也不等于完成真机安装、签名或应用商店上架。

需要把工作拆成两类:

  • 可在现有电脑继续的部分:学习 Dart 语法、编写 Flutter 界面、整理图片和项目文件。只要课程工具与项目允许,就可以在 Windows 上做这些工作。
  • 必须进入 macOS 的部分:使用 Xcode 配置 iOS 工具链,构建 iOS 目标,并在 iOS Simulator 中运行验收。Flutter 官方说明,Flutter iOS 开发需要在 macOS 上配置 Xcode。(Flutter 的多平台开发说明)

这也解释了为什么只在 Windows 上安装 Flutter SDK,不能代替 iOS 构建环境:SDK 提供 Flutter 的开发命令和工具,但 iOS 构建还需要相应的 Xcode 工具与模拟器运行组件。

如果学校电脑禁止安装软件、修改环境变量或传输课程文件,应先询问管理员。未经授权不要提权、关闭安全限制或绕过设备管理;可以先在允许使用的设备上完成代码练习,把 iOS 验收安排到经许可的 macOS 环境。

02

远程会话与项目副本

开始安装前,先准备好能回退的项目副本。若课程项目已有版本管理,按课程规定保存已完成的修改;若没有,就把整个项目目录复制到你有权访问的位置。不要只保存 lib 目录,项目配置、资源文件和平台目录都可能影响运行。

连接远程 Mac 后,先确认你实际进入的是 macOS 终端,并检查账号是否有权安装和启动课程需要的工具。不同环境的预装软件、芯片、系统版本、可用存储和访问方式可能不同,不能仅凭“能连上”就假设 Xcode 或模拟器已经准备好。

远程 Mac 的键盘、文件上传和复制粘贴体验,取决于你所用的连接方式。连接前先看清课程允许的文件传输路径;如果学校要求使用特定存储方式,就照规定操作。对于临时学习,可以先阅读 NodeMini 的远程 Mac 方案说明,确认可用方式是否符合课程要求,再开始安装。

03

Flutter SDK 与终端命令

Flutter SDK 可以理解为一套开发工具箱;终端是输入命令的窗口;PATH 则是系统寻找命令的路径列表。将 Flutter 的 bin 目录加入 PATH 后,终端才知道在哪里找到 flutter 命令。

先从 Flutter 官方手动安装文档选择适用于 macOS 的安装方式,并从官方 SDK 发布渠道获取课程要求的版本。课程明确要求 Flutter 3.47 时,不要看到“最新稳定版”就自动替换;如果课程没有锁定补丁版本,应先核对项目或教师给出的版本要求。官方文档提供了选择 SDK 版本的安装路线。

安装完成后,在终端运行:

which flutter
flutter --version
flutter doctor -v

which flutter 用于查看终端实际找到的命令路径;flutter --version 用于确认当前调用的 SDK 版本;flutter doctor -v 用于检查开发工具状态。检查结果会随安装环境变化,以下仅说明应该看到什么类型的信息,不是预设的运行结果:

<Flutter SDK 路径>/bin/flutter
Flutter <课程要求的版本>
[✓] Flutter
[✓] Xcode

如果版本不对,先检查 PATH 中是否把另一份 Flutter 放在前面;如果命令找不到,按官方安装说明核对 SDK 解压位置与 shell 配置。不要为了消除提示随意删除系统目录或覆盖学校管理的环境设置。Flutter 官方命令行参考说明了 flutter --version、flutter doctor、flutter devices 等命令的用途。(Flutter CLI 命令参考)

04

Xcode 与模拟器运行组件

Xcode 不只是图形界面编辑器,它还提供 iOS 项目构建和模拟器相关工具。先按 Flutter 官方 iOS 设置流程安装或启动适用的 Xcode,再确认命令行选择的是这份 Xcode。配置命令行工具、首次启动和许可确认时,只有在账号获准使用管理员权限的情况下才执行需要授权的命令;遇到权限限制,应联系设备管理员或服务支持。

核对当前工具路径和版本:

xcode-select -p
xcodebuild -version

前一条命令用于检查当前选中的开发者目录,后一条用于查看 Xcode 版本。若路径指向不预期的位置,或启动 Xcode 后仍提示安装组件、接受许可,应按学校或远程环境的授权流程处理;没有管理员权限时,停止安装并联系管理员,不要尝试绕过。

接着检查 iOS 模拟器运行时是否可用。Xcode 的模拟器设备和运行时不是一回事:设备模型描述要模拟的设备,运行时则提供该设备启动所需的系统组件。Apple 说明,可在 Xcode 的组件管理区域下载平台支持与模拟器运行时;缺少所需组件时,项目可能无法运行或构建。(Apple 关于下载和安装 Xcode 组件的说明)

先查看已有模拟器:

xcrun simctl list devices available

如果列表没有课程需要的可用设备或运行时,进入 Xcode 的组件管理界面核对可下载项目,等安装完成后再继续。不要把“Xcode 已安装”误当成“iOS 模拟器已经可以启动”。

05

首次运行与问题定位

在项目目录中先确认基础文件存在,再让 Flutter 获取项目依赖。若只是熟悉首次运行流程,也可以创建一个全新的最小项目;Flutter 官方新建应用文档介绍了创建项目和运行应用的基本步骤。(Flutter 创建新应用指南)

flutter create first_ios_practice
cd first_ios_practice
flutter pub get
flutter devices

flutter devices 应列出 Flutter 可识别的目标设备。若没有 iOS 模拟器,先回到 Xcode 检查模拟器运行时和设备启动状态;此时重新创建 Flutter 项目通常不能解决缺失的模拟器目标。

识别到模拟器后,按列表显示的设备标识启动项目:

flutter run -d <设备标识>

如果只有一个可用目标,也可以根据终端提示选择目标。命令完成后观察模拟器页面与终端输出:页面显示,说明这次运行到达了界面验收;终端如果仍有错误,就不能只凭模拟器窗口打开来判断构建成功。

遇到失败时,把问题分成三类,能避免盲目重装:

  • Flutter 代码或依赖问题:终端指出 Dart 分析、依赖解析或项目文件错误时,先检查对应代码、依赖声明和项目配置。
  • Xcode 工具链问题:错误涉及开发者目录、Xcode 许可或构建工具时,回看 xcode-select -p、xcodebuild -version 和 flutter doctor -v。
  • 模拟器目标缺失:flutter devices 没有 iOS 模拟器,或 simctl 没有可用设备时,回到 Xcode 检查平台运行时与模拟器设备。

若诊断信息仍不清楚,保留完整终端报错再查 Flutter 安装故障排查文档;不要只截取最后一行,因为前面的错误通常能指出失败发生在哪个环节。

06

文件保存与验收清单

结束远程会话前,检查项目源文件是否仍在你能访问的位置,并确认尚未保存的编辑器修改已经写入。远程桌面关闭不等于文件自动同步;如果课程文件只在远程主机上,离开前应按允许的方式提交或备份。

  • [ ] 当前终端调用的是课程需要的 Flutter SDK,版本检查结果已记录。
  • [ ] flutter doctor -v 中的 Flutter 和 Xcode 检查结果已查看,仍未解决的提示已记录。
  • [ ] xcode-select -p 与 xcodebuild -version 指向预期的 Xcode 环境。
  • [ ] iOS Simulator 运行时已安装,flutter devices 能识别目标设备。
  • [ ] 项目依赖已获取,flutter run -d <设备标识> 已执行。
  • [ ] 模拟器中能看到课程页面,终端没有未处理的构建错误。
  • [ ] 项目源文件、课程要求的修改和诊断记录已保存到获准的位置。

这份清单验收的是入门项目能否在模拟器运行,不代表真机签名、设备连接或发布流程已经完成。若课程下一步要求真机测试,应另行确认设备授权、开发者配置与连接条件;没有这项课程要求时,不必把真机部署加入本次任务。

07

新手常见问题

没有本地 Mac,就不能学 Flutter 吗?
不是。Dart 和 Flutter 的基础代码练习可以先在现有设备上进行;要完成 iOS 目标构建和模拟器验收,再进入 macOS 与 Xcode 环境。远程 Mac 补的是这段特定的开发环境,不会自动替代课程里其余的编程练习。

第一次练习必须使用真机吗?
不必。本篇目标是 iOS 模拟器验收,先确认页面能构建并运行即可。真机测试会额外涉及设备连接、信任与开发者配置;如果课程没有要求真机,本次可以先不做这一段。

Windows 上的代码要怎样交给远程 Mac?
使用课程允许的版本管理或文件传输方式保存项目源文件,再在远程 Mac 上打开同一项目目录。不要只传构建缓存;到 Mac 后重新检查工具版本、获取项目依赖并选择 iOS 模拟器运行。学校设备有传输限制时,先询问管理员。

为什么已经装了 Xcode,Flutter 还是找不到模拟器?
Xcode 应用、模拟器运行时和具体模拟器设备需要分别核对。先查看 Xcode 组件管理区域,再运行 xcrun simctl list devices available 与 flutter devices;如果运行时尚未下载,先按 Apple 的组件管理说明安装所需内容,完成后再检查设备列表。

Windows 或学校电脑适合继续做代码编辑,但不能单独完成本文的 iOS 构建与模拟器验收;受管理的电脑还可能限制安装权限,而长期反复使用远程环境也需要考虑文件交接和访问方式。若课程只偶尔要求验证 iOS 项目,可先保留现有电脑,把需要 Xcode 的环节安排到远程 Mac;如果要长期高频开发,再比较自购 Mac 与持续使用远程环境的成本和管理需求。需要临时补上这一步时,可以先查看 NodeMini 的 Mac 使用方案,确认访问方式适合课程安排后再决定,不必为了第一次模拟器验收就直接购买设备。