从 Web 开始向 Flutter 添加 iOS 开发工具
若要将 iOS 作为 macOS 的 Flutter 应用目标,请遵循此过程。
安装 Xcode
- 为 Xcode 分配至少 26 GB 的存储空间。考虑分配 42 GB 的存储空间以获得最佳配置。
- 安装 Xcode 15 以调试和编译本机 Swift 或 ObjectiveC 代码。
配置 iOS 开发
配置 Xcode
若要开发适用于 iOS 的 Flutter 应用,请安装 Xcode 以编译为本机字节码。
-
若要配置命令行工具以使用已安装的 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
-
将您的模拟器设置为使用 64 位设备。这涵盖了 iPhone 5s 或更高版本。
-
在 Xcode 中,选择模拟器设备类型。
-
转到 窗口 > 设备和模拟器。
您还可以按 Cmd + Shift + 2。
-
设备和模拟器 对话框打开后,单击 模拟器。
-
从左侧列表中选择一个模拟器,或按+创建新的模拟器。
-
-
从模拟器应用中,依次转到文件 > 打开模拟器 > 选择目标 iOS 设备。
-
要检查模拟器中的设备版本,请打开设置应用 > 通用 > 关于本机。
-
-
模拟的高屏幕密度 iOS 设备可能会溢出您的屏幕。如果在 Mac 上确实如此,请更改模拟器应用中显示的大小。
显示尺寸 菜单命令 键盘快捷键 小 窗口 > 物理尺寸 Cmd + 1 中等 窗口 > 点精确 Cmd + 2 HD 精确 窗口 > 像素精确 Cmd + 3 适应屏幕 窗口 > 适应屏幕 Cmd + 4
设置目标物理 iOS 设备
要将 Flutter 应用部署到物理 iPhone 或 iPad,您需要执行以下操作
- 创建一个 Apple 开发者 帐户。
- 在 Xcode 中设置物理设备部署。
- 创建开发供应配置文件以自签名证书。
- 如果您的应用使用 Flutter 插件,请安装第三方 CocoaPods 依赖项管理器。
创建 Apple ID 和 Apple 开发者帐户
要测试部署到物理 iOS 设备,您需要一个 Apple ID。
要将应用分发到 App Store,您必须注册 Apple 开发者计划。
如果您只需要测试部署应用,请完成第一步,然后转到下一部分。
将物理 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。
-
使用你的 Apple ID 登录 Xcode。
- 转到Xcode > *设置…
- 点击帐户。点击+。选择Apple ID并点击继续。当提示时,输入你的Apple ID和密码。关闭设置对话框。开发和测试支持任何 Apple ID。
-
转到文件 > 打开…
你也可以按 Cmd + O。
-
导航到你的 Flutter 项目目录。
-
在你的项目中打开默认的 Xcode 工作空间:
ios/Runner.xcworkspace
。 -
在运行按钮右侧的下拉菜单中,选择你打算部署到的物理 iOS 设备。
它应该出现在iOS 设备标题下。
-
在目标下的左侧导航面板中,选择Runner。
-
在Runner设置窗格中,点击签名与功能。
-
在顶部选择全部。
-
选择自动管理签名。
-
从团队下拉菜单中选择一个团队。
团队在Apple 开发者帐户页面的App Store Connect部分创建。如果您尚未创建团队,则可以选择个人团队。
团队下拉菜单将该选项显示为您的姓名(个人团队)。
在您选择一个团队后,Xcode 将执行以下任务
- 创建并下载开发证书
- 将您的设备注册到您的帐户中,
- 根据需要创建并下载预置文件如果 Xcode 中的自动签名失败,请验证项目的常规>标识>包标识符值是唯一的。
启用对 Mac 和 iOS 设备的信任
当您首次连接物理 iOS 设备时,请为 Mac 和 iOS 设备上的开发证书启用信任。
当您将设备连接到 Mac时,您应该在 iOS 设备上启用对 Mac 的信任。
为您的 iOS 设备启用开发者证书
启用证书在不同版本的 iOS 中有所不同。
-
在 iOS 设备上打开设置应用。
-
依次轻点通用>描述文件和设备管理。
-
轻点以将您的证书切换为启用
-
在 iOS 设备上打开设置应用。
-
依次轻点通用>VPN 和设备管理。
-
轻点以将您的证书切换为启用。
-
在 iOS 设备上打开设置应用。
-
依次轻点通用>VPN 和设备管理。
-
在开发者应用标题下,您应该找到您的证书。
-
轻点您的证书。
-
轻点信任“<certificate>“。
-
当对话框显示时,轻点信任。
如果出现提示,请在codesign 想要访问密钥…对话框中输入您的 Mac 密码,然后轻点始终允许。
在您的 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
文件的末尾。export PATH=$HOME/.gem/bin:$PATH
-
保存您的
~/.zshenv
文件。 -
要应用此更改,请重新启动所有打开的终端会话。
检查您的开发设置
运行 Flutter doctor
flutter doctor
命令验证 macOS 完整 Flutter 开发环境的所有组件。
-
打开您的终端。
-
要验证您对所有组件的安装,请运行以下命令。
$ flutter doctor
由于您选择为 iOS 开发,因此您不需要所有组件。如果您按照本指南进行操作,您的命令结果应类似于
Running flutter doctor...
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.19.3, on macOS 14.4.0 23E214 darwin-arm64, locale en)
[!] Android toolchain - develop for Android devices
[✓] Chrome - develop for the web
[✓] Xcode - develop for iOS and macOS (Xcode 15)
[!] Android Studio (not installed)
[✓] VS Code (version 1.86)
[✓] Connected device (1 available)
[✓] Network resources
! Doctor found issues in 2 categories.
解决 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 应用了。