MediaPipe Framework ב-iOS

כדי ליצור אפליקציות לדוגמה ל-iOS באמצעות MediaPipe Framework, פועלים לפי ההוראות הבאות. למידע נוסף על האפליקציות לדוגמה האלה, כדאי להתחיל מהמאמר Hello World! ב-iOS.

פיתוח אפליקציות לדוגמה ל-iOS

דרישות מוקדמות

  1. מתקינים את Mediapipe Framework לפי ההוראות האלה.

  2. מתקינים את Xcode ואז מתקינים את כלי שורת הפקודה באמצעות:

    xcode-select --install
    
  3. מתקינים את Bazelisk.

    מומלץ להשתמש ב-Homebrew כדי לקבל את הגרסאות העדכניות.

    brew install bazelisk
    
  4. מתקינים את ספריית Python‏ 'six'. הדבר נדרש ל-TensorFlow.

    pip3 install --user six
    
  5. משכפלים את המאגר של MediaPipe.

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

הגדרת קידומת למזהה החבילה

לכל אפליקציה ל-iOS צריך להיות מזהה חבילה, וצריך להיות לכם פרופיל הקצאה שמאפשר לכם להתקין בטלפון אפליקציה עם המזהה הזה. כדי למנוע התנגשויות בין משתמשים שונים ב-MediaPipe, צריך להגדיר קידומת ייחודית למזהי החבילות של אפליקציות הדגמה ל-iOS.

אם יש לכם פרופיל הקצאה בהתאמה אישית, תוכלו לעיין בקטע הקצאה בהתאמה אישית בהמשך.

אחרת, מריצים את הפקודה הבאה כדי ליצור קידומת ייחודית:

python3 mediapipe/examples/ios/link_local_profiles.py

יצירת פרויקט ב-Xcode

כך תוכלו לערוך ולפתור באגים באחת מהאפליקציות לדוגמה ב-Xcode. הוא גם מאפשר לכם להשתמש בהקצאה אוטומטית (מידע נוסף מופיע בקטע הבא).

  1. נשתמש בכלי שנקרא Tulsi כדי ליצור פרויקטים של Xcode מהגדרות 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
    

    הפקודה הזו תתקין את Tulsi.app בספרייה Applications בספריית הבית.

  2. פותחים את mediapipe/Mediapipe.tulsiproj באמצעות אפליקציית Tulsi.

  3. בוחרים את הגדרת MediaPipe בכרטיסייה Configs ולוחצים על הלחצן Generate שבהמשך. תתבקשו לבחור מיקום לשמירת פרויקט Xcode. לאחר יצירת הפרויקט, הוא ייפתח ב-Xcode.

    אם מופיעה הודעת שגיאה לגבי מזהי חבילות, אפשר לעיין בקטע הקודם.

הגדרת ניהול תצורה

כדי להתקין אפליקציות במכשיר iOS, צריך פרופיל הקצאה. יש שתי אפשרויות:

  1. הקצאה אוטומטית. כך תוכלו לפתח אפליקציה ולהתקין אותה במכשיר האישי שלכם. פרופיל הקצאת המשאבים מנוהל על ידי Xcode, וצריך לעדכן אותו לעיתים קרובות (הוא תקף למשך שבוע בערך).

  2. הקצאה בהתאמה אישית. לשם כך נעשה שימוש בפרופיל הקצאה שמשויך לחשבון פיתוח של Apple. לפרופילים האלה יש תקופת תוקף ארוכה יותר, והם יכולים לטרגט כמה מכשירים, אבל כדי לקבל אותם צריך חשבון פיתוח בתשלום ב-Apple.

הקצאה אוטומטית

  1. יוצרים פרויקט Xcode ל-MediaPipe, כפי שמתואר למעלה.

  2. בחלונית הניווט של הפרויקטים בסרגל הצד הימני, בוחרים בפרויקט Mediapipe.

  3. בוחרים אחד מיעדי האפליקציה, לדוגמה, HandTrackingGpuApp.

  4. בוחרים בכרטיסייה Signing & Capabilities (חתימה ויכולות).

  5. מסמנים את האפשרות 'ניהול אוטומטי של החתימה' ומאשרים את תיבת הדו-שיח.

  6. בתפריט של תיבת הדו-שיח 'צוות', בוחרים באפשרות השם שלך (צוות אישי).

  7. צריך לבצע את ההגדרה הזו פעם אחת לכל אפליקציה שרוצים להתקין. חוזרים על שלבים 3 עד 6 לפי הצורך.

הפעולה הזו תיצור פרופילים להקצאת הרשאות לכל אפליקציה שבחרתם. עכשיו צריך להורות ל-Bazel להשתמש בהם. כדי להקל על התהליך, סיפקנו סקריפט.

  1. במסוף, נכנסים לספרייה mediapipe שבה ביצעתם את היצירה של המאגר.

  2. מריצים את הפקודה הבאה:

    python3 mediapipe/examples/ios/link_local_profiles.py
    

הפעולה הזו תאתר ותקשר את פרופיל הקצאת המשאבים לכל האפליקציות שבהן הפעלתם את הקצאת המשאבים האוטומטית ב-Xcode.

הקצאה בהתאמה אישית

  1. מקבלים פרופיל הקצאה מ-Apple.
  1. יוצרים קישור סימלי או מעתיקים את פרופיל הקצאת המשאבים אל mediapipe/mediapipe/provisioning_profile.mobileprovision.

    cd mediapipe
    ln -s ~/Downloads/MyProvisioningProfile.mobileprovision mediapipe/provisioning_profile.mobileprovision
    
  1. פותחים את mediapipe/examples/ios/bundle_id.bzl ומשנים את הערך של BUNDLE_ID_PREFIX לתחילית שמשויכת לפרופיל הקצאת המשאבים.

פיתוח והרצה של אפליקציה באמצעות Xcode

  1. יוצרים את הפרויקט ב-Xcode ומוודאים שהגדרתם הקצאה אוטומטית או בהתאמה אישית.

  2. עכשיו אפשר לבחור כל אחת מהדמו של Mediapipe Framework בתפריט היעד, ולבנות ולהריץ אותן כרגיל.

פיתוח אפליקציה באמצעות שורת הפקודה

  1. מוודאים שהגדרתם הקצאה אוטומטית או בהתאמה אישית.

  2. לדוגמה, כדי להשתמש ב-MediaPipe Hands, מריצים את הפקודה:

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

    יכול להיות שתוצג לכם בקשת הרשאה מ-codesign כדי לחתום על האפליקציה.

  3. ב-Xcode, פותחים את החלון Devices and Simulators (‎Command-Shift-2).

  4. מוודאים שהמכשיר מחובר. תוצג רשימה של האפליקציות המותקנות. לוחצים על הלחצן '+' מתחת לרשימה ובוחרים את הקובץ .ipa שנוצר על ידי Bazel.

  5. עכשיו אפשר להפעיל את האפליקציה במכשיר.