MediaPipe Framework no iOS

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

Como criar apps iOS de exemplo

Pré-requisitos

  1. Siga estas instructions para instalar o Mediapipe Framework.

  2. Instale o Xcode e instale as ferramentas de linha de comando usando:

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

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

    brew install bazelisk
    
  4. Defina o Python 3.7 como a versão padrão e 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 iOS precisam ter um ID do 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, é necessário configurar um prefixo exclusivo para os IDs do pacote dos nossos apps de demonstração do 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 usar o provisionamento automático (consulte a seção posterior).

  1. Usaremos uma ferramenta chamada Tulsi para gerar projetos Xcode com base nas 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 instalará Tulsi.app dentro do diretório Applications no seu diretório principal.

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

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

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

Configurar o provisionamento

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

  1. Provisionamento automático. Isso permite criar e instalar um app no 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 ser direcionados a vários dispositivos, mas é necessário ter uma conta de desenvolvedor paga com a Apple para ter uma.

Provisionamento automático

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

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

  3. Selecione um dos aplicativos de destino, por exemplo, HandTrackingGpuApp.

  4. Selecione a guia "Signing & Capabilities".

  5. Marque a opção "Gerenciar a assinatura 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 app que você quer instalar. Repita as etapas 3 a 6 conforme necessário.

Isso gera perfis de provisionamento para cada aplicativo selecionado. Agora você precisa instruir o Bazel a usá-las. Disponibilizamos um script para facilitar esse processo.

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

  2. Execute este comando:

    python3 mediapipe/examples/ios/link_local_profiles.py
    

O perfil de provisionamento será encontrado e vinculado a todos os aplicativos em que você ativou o provisionamento automático no Xcode.

Provisionamento personalizado

  1. Consiga um perfil de provisionamento da Apple.
  1. Vincule sim ou copie seu 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 altere 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 demonstração do Mediapipe Framework no menu de destino, 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
    

    Você pode receber 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. Uma lista dos apps instalados será exibida. Pressione o botão "+" abaixo da lista e selecione o arquivo .ipa criado pelo Bazel.

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