在 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文件末尾。bash- export 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文件末尾。bash- export 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 安装的信息,请查阅以下资源: