Framework MediaPipe su iOS

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

Creazione di app di esempio per iOS

Prerequisito

  1. Installa Mediapipe Framework seguendo queste instructions.

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

    xcode-select --install
    
  3. Installa Bazelisk.

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

    brew install bazelisk
    
  4. Imposta Python 3.7 come versione Python predefinita e installa la libreria Python "sei". Questa operazione è necessaria per TensorFlow.

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

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

Configurare un prefisso di ID bundle

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

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

Altrimenti, esegui questo comando per generare un prefisso univoco:

python3 mediapipe/examples/ios/link_local_profiles.py

Crea un progetto Xcode

In questo modo puoi modificare ed eseguire il debug di una delle app di esempio in Xcode. Consente inoltre di utilizzare il provisioning automatico (vedi la sezione più avanti).

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

    Questa operazione installerà Tulsi.app all'interno della directory Applications nella directory home.

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

  3. Seleziona la configurazione di MediaPipe nella scheda Configurazioni, quindi premi il pulsante Genera in basso. Ti verrà richiesta una posizione in cui salvare il progetto Xcode. Una volta generato, il progetto verrà aperto in Xcode.

    Se viene visualizzato un errore relativo agli ID pacchetto, consulta la sezione precedente.

Configurare il provisioning

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

  1. Provisioning automatico. Questo ti consente di 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 hai bisogno di un account sviluppatore a pagamento di Apple per ottenerne uno.

Provisioning automatico

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

  2. Nella barra di navigazione dei progetti nella barra laterale di sinistra, seleziona il progetto "Mediapipe".

  3. Seleziona uno dei target dell'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 di dialogo Team.

  7. Questa configurazione deve essere eseguita una volta per ogni applicazione che vuoi installare. Ripeti i passaggi 3-6 secondo necessità.

In questo modo vengono generati profili di provisioning per ogni app selezionata. Ora devi dire a Bazel di usarle. Per semplificare questa operazione, abbiamo fornito uno script.

  1. Nel terminale, nella 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 cui hai attivato il provisioning automatico in Xcode.

Provisioning personalizzato

  1. Ottieni un profilo di provisioning da Apple.
  1. Collega in simboli o copia il tuo 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 sostituisci 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 qualsiasi demo di Mediapipe Framework nel menu di destinazione, nonché crearla ed eseguirla normalmente.

Creare un'app utilizzando la riga di comando

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

  2. Utilizzando MediaPipe Hands, ad esempio, esegui:

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

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

  3. In Xcode, apri la finestra Devices and Simulators (Command-shift-2).

  4. Assicurati che il tuo 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.