iOS 上的 MediaPipe 框架

请按照以下说明使用 MediaPipe 框架构建 iOS 示例应用。如需详细了解这些示例应用,请从 Hello World! on iOS 开始。

构建 iOS 示例应用

前提条件

  1. 按照以下说明安装 Mediapipe 框架。

  2. 安装 Xcode,然后使用以下命令安装命令行工具:

    xcode-select --install
    
  3. 安装 Bazelisk

    我们建议您使用 Homebrew 获取最新版本。

    brew install bazelisk
    
  4. 安装 Python“six”库。这是 TensorFlow 所需的。

    pip3 install --user six
    
  5. 克隆 MediaPipe 代码库。

    git clone https://github.com/google/mediapipe.git
    

设置软件包 ID 前缀

所有 iOS 应用都必须具有软件包 ID,并且您必须拥有一个配置文件,以便将具有该 ID 的应用安装到手机上。为避免不同 MediaPipe 用户之间发生冲突,您需要为我们的 iOS 演示版应用的软件包 ID 配置唯一的标识符前缀。

如果您有自定义配置文件,请参阅下文中的自定义配置

否则,请运行以下命令以生成唯一前缀:

python3 mediapipe/examples/ios/link_local_profiles.py

创建 Xcode 项目

这样,您就可以在 Xcode 中修改和调试其中一个示例应用。此外,您还可以使用自动配置功能(请参阅后面的部分)。

  1. 我们将使用名为 Tulsi 的工具从 Bazel build 配置生成 Xcode 项目。

    # cd out of the mediapipe directory, then:
    git clone https://github.com/bazelbuild/tulsi.git
    cd tulsi
    # remove Xcode version from Tulsi's .bazelrc (see http://github.com/bazelbuild/tulsi#building-and-installing):
    sed -i .orig '/xcode_version/d' .bazelrc
    # build and run Tulsi:
    sh build_and_run.sh
    

    这会将 Tulsi.app 安装在主目录的 Applications 目录中。

  2. 使用 Tulsi 应用打开 mediapipe/Mediapipe.tulsiproj

  3. 在“配置”标签页中选择 MediaPipe 配置,然后按下下面的“生成”按钮。系统会要求您提供保存 Xcode 项目的位置。项目生成后,系统会在 Xcode 中打开该项目。

    如果您收到有关软件包 ID 的错误,请参阅上一部分

设置配置

如需在 iOS 设备上安装应用,您需要预配配置文件。有两个选项:

  1. 自动配置。这样,您就可以构建应用并将其安装到个人设备上。配置文件由 Xcode 管理,并且必须经常更新(有效期约为一周)。

  2. 自定义预配。此方法使用与 Apple 开发者账号关联的配置文件。这些配置文件的有效期更长,并且可以定位到多部设备,但您需要拥有 Apple 付费开发者账号才能获取此类配置文件。

自动配置

  1. 为 MediaPipe 创建 Xcode 项目,如前面所述

  2. 在左侧边栏的项目导航器中,选择“Mediapipe”项目。

  3. 选择其中一个应用目标,例如 HandTrackingGpuApp。

  4. 选择“签名和功能”标签页。

  5. 选中“自动管理签名”,然后确认对话框。

  6. 在“团队”对话框菜单中,选择“您的姓名(个人团队)”。

  7. 您需要为要安装的每个应用执行此设置一次。根据需要重复第 3-6 步。

这会为您选择的每个应用生成配置文件。现在,您需要告知 Bazel 使用这些文件。我们提供了一个脚本,以便您更轻松地完成此操作。

  1. 在终端中,进入您克隆代码库的 mediapipe 目录。

  2. 运行以下命令:

    python3 mediapipe/examples/ios/link_local_profiles.py
    

此操作会为您在 Xcode 中启用了自动配置的所有应用查找并关联配置文件。

自定义预配

  1. 从 Apple 获取配置文件。
  1. 将配置文件符号链接或复制到 mediapipe/mediapipe/provisioning_profile.mobileprovision

    cd mediapipe
    ln -s ~/Downloads/MyProvisioningProfile.mobileprovision mediapipe/provisioning_profile.mobileprovision
    
  1. 打开 mediapipe/examples/ios/bundle_id.bzl,然后将 BUNDLE_ID_PREFIX 更改为与您的配置文件关联的前缀。

使用 Xcode 构建和运行应用

  1. 创建 Xcode 项目,并确保您已设置自动配置或自定义配置。

  2. 现在,您可以在目标菜单中选择任何 Mediapipe 框架演示,并像往常一样构建和运行它们。

使用命令行构建应用

  1. 确保您已设置自动或自定义预配。

  2. 例如,使用 MediaPipe Hands 时,请运行以下命令:

    bazel build -c opt --config=ios_arm64 mediapipe/examples/ios/handtrackinggpu:HandTrackingGpuApp
    

    您可能会看到 codesign 发送的权限请求,以便对应用进行签名。

  3. 在 Xcode 中,打开 Devices and Simulators 窗口(按住 Command 键并按 Shift 键,然后按 2)。

  4. 确保您的设备已连接。您会看到已安装的应用列表。 按列表下的“+”按钮,然后选择由 Bazel 构建的 .ipa 文件。

  5. 现在,您可以在设备上运行应用了。