Framework de MediaPipe en iOS

Sigue las instrucciones que se indican a continuación para compilar apps de ejemplo para iOS con MediaPipe Framework. Para obtener más información sobre estas apps de ejemplo, comienza con Hello World en iOS.

Cómo compilar apps de ejemplo para iOS

Requisitos

  1. Instala Mediapipe Framework siguiendo estas instrucciones.

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

    xcode-select --install
    
  3. Instala Bazelisk.

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

    brew install bazelisk
    
  4. 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
    

Configura 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 de inicio.

  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 que aparece a continuación. Se te pedirá que indiques 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 paquete, 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 y debe actualizarse con frecuencia (es válido durante aproximadamente una semana).

  2. Aprovisionamiento personalizado Para ello, se usa un perfil de aprovisionamiento asociado con una cuenta de desarrollador de Apple. Estos perfiles tienen un período de validez más largo y pueden segmentarse para 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ó anteriormente.

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

  3. Selecciona uno de los destinos de la aplicación, por ejemplo, HandTrackingGpuApp.

  4. Selecciona la pestaña "Firma y capacidades".

  5. Marca "Administrar la firma automáticamente" y confirma el diálogo.

  6. Selecciona “Tu nombre (equipo personal)” en el menú de diálogo Equipo.

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

Esto genera perfiles de aprovisionamiento para cada app que seleccionaste. Ahora debes decirle a Bazel que los use. Proporcionamos una secuencia de comandos para facilitar el 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
    

De esta manera, se 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. Crea un symlink 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 el 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, 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, para usar MediaPipe Hands, 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 (Comando Mayúsculas 2).

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

  5. Ahora puedes ejecutar la app en tu dispositivo.