从 Web 开始向 Flutter 添加 iOS 开发工具

若要将 iOS 作为 macOS 的 Flutter 应用目标,请遵循此过程。

安装 Xcode

  1. 为 Xcode 分配至少 26 GB 的存储空间。考虑分配 42 GB 的存储空间以获得最佳配置。
  2. 安装 Xcode 15 以调试和编译本机 Swift 或 ObjectiveC 代码。

配置 iOS 开发

配置 Xcode

若要开发适用于 iOS 的 Flutter 应用,请安装 Xcode 以编译为本机字节码。

  1. 若要配置命令行工具以使用已安装的 Xcode 版本,请运行以下命令。

     $ sudo sh -c 'xcode-select -s /Applications/Xcode.app/Contents/Developer && xcodebuild -runFirstLaunch'
    

    若要使用最新版本的 Xcode,请使用此路径。如果您需要使用其他版本,请指定该路径。

  2. 签署 Xcode 许可协议。

     $ sudo xcodebuild -license
    

尽量使用 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
    HD 精确 窗口 > 像素精确 Cmd + 3
    适应屏幕 窗口 > 适应屏幕 Cmd + 4

设置目标物理 iOS 设备

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

  • 创建一个 Apple 开发者 帐户。
  • 在 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. 轻点信任“<certificate>“

  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

安装 CocoaPods

如果您的应用依赖于带有原生 iOS 代码的 Flutter 插件,请安装 CocoaPods。此程序捆绑了 Flutter 和 iOS 代码中的各种依赖项。

要安装和设置 CocoaPods,请运行以下命令

  1. 按照 CocoaPods 安装指南安装 cocoapods

    $ sudo gem install cocoapods
    
  2. 启动您首选的文本编辑器。

  3. 在文本编辑器中打开 Zsh 环境变量文件 ~/.zshenv

  4. 复制以下行,并将其粘贴到 ~/.zshenv 文件的末尾。

    export PATH=$HOME/.gem/bin:$PATH
    
  5. 保存您的 ~/.zshenv 文件。

  6. 要应用此更改,请重新启动所有打开的终端会话。

检查您的开发设置

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 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 应用了。