MediaPipe Framework ב-iOS

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

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

ידע מוקדם שנדרש לקורס

  1. מתקינים את Mediapipe Framework לפי instructions.

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

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

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

    brew install bazelisk
    
  4. מגדירים את Python 3.7 כגרסת ברירת המחדל של Python ומתקינים את ספריית 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. בוחרים בכרטיסייה 'חתימה ויכולות'.

  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. עכשיו אפשר להפעיל את האפליקציה במכשיר.