在 macOS 上开始构建 Flutter iOS 应用
软件要求
#要编写和编译用于 iOS 的 Flutter 代码,请安装以下软件包。
操作系统
#Flutter 支持在 macOS 12 (Monterey) 或更高版本上开发。本指南假定您的 Mac 运行 zsh
作为您的 默认 Shell。
一些 Flutter 组件需要 Rosetta 2 转换过程。如果你在 Apple 芯片 (ARM) Mac 上进行开发,请安装 Rosetta 2
sudo softwareupdate --install-rosetta --agree-to-license
开发工具
#下载并安装以下软件包。
- Xcode 用于调试和编译原生 Swift 或 Objective-C 代码。Xcode 安装还包括 Git,用于管理 Flutter 版本和你的源代码版本控制。
- CocoaPods 用于在原生应用中编译和启用 Flutter 插件。
上述软件的开发者提供这些产品的支持。要解决安装问题,请查阅该产品的文档。
文本编辑器或集成开发环境
#你可以使用任何文本编辑器或集成开发环境 (IDE) 结合 Flutter 的命令行工具来构建应用。
使用带有 Flutter 扩展或插件的 IDE 可提供代码补全、语法高亮、小部件编辑辅助、调试及其他功能。
流行的选项包括
- 安装 Visual Studio Code 并安装 VS Code 的 Flutter 扩展。
- 安装 Android Studio 并安装 IntelliJ 的 Flutter 插件。
- IntelliJ IDEA,带有适用于 IntelliJ 的 Flutter 插件和适用于 IntelliJ 的 Android 插件。
安装 Flutter SDK
#要安装 Flutter SDK,你可以使用 VS Code Flutter 扩展,或自行下载并安装 Flutter 包。
使用 VS Code 安装 Flutter
#要按照这些说明安装 Flutter,请验证你已安装 Visual Studio Code 和适用于 VS Code 的 Flutter 扩展。
提示 VS Code 安装 Flutter
#启动 VS Code。
要打开命令面板,请按 Command + Shift + P。
在命令面板中,输入
flutter
。选择Flutter: 新建项目。
VS Code 会提示你定位电脑上的 Flutter SDK。
如果你已安装 Flutter SDK,请点击定位 SDK。
如果你未安装 Flutter SDK,请点击下载 SDK。
如果您尚未按照开发工具先决条件中的说明安装 Git,此选项会将您带到 Flutter 安装页面。
当提示哪个 Flutter 模板?时,请忽略。按 Esc。你可以在检查开发环境设置后创建一个测试项目。
下载 Flutter SDK
#当显示选择 Flutter SDK 文件夹对话框时,选择你想要安装 Flutter 的位置。
VS Code 会首先将你定位到用户配置文件目录。请选择其他位置。
考虑使用
~/development/
点击克隆 Flutter。
下载 Flutter 时,VS Code 会显示以下弹窗通知:
Downloading the Flutter SDK. This may take a few minutes.
Initializing the Flutter SDK. This may take a few minutes.
下载和安装需要几分钟。如果你怀疑下载已卡住,请点击取消,然后重新开始安装。
Flutter 安装成功后,VS Code 会显示此弹窗通知:
Do you want to add the Flutter SDK to PATH so it's accessible in external terminals?
点击添加 SDK 到 PATH。
成功时,会显示通知
The Flutter SDK was added to your PATH
VS Code 可能会显示 Google Analytics 通知。
如果你同意,点击确定。
在所有终端窗口中启用
flutter
- 关闭,然后重新打开所有终端窗口。
- 重新启动 VS Code。
下载然后安装 Flutter
#要安装 Flutter,请从其存档下载 Flutter SDK 包,将该包移动到你希望存储的位置,然后解压 SDK。
下载以下安装包以获取 Flutter SDK 的最新稳定版本。
对于其他发布渠道和旧版本,请查阅 SDK 存档。
Flutter SDK 应下载到 macOS 默认下载目录:
~/Downloads/
。创建一个你可以安装 Flutter 的文件夹。
考虑在
~/development/
创建一个目录。将文件解压到你希望存储 Flutter SDK 的目录中。
unzip ~/Downloads/flutter_sdk_v1.0.0.zip \ -d ~/development/
完成后,Flutter SDK 应位于
~/development/flutter
目录中。
将 Flutter 添加到您的 PATH
#要在终端中运行 Flutter 命令,请将 Flutter 添加到 PATH
环境变量中。本指南假设你的 Mac 运行最新的默认 shell,zsh
。Zsh 使用 .zshenv
文件来配置 环境变量。
启动您偏好的文本编辑器。
如果存在,请在您的文本编辑器中打开 Zsh 环境变量文件
~/.zshenv
。如果不存在,请创建~/.zshenv
。复制以下行并将其粘贴到您的
~/.zshenv
文件末尾。bashexport PATH=$HOME/development/flutter/bin:$PATH
保存您的
~/.zshenv
文件。要应用此更改,请重新启动所有打开的终端会话。
如果您使用其他 Shell,请查阅此关于设置 PATH 的教程。
配置 iOS 开发环境
#安装和配置 Xcode
#要开发用于 iOS 的 Flutter 应用,请安装 Xcode 以编译为原生字节码。
打开 App Store 并登录。
搜索
Xcode
。点击安装。
Xcode 安装程序占用 6+ GB 存储空间。下载可能需要一些时间。
要配置命令行工具以使用已安装的 Xcode 版本,请使用以下命令。
sudo sh -c 'xcode-select -s /Applications/Xcode.app/Contents/Developer && xcodebuild -runFirstLaunch'
最新版本的 Xcode 使用此路径。如果你需要使用不同版本,请指定该路径。
签署 Xcode 许可协议。
sudo xcodebuild -license
请尽量使用当前版本的 Xcode。
配置你的目标 iOS 设备
#使用 Xcode,你可以在 iOS 设备或模拟器上运行 Flutter 应用。
配置你的 iOS 模拟器
#要准备在 iOS 模拟器上运行和测试 Flutter 应用,请按照以下步骤操作。
要安装 iOS 模拟器,请运行以下命令。
xcodebuild -downloadPlatform iOS
要启动模拟器,请运行以下命令
open -a Simulator
设置你的目标物理 iOS 设备
#要将 Flutter 应用部署到物理 iPhone 或 iPad,你需要执行以下操作
- 创建 Apple Developer 账户。
- 在 Xcode 中设置物理设备部署。
- 创建开发供应配置文件以自签名证书。
- 如果你的应用使用 Flutter 插件,请安装第三方 CocoaPods 依赖管理器。
创建你的 Apple ID 和 Apple Developer 账户
#你可以暂时跳过此步骤。实际上,直到你准备将应用分发到 App Store 时,才需要 Apple Developer 账户。
如果你只需要测试部署应用,请完成第一步并继续下一部分。
如果你没有 Apple ID,请创建一个。
如果你尚未加入 Apple Developer 计划,请立即加入。
要了解更多关于会员类型的信息,请查看“选择会员资格”。
将你的物理 iOS 设备连接到 Mac
#配置你的物理 iOS 设备以连接到 Xcode。
将你的 iOS 设备连接到 Mac 上的 USB 端口。
首次将 iOS 设备连接到 Mac 时,你的 iOS 设备会显示“信任此电脑?”对话框。
点击“信任”。
出现提示时,解锁你的 iOS 设备。
在 iOS 16 或更高版本上启用开发者模式
#从 iOS 16 开始,Apple 要求你启用开发者模式以防止恶意软件。在部署到运行 iOS 16 或更高版本的设备之前,请启用开发者模式。
轻点“设置”>“隐私与安全性”>“开发者模式”。
轻点以将“开发者模式”切换为“开启”。
轻点“重新启动”。
iOS 设备重启后,解锁你的 iOS 设备。
当“打开开发者模式?”对话框出现时,轻点“打开”。
对话框解释说,开发者模式需要降低 iOS 设备的安全性。
解锁你的 iOS 设备。
启用开发者代码签名证书
#要部署到物理 iOS 设备,你需要与 Mac 和 iOS 设备建立信任。这需要你将已签名的开发者证书加载到 iOS 设备。要在 Xcode 中签名应用,你需要创建开发供应配置文件。
要为你的项目配置供应,请遵循 Xcode 签名流程。
启动 Xcode。
前往 Xcode > 设置...
- 前往 Xcode > 设置...
- 点击“账户”。
- 点击 +。
- 选择 Apple ID 并点击“继续”。
- 出现提示时,输入你的 Apple ID 和 密码。
- 关闭“设置”对话框。
开发和测试支持任何 Apple ID。
前往 文件 > 打开...
你也可以按下 Cmd + O。
导航到你的 Flutter 项目目录。
在你的项目中打开默认的 Xcode 工作区:
ios/Runner.xcworkspace
。在运行按钮右侧的设备下拉菜单中选择你打算部署到的物理 iOS 设备。
它应该出现在“iOS 设备”标题下。
在左侧导航面板的“目标”下,选择 Runner。
在 Runner 设置窗格中,点击“签名与功能”。
在顶部选择“所有”。
选择“自动管理签名”。
从“团队”下拉菜单中选择一个团队。
团队是在你的 Apple Developer Account 页面上的“App Store Connect”部分创建的。如果你尚未创建团队,可以选择一个个人团队。
“团队”下拉菜单会将该选项显示为“你的姓名 (个人团队)”。
选择团队后,Xcode 会执行以下任务
- 创建并下载开发证书
- 将你的设备注册到你的账户,
- 如果需要,创建并下载供应配置文件
如果 Xcode 中的自动签名失败,请验证项目“通用”>“标识”>“Bundle Identifier”的值是否唯一。
启用对 Mac 和 iOS 设备的信任
#首次连接物理 iOS 设备时,请在 iOS 设备上启用对 Mac 和开发证书的信任。
当你将设备连接到 Mac 时,应该已经在 iOS 设备上启用了对 Mac 的信任。
为你的 iOS 设备启用开发者证书
#不同版本的 iOS 中启用证书的方式有所不同。
在 iOS 设备上打开“设置”应用。
轻点“通用”>“描述文件与设备管理”。
轻点以将你的证书切换为“启用”
在 iOS 设备上打开“设置”应用。
轻点“通用”>“VPN 与设备管理”。
轻点以将你的证书切换为“启用”。
在 iOS 设备上打开“设置”应用。
轻点“通用”>“VPN 与设备管理”。
在“开发者应用”标题下,你应该能找到你的证书。
轻点你的证书。
轻点“信任“<证书>””。
当对话框显示时,轻点“信任”。
如果“codesign 想要访问钥匙...”对话框显示
输入你的 macOS 密码。
轻点“始终允许”。
在 iOS 设备上设置无线调试(可选)
#要使用 Wi-Fi 连接调试你的设备,请按照此过程操作。
将你的 iOS 设备连接到与 macOS 设备相同的网络。
为你的 iOS 设备设置密码。
打开 Xcode。
前往 窗口 > 设备与模拟器。
你也可以按下 Shift + Cmd + 2。
选择你的 iOS 设备。
选择“通过网络连接”。
一旦设备名称旁边出现网络图标,就从 Mac 上拔下你的 iOS 设备。
如果你在使用 flutter run
时没有看到你的设备,请延长超时时间。超时时间默认为 10 秒。要延长超时时间,请将该值更改为大于 10 的整数。
flutter run --device-timeout 60
安装 CocoaPods
#如果你的应用依赖于带有原生 iOS 代码的 Flutter 插件,请安装 CocoaPods。此程序捆绑了 Flutter 和 iOS 代码的各种依赖项。
要安装和设置 CocoaPods,请运行以下命令
按照 CocoaPods 安装指南安装
cocoapods
。sudo gem install cocoapods
启动您偏好的文本编辑器。
在你的文本编辑器中打开 Zsh 环境变量文件
~/.zshenv
。复制以下行并将其粘贴到您的
~/.zshenv
文件末尾。bashexport PATH=$HOME/.gem/bin:$PATH
保存您的
~/.zshenv
文件。要应用此更改,请重新启动所有打开的终端会话。
检查开发环境设置
#运行 Flutter doctor
#flutter doctor
命令验证 macOS 完整 Flutter 开发环境的所有组件。
打开您的终端。
要验证所有组件的安装,请运行以下命令。
flutter doctor
由于你选择开发 iOS 应用,因此不需要所有组件。如果你遵循本指南,该命令应该为你设置的工具和平台输出 [✓]
。
Flutter doctor 问题排查
#当 flutter doctor
命令返回错误时,可能与 Flutter、VS Code、Xcode、已连接设备或网络资源有关。
如果 flutter doctor
命令针对这些组件中的任何一个返回错误,请使用详细模式标志再次运行它。
flutter doctor -v
检查输出,看是否需要安装其他软件或执行其他任务。
如果你更改了 Flutter SDK 或其相关组件的配置,请再次运行 flutter doctor
来验证安装。
开始使用 Flutter 在 macOS 上开发 iOS 应用
#恭喜! 在安装所有先决条件和 Flutter SDK 后,你就可以开始在 macOS 上开发 Flutter iOS 应用了。
要继续你的学习之旅,请查阅以下指南:
管理 Flutter SDK
#要了解更多关于管理 Flutter SDK 安装的信息,请查阅以下资源: