Suivez les instructions ci-dessous pour créer des exemples d'applications iOS avec le framework MediaPipe. Pour en savoir plus sur ces exemples d'applications, commencez par Hello World sur iOS.
Créer des exemples d'applications iOS
Conditions préalables
Installez le framework Mediapipe en suivant ces instructions.
Installez Xcode, puis installez les outils de ligne de commande à l'aide de:
xcode-select --install
Installez Bazelisk.
Nous vous recommandons d'utiliser Homebrew pour obtenir les dernières versions.
brew install bazelisk
Installez la bibliothèque Python "six". Cela est nécessaire pour TensorFlow.
pip3 install --user six
Clonez le dépôt MediaPipe.
git clone https://github.com/google/mediapipe.git
Configurer un préfixe d'ID de bundle
Toutes les applications iOS doivent disposer d'un ID de bundle, et vous devez disposer d'un profil de provisionnement qui vous permet d'installer une application avec cet ID sur votre téléphone. Pour éviter les conflits entre les différents utilisateurs de MediaPipe, vous devez configurer un préfixe unique pour les ID de bundle de nos applications de démonstration iOS.
Si vous disposez d'un profil de provisionnement personnalisé, consultez la section Provisionnement personnalisé ci-dessous.
Sinon, exécutez cette commande pour générer un préfixe unique:
python3 mediapipe/examples/ios/link_local_profiles.py
Créer un projet Xcode
Vous pouvez ainsi modifier et déboguer l'une des applications exemples dans Xcode. Il vous permet également d'utiliser le provisionnement automatique (voir la section suivante).
Nous allons utiliser un outil appelé Tulsi pour générer des projets Xcode à partir de configurations de compilation Bazel.
# 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
sera alors installé dans le répertoireApplications
de votre répertoire d'accueil.Ouvrez
mediapipe/Mediapipe.tulsiproj
à l'aide de l'application Tulsi.Sélectionnez la configuration MediaPipe dans l'onglet "Configs", puis appuyez sur le bouton "Generate" (Générer) ci-dessous. Vous êtes invité à indiquer un emplacement où enregistrer le projet Xcode. Une fois le projet généré, il s'ouvre dans Xcode.
Si une erreur s'affiche concernant les ID de bundle, consultez la section précédente.
Configurer le provisionnement
Pour installer des applications sur un appareil iOS, vous avez besoin d'un profil de provisionnement. Deux options s'offrent à vous:
Provisionnement automatique Vous pouvez ainsi créer et installer une application sur votre appareil personnel. Le profil de provisionnement est géré par Xcode et doit être mis à jour fréquemment (il est valide pendant environ une semaine).
Provisionnement personnalisé Il utilise un profil de provisionnement associé à un compte de développeur Apple. Ces profils ont une période de validité plus longue et peuvent cibler plusieurs appareils, mais vous devez disposer d'un compte de développeur payant chez Apple pour en obtenir un.
Provisionnement automatique
Créez un projet Xcode pour MediaPipe, comme indiqué ci-dessus.
Dans le navigateur de projet de la barre latérale de gauche, sélectionnez le projet "Mediapipe".
Sélectionnez l'une des cibles d'application, par exemple HandTrackingGpuApp.
Sélectionnez l'onglet "Signature et fonctionnalités".
Cochez "Gérer automatiquement la signature", puis confirmez la boîte de dialogue.
Sélectionnez Votre nom (équipe personnelle) dans le menu de la boîte de dialogue "Équipe".
Cette configuration doit être effectuée une fois pour chaque application que vous souhaitez installer. Répétez les étapes 3 à 6 si nécessaire.
Des profils de provisionnement sont alors générés pour chaque application que vous avez sélectionnée. Vous devez maintenant indiquer à Bazel de les utiliser. Pour vous faciliter la tâche, nous vous avons fourni un script.
Dans le terminal, accédez au répertoire
mediapipe
dans lequel vous avez cloné le dépôt.Exécutez cette commande :
python3 mediapipe/examples/ios/link_local_profiles.py
Le profil de provisionnement de toutes les applications pour lesquelles vous avez activé le provisionnement automatique dans Xcode est alors recherché et associé.
Provisionnement personnalisé
- Obtenez un profil de provisionnement auprès d'Apple.
Créez un lien symbolique ou copiez votre profil de provisionnement dans
mediapipe/mediapipe/provisioning_profile.mobileprovision
.cd mediapipe ln -s ~/Downloads/MyProvisioningProfile.mobileprovision mediapipe/provisioning_profile.mobileprovision
- Ouvrez
mediapipe/examples/ios/bundle_id.bzl
et remplacezBUNDLE_ID_PREFIX
par un préfixe associé à votre profil de provisionnement.
Créer et exécuter une application avec Xcode
Créez le projet Xcode et assurez-vous d'avoir configuré le provisionnement automatique ou personnalisé.
Vous pouvez désormais sélectionner n'importe quelle démonstration du framework Mediapipe dans le menu de la cible, puis les compiler et les exécuter comme d'habitude.
Créer une application à l'aide de la ligne de commande
Assurez-vous d'avoir configuré le provisionnement automatique ou personnalisé.
Par exemple, avec MediaPipe Hands, exécutez la commande suivante:
bazel build -c opt --config=ios_arm64 mediapipe/examples/ios/handtrackinggpu:HandTrackingGpuApp
Une demande d'autorisation de la part de
codesign
peut s'afficher pour signer l'application.Dans Xcode, ouvrez la fenêtre
Devices and Simulators
(⌘+Maj+2).Assurez-vous que votre appareil est connecté. La liste des applications installées s'affiche. Appuyez sur le bouton + sous la liste, puis sélectionnez le fichier
.ipa
créé par Bazel.Vous pouvez maintenant exécuter l'application sur votre appareil.