הפצת גרסאות build של iOS לגרסת טרום-השקה מהר יותר באמצעות App Distribution ו-fastlane

1. לפני שמתחילים

4cddd34bd261cea0.png

ב-Codelab הזה נלמד איך להשתמש ב-הפצת אפליקציות ב-Firebase ובתוסף fastlane שלו כדי להפיץ אפליקציה ל-iOS לבודקים, לאסוף מזהי UDID של מכשירי בדיקה ולרשום אותם בפרופיל ההקצאה של האפליקציה, כדי שתוכלו להעביר במהירות גרסאות Ad Hoc לבודקים.

מה תלמדו

  • איך מעלים ומפיצים אפליקציית iOS בטרום-השקה (Ad Hoc) לבודקים באמצעות הפצת אפליקציות ב-Firebase ו-fastlane.
  • איך נרשמים כבודקים ומורידים את האפליקציה שהופצה במכשיר בדיקה.
  • איך רושמים במהירות מכשירי בדיקה באמצעות ייצוא של מספרי UDID של מכשירי בדיקה באמצעות התוסף fastlane של App Distribution.
  • איך מעדכנים את פרופיל ההקצאה של האפליקציה ומעלים אותו מחדש להפצה.

מה צריך להכין

  • חשבון Google
  • מחשב Apple עם XCode מגרסה 11.7 ומעלה
  • אפליקציית iOS לטרום הפצה שנוצרה ב-Xcode
  • חשבון Apple Developer בתשלום
  • מכשיר iOS פיזי לבדיקה.

אפליקציית הסימולטור של iOS תפעל ברוב המקרים של Codelab, אבל אי אפשר להוריד גרסאות באמצעות סימולטורים.

עדיין אפשר לוודא שההגדרה פעלה על ידי בדיקה שהלחצן 'הורדה' מופיע באפליקציית האינטרנט של בודק הפצת האפליקציות.

2. שנתחיל?

הגדרה של fastlane

הכלי להפצת אפליקציות משתלב עם fastlane כדי לאפשר לכם להפיץ באופן אוטומטי גרסאות טרום-השקה של האפליקציה. הכלי להפצת אפליקציות משתלב עם ההגדרה של fastlane.

  1. מתקינים ומגדירים את fastlane.
  2. מריצים את הפקודה fastlane init בספריית הבסיס של הפרויקט במהלך ההגדרה, ובוחרים באפשרות 'הגדרה ידנית'. תופיע תיקיית משנה בשם fastlane שמכילה את הקבצים Fastfile, Appfile ו-Pluginfile, שבהם תשתמשו כדי להגדיר את fastlane.

התקנת Firebase CLI

תצטרכו גם להתקין את Firebase CLI. אם אתם משתמשים ב-macOS או ב-Linux, אתם יכולים להריץ את פקודת cURL הבאה:

curl -sL https://firebase.tools | bash

אם אתם משתמשים ב-Windows, תוכלו לקרוא את הוראות ההתקנה כדי לקבל קובץ בינארי עצמאי או להתקין דרך npm.

אחרי שמתקינים את ה-CLI, הפעלת הפקודה firebase --version אמורה להחזיר גרסה של 12.0.0 ומעלה:

$ firebase --version
12.0.0

3. פיתוח האפליקציה באמצעות fastlane

פיתוח האפליקציה

  1. מגדירים כמה משתנים גלובליים ל-fastlane בקובץ ./fastlane/Appfile. כוללים את מזהה האפליקציה ואת ה-Apple ID:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
  1. יוצרים את הנתיב הראשון ומשתמשים בפעולה build_app של fastlane (שנקראת גם gym) כדי ליצור את האפליקציה על ידי הוספת הקוד הבא אל ./fastlane/Fastfile:
default_platform(:ios)

lane :build do
    build_app(export_method: "ad-hoc")
end
  1. חותמים על האפליקציה להפצה.

ב-codelab הזה, תנהלו את האישור והפרופיל שלכם באמצעות get_certificates (שנקרא גם cert), שיוצר אישורי חתימה באופן מקומי ומאחסן הכול ב-Keychain של macOS. עם זאת, בדרך כלל מומלץ להשתמש ב-fastlane sync_code_signing action (שנקרא גם match) כדי לנהל בצורה מאובטחת את הפרופילים והאישורים של חתימת הקוד של הצוות.

lane :build do
    get_certificates()
    build_app(export_method: "ad-hoc")
