MediaPipe Framework no iOS

Siga as instruções abaixo para criar apps de exemplo para iOS com o MediaPipe Framework. Para saber mais sobre esses apps de exemplo, comece com Hello World! no iOS.

Como criar apps de exemplo para iOS

Pré-requisito

  1. Instale o Mediapipe Framework seguindo estas instruções.

  2. Instale o Xcode e, em seguida, as ferramentas de linha de comando usando:

    xcode-select --install
    
  3. Instale o Bazelisk.

    Recomendamos usar o Homebrew para instalar as versões mais recentes.

    brew install bazelisk
    
  4. Instale a biblioteca "six" do Python. Isso é necessário para o TensorFlow.

    pip3 install --user six
    
  5. Clone o repositório MediaPipe.

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

Configurar um prefixo de ID do pacote

Todos os apps para iOS precisam ter um ID de pacote, e você precisa ter um perfil de provisionamento que permita instalar um app com esse ID no smartphone. Para evitar conflitos entre diferentes usuários do MediaPipe, configure um prefixo exclusivo para os IDs de pacote dos nossos apps de demonstração para iOS.

Se você tiver um perfil de provisionamento personalizado, consulte Provisionamento personalizado abaixo.

Caso contrário, execute este comando para gerar um prefixo exclusivo:

python3 mediapipe/examples/ios/link_local_profiles.py

Criar um projeto do Xcode

Isso permite que você edite e depure um dos apps de exemplo no Xcode. Ele também permite o uso do provisionamento automático (consulte a seção mais adiante).

  1. Usaremos uma ferramenta chamada Tulsi para gerar projetos do Xcode a partir de configurações de build do 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
    

    Isso vai instalar Tulsi.app no diretório Applications no seu diretório inicial.

  2. Abra o mediapipe/Mediapipe.tulsiproj usando o app Tulsi.

  3. Selecione a configuração do MediaPipe na guia "Configs" e pressione o botão "Generate" abaixo. Você vai precisar informar um local para salvar o projeto do Xcode. Depois que o projeto for gerado, ele será aberto no Xcode.

    Se você receber um erro sobre os IDs de pacote, consulte a seção anterior.

Configurar o provisionamento

Para instalar aplicativos em um dispositivo iOS, você precisa de um perfil de provisionamento. Há duas opções:

  1. Provisionamento automático. Isso permite que você crie e instale um app no seu dispositivo pessoal. O perfil de provisionamento é gerenciado pelo Xcode e precisa ser atualizado com frequência (ele é válido por cerca de uma semana).

  2. Provisionamento personalizado. Isso usa um perfil de provisionamento associado a uma conta de desenvolvedor da Apple. Esses perfis têm um período de validade mais longo e podem segmentar vários dispositivos, mas você precisa de uma conta de desenvolvedor paga da Apple para conseguir um.

Provisionamento automático

  1. Crie um projeto do Xcode para o MediaPipe, conforme discutido anteriormente.

  2. No navegador de projetos na barra lateral esquerda, selecione o projeto "Mediapipe".

  3. Selecione um dos destinos do aplicativo, por exemplo, HandTrackingGpuApp.

  4. Selecione a guia "Assinatura e recursos".

  5. Marque "Gerenciar assinaturas automaticamente" e confirme a caixa de diálogo.

  6. Selecione Seu nome (equipe pessoal) no menu da caixa de diálogo "Equipe".

  7. Essa configuração precisa ser feita uma vez para cada aplicativo que você quer instalar. Repita as etapas 3 a 6 conforme necessário.

Isso gera perfis de provisionamento para cada app selecionado. Agora você precisa informar ao Bazel para usá-los. Criamos um script para facilitar esse processo.

  1. No terminal, acesse o diretório mediapipe em que você clonou o repositório.

  2. Execute este comando:

    python3 mediapipe/examples/ios/link_local_profiles.py
    

Isso vai encontrar e vincular o perfil de provisionamento para todos os aplicativos para os quais você ativou o provisionamento automático no Xcode.

Provisionamento personalizado

  1. Receba um perfil de provisionamento da Apple.
  1. Crie um link simbólico ou copie o perfil de provisionamento para mediapipe/mediapipe/provisioning_profile.mobileprovision.

    cd mediapipe
    ln -s ~/Downloads/MyProvisioningProfile.mobileprovision mediapipe/provisioning_profile.mobileprovision
    
  1. Abra mediapipe/examples/ios/bundle_id.bzl e mude o BUNDLE_ID_PREFIX para um prefixo associado ao seu perfil de provisionamento.

Criar e executar um app usando o Xcode

  1. Crie o projeto do Xcode e verifique se você configurou o provisionamento automático ou personalizado.

  2. Agora você pode selecionar qualquer uma das demonstrações do Mediapipe Framework no menu de destino e criar e executar normalmente.

Criar um app usando a linha de comando

  1. Verifique se você configurou o provisionamento automático ou personalizado.

  2. Usando o MediaPipe Hands, por exemplo, execute:

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

    Talvez você receba uma solicitação de permissão de codesign para assinar o app.

  3. No Xcode, abra a janela Devices and Simulators (command-shift-2).

  4. Confira se o dispositivo está conectado. Você vai encontrar uma lista de apps instalados. Pressione o botão "+" na lista e selecione o arquivo .ipa criado pelo Bazel.

  5. Agora você pode executar o app no seu dispositivo.