从 macOS 开始向 Flutter 添加 iOS devtools

要将 iOS 添加为 macOS 的 Flutter 应用程序目标,请按照此过程操作。

此过程假定您在 Flutter 入门路径从 macOS 开始时安装了 Xcode 15。

配置 iOS 开发

配置 Xcode

此部分假定您在为 macOS 桌面开发安装 Flutter 时已安装并配置 Xcode。

尝试使用 Xcode 的当前版本。

配置目标 iOS 设备

使用 Xcode,您可以在 iOS 设备或模拟器上运行 Flutter 应用。

配置您的 iOS 模拟器

要准备在 iOS 模拟器上运行和测试您的 Flutter 应用,请按照此步骤操作。

  1. 要安装 iOS 模拟器,请运行以下命令。

     $ xcodebuild -downloadPlatform iOS
    
  2. 要启动模拟器,请运行以下命令

     $ open -a Simulator
    
  3. 将您的模拟器设置为使用 64 位设备。这涵盖了 iPhone 5s 或更高版本。

    • Xcode中,选择一个模拟器设备类型。

      1. 转到窗口 > 设备和模拟器

        您还可以按 Cmd + Shift + 2

      2. 设备和模拟器对话框打开后,单击模拟器

      3. 从左侧列表中选择一个模拟器或按+创建新的模拟器。

    • 模拟器应用中,转到文件 > 打开模拟器 > 选择您的目标 iOS 设备。

    • 要在模拟器中检查设备版本,请打开设置应用 > 通用 > 关于

  4. 模拟的高屏幕密度 iOS 设备可能会溢出您的屏幕。如果在您的 Mac 上确实如此,请在模拟器应用中更改显示的大小。

    显示大小 菜单命令 键盘快捷键
    窗口 > 物理大小 Cmd + 1
    中等 窗口 > 点精确 Cmd + 2
    高清精确 窗口 > 像素精确 Cmd + 3
    适应屏幕 窗口 > 适应屏幕 Cmd + 4

设置您的目标物理 iOS 设备

要将您的 Flutter 应用部署到物理 iPhone 或 iPad,您需要执行以下操作

  • 创建一个 Apple Developer 帐户。
  • 在 Xcode 中设置物理设备部署。
  • 创建一个开发供应配置文件以自签名证书。
  • 如果你的应用使用 Flutter 插件,请安装第三方 CocoaPods 依赖项管理器。
创建 Apple ID 和 Apple 开发者帐户

要测试部署到物理 iOS 设备,你需要一个 Apple ID。

要将你的应用分发到 App Store,你必须注册 Apple 开发者计划。

如果你只需要测试部署你的应用,请完成第一步并转到下一部分。

  1. 如果你没有 Apple ID,请创建一个。

  2. 如果你尚未注册 Apple 开发者 计划,请立即注册。

    要了解有关会员类型的更多信息,请查看 选择会员资格

将你的物理 iOS 设备连接到你的 Mac

配置你的物理 iOS 设备以连接到 Xcode。

  1. 将你的 iOS 设备连接到 Mac 上的 USB 端口。

  2. 首次将你的 iOS 设备连接到 Mac 时,你的 iOS 设备会显示信任此电脑?对话框。

  3. 单击信任

    Trust Mac

  4. 出现提示时,解锁你的 iOS 设备。

在 iOS 16 或更高版本中启用开发者模式

从 iOS 16 开始,Apple 要求你启用开发者模式以防止恶意软件。在部署到运行 iOS 16 或更高版本的设备之前,请启用开发者模式。

  1. 依次轻点设置 > 隐私与安全性 > 开发者模式

  2. 轻点以将开发者模式切换为开启

  3. 轻点重启

  4. iOS 设备重启后,解锁你的 iOS 设备。

  5. 开启开发者模式?对话框出现时,轻点开启

    该对话框解释说,开发者模式需要降低 iOS 设备的安全性。

  6. 解锁你的 iOS 设备。

启用开发者代码签名证书