end
  1. מגדירים פרופיל הקצאת הרשאות לאפליקציה באמצעות הפעולה get_provisioning_profile (שנקראת גם sigh). כך אפשר לשתף את האפליקציה עם בודקים.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end
  1. [אופציונלי] אם זו הפעם הראשונה שאתם מריצים את האפליקציה, מריצים את הפקודה הבאה כדי ליצור את האפליקציה ב-Apple Developer Console:

$ fastlane produce --skip_itc

  1. לבסוף, מריצים את הנתיב כדי ליצור את האפליקציה.

תתבקשו להזין את ה-Apple ID, הסיסמה (שמאוחסנת ב-Keychain) ומזהה החבילה של האפליקציה.

$ fastlane build

אם נתקלתם בבעיות, כדאי לעיין במדריך לפתרון בעיות ב-fastlane.

4. העלאת האפליקציה ל-Firebase

עכשיו שיצרתם את האפליקציה, אתם מוכנים להעלות אותה אל הפצת אפליקציות.

יצירת פרויקט חדש ב-Firebase

  1. נכנסים למסוף Firebase באמצעות חשבון Google.
  2. לוחצים על הלחצן ליצירת פרויקט חדש ומזינים שם לפרויקט (לדוגמה, UDID Export Codelab).
  3. לוחצים על המשך.
  4. אם מוצגת בקשה לעשות זאת, קוראים ומאשרים את התנאים של Firebase, ואז לוחצים על המשך.
  5. (אופציונלי) מפעילים את העזרה מבוססת-AI במסוף Firebase (שנקראת Gemini ב-Firebase).
  6. ב-codelab הזה לא צריך להשתמש ב-Google Analytics, ולכן משביתים את האפשרות Google Analytics.
  7. לוחצים על יצירת פרויקט, מחכים שהפרויקט יוקצה ולוחצים על המשך.

הוספת אפליקציית iOS לפרויקט

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

9c26c130a6c42212.png

  1. מדלגים על כמה השלבים הבאים ולוחצים על המשך אל מסוף. תצטרכו להוסיף ערכות SDK לאפליקציה בהמשך.

הפרויקט והאפליקציה שלכם זמינים עכשיו בדף Project Overview.

66f79cc8a97fa8e9.png

הפעלת הפצת אפליקציות

  1. בקטע 'הפצה ומעקב', לוחצים על הפצת אפליקציות.
  2. אחרי שמקבלים את התנאים, לוחצים על 'תחילת העבודה' כדי להפעיל את הפצת האפליקציות עבור האפליקציה.

460213326c2784ae.png

הגדרת הפצה ב-fastlane

  1. מריצים את הפקודה הבאה מהרמה הבסיסית (root) של פרויקט iOS כדי להוסיף את הפצת אפליקציות להגדרות של fastlane.

אם הפקודה מציגה אפשרות, בוחרים באפשרות 3: RubyGems.org:

$ fastlane add_plugin firebase_app_distribution

  1. מוודאים שהפלאגין מותקן:

$ fastlane

הפלאגין fastlane-plugin-firebase_app_distribution צריך להופיע ברשימת הפלאגינים המותקנים.

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

אימות פרויקט Firebase

כדי להשתמש בתוסף fastlane, צריך קודם לאמת את פרויקט Firebase.

  1. מריצים את הפקודה הבאה כדי לקשר את ה-CLI לחשבון Google:

$ firebase login

  1. כשהפקודה מדפיסה קישור לאימות, פותחים את הקישור בדפדפן.
  2. כשמופיעה בקשה, נכנסים לחשבון Google ונותנים הרשאת גישה לפרויקט ב-Firebase.

הפצת האפליקציה

עכשיו אפשר להפיץ את האפליקציה.

  1. בחלק העליון של ./fastlane/Fastfile, מגדירים משתנה בשם firebase_app_id. מחליפים את <your_app_id> במזהה האפליקציה ב-Firebase של האפליקציה שיצרתם (אפשר למצוא אותו בדף הגדרות הפרויקט).

ה-Fastfile כתוב ב-Ruby, לכן צריך להשתמש בתחביר של Ruby כדי להגדיר משתנים.

firebase_app_id = "<your_app_id>"
  1. מוסיפים נתיב חדש בשם distribute שקורא לנתיב build, ואז מפיצים את האפליקציה באמצעות הפעולה firebase_app_distribution.
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end
  1. מריצים את הנתיב החדש כדי לבנות את האפליקציה וליצור הפצה.

$ fastlane distribute

בשלב הזה, קובץ ה-Fastfile אמור להיראות כך:

firebase_app_id = "<your Firebase app ID>"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end

