从 Android 开始向 Flutter 添加 iOS devtools

要为 macOS 添加 iOS 作为 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
    高清精确 窗口>像素精确 Cmd + 3
    适合屏幕 窗口>适合屏幕 Cmd + 4

设置您的目标物理 iOS 设备

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

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

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

要将您的应用程序分发到 App Store,您必须注册 Apple Developer Program。

如果您只需要测试部署您的应用程序,请完成第一步并继续进行下一部分。

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

  2. 如果您尚未注册 Apple Developer 计划,请立即注册。

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

将您的物理 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)
[✓] VS Code (version 1.86)
[✓] Connected device (1 available)
[✓] Network resources


! Doctor found issues in  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 应用了。