Framework de MediaPipe en iOS

Sigue las instrucciones que aparecen a continuación para compilar apps de ejemplo para iOS con MediaPipe de Google Cloud. Para obtener más información sobre estas apps de ejemplo, comienza desde Hola ¡Mundial! en iOS.

Cómo compilar apps de ejemplo para iOS

Requisitos

  1. Instala el marco de trabajo de Mediapipe siguiendo estas instrucciones.

  2. Instala Xcode y, luego, instala la Herramientas de línea de comandos con:

    xcode-select --install
    
  3. Instala Bazelisk.

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

    brew install bazelisk
    
  4. Configura Python 3.7 como la versión predeterminada de Python y, luego, instala el Python “six” biblioteca. 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 permite instalar una app con ese ID en tu teléfono. Para evitar conflictos usuarios de MediaPipe, debes configurar un prefijo único para el los IDs de los paquetes de nuestras apps de demo 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 Xcode

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

  1. Usaremos una herramienta llamada Tulsi para generar Proyectos de Xcode desde 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
    

    Esta acción instalará Tulsi.app en el directorio Applications de tu directorio principal.

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

  3. Selecciona la configuración de MediaPipe en la pestaña de configuraciones y luego presiona la tecla Generate de abajo. Se te pedirá una ubicación para guardar el proyecto Xcode. Cuando 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. Hay 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 se debe se actualizan con frecuencia (válido durante aproximadamente una semana).

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

Aprovisionamiento automático

  1. Crear un proyecto de Xcode para MediaPipe, como se explicó más temprano

  2. En el navegador de proyectos, en la barra lateral izquierda, selecciona "Mediapipe". en un proyecto final.

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

  4. Selecciona la casilla de verificación "Signing & Funciones" .

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

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

  7. Debes realizar esta configuración una vez por 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 hayas seleccionado. Ahora tú tendrás que decirle a Bazel que los use. Proporcionamos un guion para que esto sea más fácil.

  1. En la terminal, al directorio mediapipe en el que clonaste el archivo en un repositorio de confianza.

  2. Ejecuta este comando:

    python3 mediapipe/examples/ios/link_local_profiles.py
    

Así, se buscará y vinculará el perfil de aprovisionamiento para 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. 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 la BUNDLE_ID_PREFIX a un prefijo asociado con tu perfil de aprovisionamiento.

Compila y ejecuta una app con Xcode

  1. Crea el proyecto Xcode y asegúrate de haber configurado los roles aprovisionamiento personalizado.

  2. Ahora puedes seleccionar cualquiera de las demostraciones del marco de trabajo de Mediapipe en el menú de destino. para compilarlas y ejecutarlas con normalidad.

Compila 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 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 (command-shift-2).

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

  5. Ahora puedes ejecutar la app en tu dispositivo.