在 macOS 上开始构建 Flutter iOS 应用
软件要求
#要编写和编译适用于 iOS 的 Flutter 代码,请安装以下软件包。
操作系统
#Flutter 支持在 macOS 12 (Monterey) 或更高版本上开发。本指南假定您的 Mac 运行 zsh
作为您的 默认 Shell。
一些 Flutter 组件需要 Rosetta 2 翻译过程。如果你在 Apple Silicon (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 扩展。
- 安装包含 IntelliJ 版 Flutter 插件的 Android Studio。
- 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 Program,请立即注册。
要了解有关会员类型的更多信息,请查看 选择会员类型。
将你的物理 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 设备** 标题下。
在左侧导航面板的 **Targets** 下,选择 **Runner**。
在 **Runner** 设置窗格中,点击 **Signing & Capabilities**。
选择顶部的 **All**。
选择 **Automatically manage signing**(自动管理签名)。
从 **Team**(团队)下拉菜单中选择一个团队。
团队在你的 Apple Developer 账户页面的 **App Store Connect** 部分创建。如果你没有创建团队,可以选择一个*个人团队*。
Team(团队)下拉菜单将此选项显示为 **Your Name (Personal Team)**(你的姓名(个人团队))。
选择团队后,Xcode 会执行以下任务:
- 创建并下载开发证书
- 在你的账户中注册设备,
- 如果需要,创建并下载配置文件
如果 Xcode 中的自动签名失败,请验证项目 **General**(通用)> **Identity**(标识)> **Bundle Identifier**(捆绑标识符)的值是否唯一。
启用你的 Mac 和 iOS 设备的信任
#当你首次连接物理 iOS 设备时,请启用你的 Mac 和 iOS 设备上的开发证书的信任。
当你 将设备连接到 Mac 时,你应该已经启用了你的 Mac 在 iOS 设备上的信任。
为你的 iOS 设备启用开发者证书
#在不同版本的 iOS 中启用证书的方式有所不同。
在 iOS 设备上打开 **Settings**(设置)应用。
点击 **General**(通用)> **Profiles & Device Management**(描述文件与设备管理)。
点击以将你的证书切换为 **Enable**(启用)
在 iOS 设备上打开 **Settings**(设置)应用。
点击 **General**(通用)> **VPN & Device Management**(VPN 与设备管理)。
点击以将你的证书切换为 **Enable**(启用)。
在 iOS 设备上打开 **Settings**(设置)应用。
点击 **General**(通用)> **VPN & Device Management**(VPN 与设备管理)。
在 **Developer App**(开发者应用)标题下,你应该能找到你的证书。
点击你的证书。
点击 **Trust "<certificate>"**(信任“<证书>”)。
当对话框显示时,点击 **Trust**(信任)。
如果显示 **codesign 想要访问密钥...** 对话框
输入你的 macOS 密码。
点击 **Always Allow**(始终允许)。
在 iOS 设备上设置无线调试(可选)
#要使用 Wi-Fi 连接调试你的设备,请按照以下步骤操作。
将你的 iOS 设备连接到与你的 macOS 设备相同的网络。
为你的 iOS 设备设置密码。
打开 **Xcode**。
转到 **Window**(窗口)> **Devices and Simulators**(设备和模拟器)。
你也可以按 Shift + Cmd + 2。
选择你的 iOS 设备。
选择 **Connect via Network**(通过网络连接)。
一旦设备名称旁边出现网络图标,请断开你的 iOS 设备与 Mac 的连接。
如果你在使用 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 上开始开发适用于 iOS 的 Flutter 应用了。
要继续你的学习之旅,请查阅以下指南:
管理 Flutter SDK
#要了解更多关于管理 Flutter SDK 安装的信息,请查阅以下资源: