Framework de MediaPipe en iOS

Sigue las instrucciones que aparecen a continuación a fin de compilar apps de ejemplo para iOS con el framework de MediaPipe. Para obtener más información sobre estas apps de ejemplo, comienza desde Hello World! en iOS.

Cómo compilar apps de ejemplo para iOS

Requisitos

  1. Instala Mediapipe Framework siguiendo estas instructions.

  2. Instala Xcode y, luego, instala las herramientas de línea de comandos con el siguiente comando:

    xcode-select --install
    
  3. Instala Bazelisk.

    Te recomendamos usar Homebrew para obtener las versiones más recientes.

    brew install bazelisk
    
  4. Establece Python 3.7 como la versión predeterminada de Python y, luego, instala la biblioteca "six" de Python. Esto es necesario para TensorFlow.

    pip3 install --user six
    
  5. Clona el repositorio de MediaPipe.

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

Cómo configurar un prefijo de ID de paquete

Todas las apps para iOS deben tener un ID de paquete, y debes tener un perfil de aprovisionamiento que te permita instalar una app con ese ID en tu teléfono. Para evitar conflictos entre diferentes usuarios de MediaPipe, debes configurar un prefijo único para los IDs de paquete de nuestras apps de demostración para iOS.

Si tienes un perfil de aprovisionamiento personalizado, consulta Aprovisionamiento personalizado a continuación.

De lo contrario, ejecuta este comando para generar un prefijo único:

python3 mediapipe/examples/ios/link_local_profiles.py

Crea un proyecto de Xcode

Esto te permite editar y depurar una de las apps de ejemplo en Xcode. También te permite usar el aprovisionamiento automático (consulta la sección más adelante).

  1. Usaremos una herramienta llamada Tulsi para generar proyectos de Xcode a partir de configuraciones de compilación de 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
    

    Esto instalará Tulsi.app dentro del directorio Applications en tu directorio principal.

  2. Abre mediapipe/Mediapipe.tulsiproj con la app de Tulsi.

  3. Selecciona la configuración de MediaPipe en la pestaña Configs y, luego, presiona el botón Generate a continuación. Se te pedirá una ubicación para guardar el proyecto de Xcode. Una vez que se genere el proyecto, se abrirá en Xcode.

    Si recibes un error sobre los IDs de paquetes, consulta la sección anterior.

Configura el aprovisionamiento

Para instalar aplicaciones en un dispositivo iOS, necesitas un perfil de aprovisionamiento. Existen dos opciones:

  1. Aprovisionamiento automático. Esto te permite compilar e instalar una app en tu dispositivo personal. Xcode administra el perfil de aprovisionamiento, que debe actualizarse con frecuencia (válido durante aproximadamente una semana).

  2. Aprovisionamiento personalizado. Usa un perfil de aprovisionamiento asociado a una cuenta de desarrollador de Apple. Estos perfiles tienen un período de validez más largo y pueden orientarse a varios dispositivos, pero necesitas una cuenta de desarrollador pagada con Apple para obtener uno.

Aprovisionamiento automático

  1. Crea un proyecto de Xcode para MediaPipe, como se explicó antes.

  2. En el navegador de proyectos, en la barra lateral izquierda, selecciona el proyecto “Mediapipe”.

  3. Selecciona una de las orientaciones de la aplicación; por ejemplo, HandTrackingGpuApp.

  4. Selecciona la pestaña "Signing & Capabilities".

  5. Marca la opción "Administrar firma automáticamente" y confirma el cuadro de diálogo.

  6. Selecciona "Your Name (Personal Team)" en el menú de diálogo Equipo.

  7. Esta configuración se debe realizar una vez para cada aplicación que desees instalar. Repite los pasos 3 a 6 según sea necesario.

Esto genera perfiles de aprovisionamiento para cada app que seleccionaste. Ahora debes indicarle a Bazel que los use. Proporcionamos una secuencia de comandos para facilitar este proceso.

  1. En la terminal, ve al directorio mediapipe en el que clonaste el repositorio.

  2. Ejecuta este comando:

    python3 mediapipe/examples/ios/link_local_profiles.py
    

Esto buscará y vinculará el perfil de aprovisionamiento de todas las aplicaciones para las que habilitaste el aprovisionamiento automático en Xcode.

Aprovisionamiento personalizado

  1. Obtén un perfil de aprovisionamiento de Apple.
  1. Establece un vínculo simbólico o copia tu perfil de aprovisionamiento en mediapipe/mediapipe/provisioning_profile.mobileprovision.

    cd mediapipe
    ln -s ~/Downloads/MyProvisioningProfile.mobileprovision mediapipe/provisioning_profile.mobileprovision
    
  1. Abre mediapipe/examples/ios/bundle_id.bzl y cambia BUNDLE_ID_PREFIX por un prefijo asociado con tu perfil de aprovisionamiento.

Compila y ejecuta una app con Xcode

  1. Crea el proyecto de Xcode y asegúrate de haber configurado el aprovisionamiento automático o personalizado.

  2. Ahora puedes seleccionar cualquiera de las demostraciones de Mediapipe Framework en el menú de destino, y compilarlas y ejecutarlas como de costumbre.

Cómo compilar una app con la línea de comandos

  1. Asegúrate de haber configurado el aprovisionamiento automático o personalizado.

  2. Por ejemplo, con las manos de MediaPipe, ejecuta lo siguiente:

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

    Es posible que veas una solicitud de permiso de codesign para firmar la app.

  3. En Xcode, abre la ventana Devices and Simulators (command-shift-2).

  4. Asegúrate de que tu dispositivo esté conectado. Verás una lista de las apps instaladas. Presiona el botón "+" en la lista y selecciona el archivo .ipa que compiló Bazel.

  5. Ahora puedes ejecutar la app en tu dispositivo.