אחרי שתרעננו את מסוף Firebase, תראו את הגרסה החדשה של האפליקציה.

c59dc1a94de3bf3c.png

5. הזמנת בודקים להוריד את האפליקציה

כשבודק מאשר הזמנה לבדיקת גרסת Ad Hoc, הוא מתבקש להעניק הרשאה לשיתוף ה-UDID שלו. אם הם יסכימו, הפצת אפליקציות תאסוף את פרטי המכשיר שלהם ותשלח לכם הודעה באימייל. בקטע הזה תוסיפו את עצמכם כבודקים כדי להוריד ולבדוק את האפליקציה שהפצתם.

הוספת עצמכם כבודקים לגרסה

  1. בקטע firebase_app_id בחלק העליון של קובץ ה-Fastfile, יוצרים משתנה להחזקת בודקים וכוללים את כתובת האימייל שלכם, וגם כתובות אימייל אופציונליות אחרות שרוצים לנסות.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
  1. מפעילים את השיטה Array#join של Ruby כדי להפוך את המערך app_testers למחרוזת מופרדת בפסיקים, כפי שמצופה מהפרמטר testers. לאחר מכן, מעבירים את התוצאה לפרמטר testers של firebase_app_distribution.
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end

בשלב הזה, קובץ ה-Fastfile אמור להיראות כך:

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end
  1. מריצים שוב את הנתיב.

$ fastlane distribute

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

2e0fc9603b868af8.png

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

רישום מכשיר הבדיקה

כדי לגשת לגרסאות של אפליקציות שהוזמנתם לבדוק, אתם צריכים להיכנס לחשבון Google במכשיר הבדיקה. מכיוון שגרסת ה-build לבדיקה היא גרסת Ad Hoc, תצטרכו גם לרשום את מכשיר הבדיקה על ידי התקנת פרופיל Firebase. לאחר מכן, תוכלו לגשת לגרסאות שיהיו זמינות לכם דרך אפליקציית האינטרנט לבודקים של הפצת אפליקציות, באמצעות קיצור הדרך לאתר שנוסף למסך הבית של המכשיר.

  1. במכשיר הבדיקה של iOS, פותחים את האימייל שנשלח מהפצת אפליקציות ב-Firebase ולוחצים על הקישור Get Started (תחילת העבודה). חשוב לפתוח את הקישור ב-Safari.
  2. עכשיו אתם נמצאים באפליקציית האינטרנט של הפצת אפליקציות לטסטרים. בדף שמופיע, נכנסים לחשבון Google ומקישים על אישור ההזמנה.

d833407de251b89f.png

  1. עכשיו אפשר לראות את הגרסאות שהוזמנתם להצטרף אליהן. מקישים על רישום המכשיר באחת מהגרסאות.

fd141215e54a938d.png

  1. כשמופיעה בקשה, מורידים את פרופיל Firebase ומתקינים אותו באפליקציית ההגדרות.

התקנת הפרופיל מעניקה ל-Firebase את ההרשאות הבאות:

  • כדי לרשום את מכשיר הבדיקה, צריך לאסוף את מזהה המכשיר הייחודי (UDID).

מערכת Firebase שולחת אימייל לכל הבעלים והעורכים של פרויקט Firebase, כולל ה-UDID של מכשיר הבדיקה.

  • מתקינים קיצור דרך לאתר במסך הבית של מכשיר הבדיקה. הקיצור לאתר פותח את אפליקציית האינטרנט לבודקים של 'הפצת אפליקציות', שמאפשרת לכם להתקין את כל האפליקציות לבדיקה ולגשת אליהן.

באפליקציית האינטרנט של בודקי הפצת אפליקציות, מכשיר הבדיקה שלכם רשום עכשיו לגרסה של האפליקציה.

fe93d649dfa25877.png

עכשיו, אחרי ששיתפתם את מזהה ה-UDID של מכשיר הבדיקה עם Firebase, אתם יכולים להמשיך כשהפרופיל שלכם הוא של מפתח. בכרטיסיית הבודקים במרכז הבקרה של הפצת אפליקציות, פרטי הבודק מופיעים עכשיו בקטע של גרסת האפליקציה, והסטטוס הוא 'התקבלה':

7b9f665a63a384cf.png

בקטע הבא, תוסיפו את ה-UDID של המכשיר לפרופיל ההקצאה של האפליקציה, ואז תיצרו גרסה של האפליקציה שתפעל במכשיר הבדיקה.