要部署到物理 iOS 设备,你需要在你的 Mac 和 iOS 设备之间建立信任。这需要你将已签名的开发者证书加载到你的 iOS 设备上。要在 Xcode 中对应用进行签名,你需要创建一个开发配置描述文件。

按照 Xcode 签名流程来配置你的项目。

  1. 打开 Xcode。

  2. 使用你的 Apple ID 登录 Xcode。

    1. 转到Xcode > *设置…
    2. 单击帐户。. 单击+。. 选择Apple ID 并单击继续。. 出现提示时,输入你的Apple ID密码。. 关闭设置对话框。开发和测试支持任何 Apple ID。
  3. 转到文件 > 打开…

    您还可以按 Cmd + O

  4. 导航到您的 Flutter 项目目录。

  5. 打开项目中的默认 Xcode 工作区:ios/Runner.xcworkspace

  6. 在运行按钮右侧的下拉菜单中选择您打算部署到的物理 iOS 设备。

    它应该显示在iOS 设备标题下。

  7. 目标下的左侧导航面板中,选择Runner

  8. Runner 设置窗格中,单击签名和功能

  9. 在顶部选择全部

  10. 选择自动管理签名

  11. 团队下拉菜单中选择一个团队。

    团队在您的 Apple 开发者帐户 页面的App Store Connect 部分中创建。如果您尚未创建团队,则可以选择个人团队

    团队下拉菜单将该选项显示为您的姓名(个人团队)

    Xcode account add

    在您选择一个团队后,Xcode 将执行以下任务

    1. 创建并下载开发证书
    2. 将您的设备注册到您的帐户,
    3. 在需要时创建并下载配置文件如果 Xcode 中的自动签名失败,请验证项目的常规 > 身份 > 包标识符值是唯一的。

Check the app's Bundle ID

启用对 Mac 和 iOS 设备的信任

当您首次连接物理 iOS 设备时,请为您的 Mac 和 iOS 设备上的开发证书启用信任。

当您 将设备连接到 Mac 时,您应该在 iOS 设备上启用对 Mac 的信任。

为您的 iOS 设备启用开发者证书

启用证书因 iOS 的不同版本而异。

  1. 在 iOS 设备上打开设置应用。

  2. 点击通用 > 描述文件和设备管理

  3. 点击将您的证书切换为启用

  1. 在 iOS 设备上打开设置应用。

  2. 点击通用 > VPN 和设备管理

  3. 点击将您的证书切换为启用

  1. 在 iOS 设备上打开设置应用。

  2. 点击通用 > VPN 和设备管理

  3. 开发者应用标题下,你应该找到你的证书。

  4. 轻触你的证书。

  5. 轻触信任“<证书>“

  6. 当对话框显示时,轻触信任

如果出现提示,在codesign 想要访问密钥…对话框中输入你的 Mac 密码,然后轻触始终允许

在你的 iOS 设备上设置无线调试(可选)

若要使用 Wi-Fi 连接调试你的设备,请遵循此过程。

  1. 将你的 iOS 设备连接到与你的 macOS 设备相同的网络。

  2. 为你的 iOS 设备设置密码。

  3. 打开Xcode

  4. 转到窗口 > 设备和模拟器

    你还可以按 Shift + Cmd + 2

  5. 选择你的 iOS 设备。

  6. 选择通过网络连接

  7. 一旦设备名称旁边出现网络图标,即可从 Mac 上拔下你的 iOS 设备。

如果你在使用 flutter run 时未在列表中看到你的设备,请延长超时时间。超时时间默认为 10 秒。若要延长超时时间,请将值更改为大于 10 的整数。

$ flutter run --device-timeout 60

检查你的开发设置

help 帮助

运行 Flutter doctor

flutter doctor 命令验证 macOS 的完整 Flutter 开发环境的所有组件。

  1. 打开你的终端。

  2. 若要验证你对所有组件的安装,请运行以下命令。

    $ 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 3 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 应用。