Setting up MediaPipe for iOS¶
Install Xcode and the Command Line Tools.
Follow Apple’s instructions to obtain the required development certificates and provisioning profiles for your iOS device. Install the Command Line Tools by
Install Bazel 1.1.0.
We recommend using Homebrew:
$ brew install https://raw.githubusercontent.com/bazelbuild/homebrew-tap/f8a0fa981bcb1784a0d0823e14867b844e94fb3d/Formula/bazel.rb
Set Python 3.7 as the default Python version and install the Python “six” library.
To make Mediapipe work with TensorFlow, please set Python 3.7 as the default Python version and install the Python “six” library.
pip3 install --user six
Clone the MediaPipe repository.
git clone https://github.com/google/mediapipe.git
Symlink or copy your provisioning profile to
cd mediapipe ln -s ~/Downloads/MyProvisioningProfile.mobileprovision mediapipe/provisioning_profile.mobileprovision
Tip: You can use this command to see the provisioning profiles you have
previously downloaded using Xcode:
open ~/Library/MobileDevice/"Provisioning Profiles".
If there are none, generate and download a profile on Apple’s developer site.
Creating an Xcode project¶
Note: This workflow requires a separate tool in addition to Bazel. If it fails to work for any reason, you can always use the command-line build instructions in the next section.
We will use a tool called Tulsi for generating Xcode projects from Bazel build configurations.
# cd out of the mediapipe directory, then: git clone https://github.com/bazelbuild/tulsi.git cd tulsi # Apply the fix for Xcode 10.3 compatibility: git fetch origin pull/99/head:xcodefix git checkout xcodefix # Now we can build Tulsi. sh build_and_run.sh
This will install Tulsi.app inside the Applications directory inside your home directory.
mediapipe/Mediapipe.tulsiprojusing the Tulsi app.
Important: If Tulsi displays an error saying “Bazel could not be found”, press the “Bazel…” button in the Packages tab and select the
bazelexecutable in your homebrew
Select the MediaPipe config in the Configs tab, then press the Generate button below. You will be asked for a location to save the Xcode project. Once the project is generated, it will be opened in Xcode.
You can now select any of the MediaPipe demos in the target menu, and build and run them as normal.
Note: When you ask Xcode to run an app, by default it will use the Debug configuration. Some of our demos are computationally heavy; you may want to use the Release configuration for better performance.
Tip: To switch build configuration in Xcode, click on the target menu, choose “Edit Scheme…”, select the Run action, and switch the Build Configuration from Debug to Release. Note that this is set independently for each target.
Building an iOS app from the command line¶
Build one of the example apps for iOS. We will be using the Face Detection GPU App example
cd mediapipe bazel build --config=ios_arm64 mediapipe/examples/ios/facedetectiongpu:FaceDetectionGpuApp
You may see a permission request from
codesignin order to sign the app.
In Xcode, open the
Devices and Simulatorswindow (command-shift-2).
Make sure your device is connected. You will see a list of installed apps. Press the “+” button under the list, and select the
.ipafile built by Bazel.
You can now run the app on your device.