ייצוא של מספרי ה-UDID של מכשירי הבדיקה

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

  1. כדי לייצא את כל מספרי ה-UDID, פותחים את הכרטיסייה בודקים וקבוצות.

241a9936898a2fc0.png

  1. לוחצים על ייצוא של מזהי UDID של אפל.

bcf0c26c522d9b4e.png

הקובץ צריך לכלול את מזהה ה-UDID של מכשיר הבדיקה.

Device ID            Device Name                            Device Platform
1234567890     udid.codelab.tester@gmail.com - iPhone SE 2nd Gen        ios

אפשר גם לייצא את מספרי ה-UDID משורת הפקודה באמצעות fastlane, כמו שמוסבר בקטע הבא.

6. עדכון של הפרופיל להקצאת הרשאות ידנית של האפליקציה ובנייה מחדש של הפרופיל

עכשיו צריך להוסיף את ה-UDID של מכשיר הבדיקה לפרופיל ההקצאה של האפליקציה, לבנות מחדש גרסה של האפליקציה שפועלת במכשיר ולהפיץ את הגרסה החדשה.

הוספת נתיב לייצוא של מזהה UDID

  1. מוסיפים עוד משתנה בחלק העליון של Fastfile ומגדירים אותו לנתיב קובץ שבו יורדו מזהי המכשירים הייחודיים של הבודקים.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"
  1. מגדירים נתיב חדש שמשתמש בפעולת הייצוא של מזהי המכשירים הייחודיים (UDID) של הפלאגין להפצת אפליקציות כדי להוריד את מזהי המכשירים הייחודיים של הבודקים, בדיוק כמו שעשיתם במסוף.
lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end
  1. מריצים את הנתיב הבא כדי להוריד את מספרי ה-UDID.

$ fastlane download_udids

  1. מדפיסים את הקובץ שהורד, שאמור להכיל את מספרי ה-UDID של מכשירי הבדיקה.

$ cat tester_udids.txt

הוספת מכשירים ל-Apple Developer Console

  1. יוצרים את הנתיב הבא כדי להוסיף את מספרי ה-UDID לרשימת המכשירים ב-Apple Developer Console, וכך אפשר להוסיף אותם לפרופיל ההקצאה באמצעות הפעולה register_devices של fastlane :
lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end
  1. לאחר מכן, מריצים את הנתיב:

$ fastlane add_new_devices

אחרי זה, המכשירים החדשים אמורים להופיע ברשימת המכשירים ב-Developer Console.

הוספת מכשירים לפרופיל ההקצאה

  1. מוסיפים את הארגומנט force לשלב של פרופיל ההקצאה בנתיב build, כדי לאלץ אותו לבחור מכשירים חדשים בכל פעם שמבצעים בנייה.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

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

עכשיו צריך לעדכן את נתיב distribute עם הנתיבים החדשים כדי להוסיף את המכשירים לפרופיל ההקצאה, לבנות מחדש את האפליקציה ואז להפיץ אותה.

  1. להתקשר למספרי הטלפון החדשים של הנתיבים מ-distribute:
lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: "1:123456789:ios:abcd1234",
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end
  1. מריצים את נתיב distribute:

$ fastlane distribute

בשלב הזה, קובץ ה-Fastfile אמור להיראות כך:

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end

lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end

lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end

הורדת הגרסה ממכשיר הבדיקה

עכשיו, כשהאפליקציה כוללת את מספרי ה-UDID של המכשירים לבדיקה, אפשר להתקין אותה במכשירים האלה.

e275f73d57cc8fb1.png

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

כשעוברים לאפליקציה של ה-UDID codelab, אפשר לראות שהגרסה מוכנה להורדה.

dad6d03b6ad78746.png

  1. אם אתם משתמשים במכשיר פיזי, לוחצים על 'הורדה', ואז מתקינים את האפליקציה ומפעילים אותה.

7. מזל טוב

הגדרתם את התכונה 'הפצת אפליקציות' ואת fastlane כדי לאוטומט את תהליך הבדיקה של גרסאות טרום-השקה. מעכשיו, אם רוצים להזמין בודקים נוספים או להוסיף את מספרי ה-UDID שלהם לאפליקציה, צריך להריץ רק פקודה אחת: fastlane distribute.

לכן, לא צריך יותר לאסוף מזהי מכשירים ייחודיים (UDID) בנפרד מהבודקים, או להיכנס למסוף הפיתוח של אפל כדי לעדכן רשימות מכשירים או פרופילים של הקצאת הרשאות. לא צריך אפילו לפתוח את XCode.

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

קריאה נוספת