MediaPipe Framework を使用して iOS サンプルアプリをビルドする手順は次のとおりです。これらのサンプルアプリの詳細については、iOS の Hello World! をご覧ください。
iOS サンプルアプリの構築
前提条件
こちらのinstructionsに沿って Mediapipe Framework をインストールします。
Xcode をインストールし、次のコマンドを使用してコマンドライン ツールをインストールします。
xcode-select --install
Bazelisk をインストールします。
Homebrew を使用して、最新バージョンを入手することをおすすめします。
brew install bazelisk
Python 3.7 をデフォルトの Python バージョンとして設定し、Python の「six」ライブラリをインストールします。これは TensorFlow で必要です。
pip3 install --user six
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 ビルド構成から 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
これにより、ホーム ディレクトリの
Applications
ディレクトリにTulsi.app
がインストールされます。Tulsi アプリを使用して
mediapipe/Mediapipe.tulsiproj
を開きます。[Configs] タブで MediaPipe 構成ファイルを選択し、下の [Generate] ボタンをクリックします。Xcode プロジェクトの保存場所を尋ねられます。プロジェクトが生成されると、Xcode で開きます。
バンドル ID に関するエラーが発生した場合は、前のセクションをご覧ください。
プロビジョニングの設定
iOS デバイスにアプリケーションをインストールするには、プロビジョニング プロファイルが必要です。次の 2 つのオプションがあります。
自動プロビジョニング。これにより、アプリをビルドして個人のデバイスにインストールできます。プロビジョニング プロファイルは Xcode によって管理されるため、頻繁に更新する必要があります(有効期間は約 1 週間)。
カスタム プロビジョニング。これは、Apple デベロッパー アカウントに関連付けられているプロビジョニング プロファイルを使用します。これらのプロファイルは有効期間が長く、複数のデバイスをターゲットにできますが、取得するには Apple の有料デベロッパー アカウントが必要です。
自動プロビジョニング
前述のように、MediaPipe 用の Xcode プロジェクトを作成します。
左側のサイドバーにあるプロジェクト ナビゲータで、「Mediapipe」プロジェクトを選択します。
アプリ ターゲットのいずれか(HandTrackingGpuApp など)を選択します。
[Signing & Capabilities] タブを選択します。
[署名を自動的に管理] チェックボックスをオンにして、ダイアログを確定します。
[Team] ダイアログ メニューで [Your Name (Personal Team)] を選択します。
この設定は、インストールするアプリごとに 1 回行う必要があります。 必要に応じてステップ 3 ~ 6 を繰り返します。
選択したアプリごとにプロビジョニング プロファイルが生成されます。次に、Bazel にこれらを使用するように指示する必要があります。これを簡単に行うためのスクリプトを用意しています。
ターミナルで、リポジトリのクローンを作成した
mediapipe
ディレクトリに移動します。次のコマンドを実行します。
python3 mediapipe/examples/ios/link_local_profiles.py
これにより、Xcode で自動プロビジョニングを有効にしたすべてのアプリケーションのプロビジョニング プロファイルが検出され、リンクされます。
カスタム プロビジョニング
- Apple からプロビジョニング プロファイルを取得します。
プロビジョニング プロファイルを
mediapipe/mediapipe/provisioning_profile.mobileprovision
にシンボリック リンクまたはコピーします。cd mediapipe ln -s ~/Downloads/MyProvisioningProfile.mobileprovision mediapipe/provisioning_profile.mobileprovision
mediapipe/examples/ios/bundle_id.bzl
を開き、BUNDLE_ID_PREFIX
をプロビジョニング プロファイルに関連付けられた接頭辞に変更します。
Xcode でアプリをビルドして実行する
Xcode プロジェクトを作成し、自動プロビジョニングまたはカスタム プロビジョニングのいずれかが設定されていることを確認します。
これで、ターゲット メニューで Mediapipe Framework のデモを選択し、通常どおりビルドして実行できるようになりました。
コマンドラインを使用してアプリをビルドする
自動プロビジョニングまたはカスタム プロビジョニングのいずれかを設定していることを確認します。
MediaPipe Hands を使用して、たとえば以下を実行します。
bazel build -c opt --config=ios_arm64 mediapipe/examples/ios/handtrackinggpu:HandTrackingGpuApp
アプリに署名するための権限リクエストが
codesign
から表示されることがあります。Xcode で
Devices and Simulators
ウィンドウを開きます(command-shift-2)。デバイスが接続されていることを確認してください。インストール済みのアプリのリストが表示されます。 リストの下にある [+] ボタンを押し、Bazel でビルドされた
.ipa
ファイルを選択します。これで、デバイスでアプリを実行できるようになりました。