Framework MediaPipe su iOS

Segui le istruzioni riportate di seguito per creare app di esempio per iOS con il MediaPipe Framework. Per scoprire di più su queste app di esempio, inizia da Ciao mondo! su iOS.

Creazione di app di esempio per iOS

Prerequisito

  1. Installa Mediapipe Framework seguendo queste istruzioni.

  2. Installa Xcode, quindi installa gli strumenti a riga di comando utilizzando:

    xcode-select --install
    
  3. Installa Bazelisk.

    Ti consigliamo di utilizzare Homebrew per ottenere le versioni più recenti.

    brew install bazelisk
    
  4. Installa la libreria Python "six". Questo è necessario per TensorFlow.

    pip3 install --user six
    
  5. Clona il repository MediaPipe.

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

Configurare un prefisso ID bundle

Tutte le app per iOS devono avere un ID pacchetto e devi disporre di un profilo di provisioning che ti consenta di installare un'app con questo ID sul telefono. Per evitare conflitti tra diversi utenti MediaPipe, devi configurare un prefisso univoco per gli ID bundle delle nostre app demo per iOS.

Se hai un profilo di provisioning personalizzato, consulta Provisioning personalizzato di seguito.

In caso contrario, esegui questo comando per generare un prefisso univoco:

python3 mediapipe/examples/ios/link_local_profiles.py

Creare un progetto Xcode

In questo modo puoi modificare e eseguire il debug di una delle app di esempio in Xcode. Inoltre, consente di utilizzare il provisioning automatico (vedi la sezione successiva).

  1. Utilizzeremo uno strumento chiamato Tulsi per generare progetti Xcode dalle configurazioni di build di 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
    

    In questo modo, Tulsi.app verrà installato nella directory Applications della tua home directory.

  2. Apri mediapipe/Mediapipe.tulsiproj utilizzando l'app Tulsi.

  3. Seleziona la configurazione MediaPipe nella scheda Configurazioni, quindi premi il pulsante Genera di seguito. Ti verrà chiesto un percorso in cui salvare il progetto Xcode. Una volta generato, il progetto verrà aperto in Xcode.

    Se viene visualizzato un messaggio di errore relativo agli ID bundle, consulta la sezione precedente.

Configurare il provisioning

Per installare applicazioni su un dispositivo iOS, è necessario un profilo di provisioning. Sono disponibili due opzioni:

  1. Provisioning automatico. In questo modo puoi creare e installare un'app sul tuo dispositivo personale. Il profilo di provisioning è gestito da Xcode e deve essere aggiornato spesso (è valido per circa una settimana).

  2. Provisioning personalizzato. Viene utilizzato un profilo di provisioning associato a un account sviluppatore Apple. Questi profili hanno un periodo di validità più lungo e possono avere come target più dispositivi, ma per ottenerne uno devi avere un account sviluppatore a pagamento con Apple.

Provisioning automatico

  1. Crea un progetto Xcode per MediaPipe, come discusso in precedenza

  2. Nel riquadro di navigazione del progetto nella barra laterale a sinistra, seleziona il progetto "Mediapipe".

  3. Seleziona uno dei target di applicazione, ad esempio HandTrackingGpuApp.

  4. Seleziona la scheda "Firma e funzionalità".

  5. Seleziona "Gestisci automaticamente la firma" e conferma la finestra di dialogo.

  6. Seleziona "Il tuo nome (team personale)" nel menu della finestra di dialogo Team.

  7. Questa configurazione deve essere eseguita una volta per ogni applicazione che vuoi installare. Ripeti i passaggi da 3 a 6 in base alle necessità.

Verranno generati profili di provisioning per ogni app selezionata. Ora devi dire a Bazel di utilizzarli. Abbiamo fornito uno script per semplificare la procedura.

  1. Nel terminale, alla directory mediapipe in cui hai clonato il repository.

  2. Esegui questo comando:

    python3 mediapipe/examples/ios/link_local_profiles.py
    

Verrà trovato e collegato il profilo di provisioning per tutte le applicazioni per le quali hai attivato il provisioning automatico in Xcode.

Provisioning personalizzato

  1. Ottieni un profilo di provisioning da Apple.
  1. Crea un link simbolico o copia il profilo di provisioning in mediapipe/mediapipe/provisioning_profile.mobileprovision.

    cd mediapipe
    ln -s ~/Downloads/MyProvisioningProfile.mobileprovision mediapipe/provisioning_profile.mobileprovision
    
  1. Apri mediapipe/examples/ios/bundle_id.bzl e modifica BUNDLE_ID_PREFIX con un prefisso associato al tuo profilo di provisioning.

Crea ed esegui un'app utilizzando Xcode

  1. Crea il progetto Xcode e assicurati di aver configurato il provisioning automatico o personalizzato.

  2. Ora puoi selezionare una delle demo del framework Mediapipe nel menu di destinazione, e compilarle ed eseguirle come di consueto.

Creare un'app utilizzando la riga di comando

  1. Assicurati di aver configurato il provisioning automatico o personalizzato.

  2. Ad esempio, utilizzando MediaPipe Hands, esegui:

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

    Potresti visualizzare una richiesta di autorizzazione da parte di codesign per firmare l'app.

  3. In Xcode, apri la finestra Devices and Simulators (Comando-Maiusc-2).

  4. Assicurati che il dispositivo sia connesso. Vedrai un elenco delle app installate. Premi il pulsante "+" sotto l'elenco e seleziona il file .ipa creato da Bazel.

  5. Ora puoi eseguire l'app sul tuo dispositivo.