הפץ את בניית iOS טרום-הפצה שלך מהר יותר עם הפצת אפליקציות ו-fastlane

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

4cddd34bd261cea0.png

במעבדת קוד זה תלמד כיצד להשתמש ב-Firebase App Distribution ובפלאגין Fastlane שלו כדי להפיץ אפליקציית iOS לבודקים, לאסוף UDIDs של מכשירי בדיקה ולרשום אותם בפרופיל ההקצאה של האפליקציה שלך, כדי שתוכל לבנות אד-הוק במהירות לבוחנים ' ידיים.

מה תלמד

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

מה אתה צריך

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

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

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

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 שלך:
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. חתום על האפליקציה שלך להפצה.

עבור מעבדת קוד זה, תנהל את ההסמכה והפרופיל שלך באמצעות get_certificates (הידוע גם בשם cert ), אשר יוצר אישורי חתימה באופן מקומי ומאחסן הכל במחזיק מפתחות 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:

$ fastlane produce --skip_itc

  1. לבסוף, בנה את האפליקציה שלך על ידי ריצת הנתיב.

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

$ fastlane build

אם נתקלת בבעיות כלשהן, אנא עיין במדריך לפתרון בעיות של Fastlane .

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

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

צור והגדר פרויקט Firebase

  1. היכנס ל-Firebase.
  2. במסוף Firebase, צור או הוסף פרויקט חדש, ולאחר מכן תן לפרויקט שלך "UDID Export Codelab".

אינך צריך להפעיל את Google Analytics עבור הפרויקט הזה.

  1. לחץ על צור פרויקט .

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

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

9c26c130a6c42212.png

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

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

66f79cc8a97fa8e9.png

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

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

460213326c2784ae.png

הגדר הפצה ב- fastlane

  1. הפעל את הפקודה הבאה מהשורש של פרויקט ה-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 lane, ולאחר מכן מפיץ את האפליקציה שלך באמצעות פעולת 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. הזמן בודקים להוריד את האפליקציה שלך

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

הוסף את עצמך כבוחן לגרסה

  1. תחת firebase_app_id בחלק העליון של Fastfile שלך, צור משתנה שיכיל בודקים וכלול כתובת דוא"ל משלך, כמו גם כתובות דוא"ל אופציונליות אחרות שתרצה לנסות.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
  1. החל את שיטת Array#join של רובי כדי להפוך את מערך 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

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

2e0fc9603b868af8.png

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

רשום את מכשיר הבדיקה שלך

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

  1. במכשיר הבדיקה של iOS שלך, פתח את האימייל שנשלח מ-Firebase App Distribution והקש על הקישור התחל . הקפד לפתוח את הקישור בספארי.
  2. אתה נמצא כעת באפליקציית האינטרנט של בודק הפצת אפליקציות. בדף שמופיע, היכנס באמצעות חשבון Google שלך ​​והקש על קבל הזמנה.

d833407de251b89f.png

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

fd141215e54a938d.png

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

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

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

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

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

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

fe93d649dfa25877.png

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

7b9f665a63a384cf.png

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

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

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

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

241a9936898a2fc0.png

  1. לחץ על ייצא Apple UDIDs .

bcf0c26c522d9b4e.png

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

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

ניתן לייצא את UDIDs גם משורת הפקודה באמצעות fastlane , מה שתעשה בסעיף הבא.

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

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

הוסף נתיב ייצוא UDID

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

$ fastlane download_udids

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

$ cat tester_udids.txt

הוסף מכשירים למסוף המפתחים של אפל

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

$ fastlane add_new_devices

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

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

  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

הורד את המהדורה ממכשיר הבדיקה

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

e275f73d57cc8fb1.png

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

כאשר אתה מנווט לאפליקציית UDID codelab, אתה יכול לראות שהמהדורה מוכנה להורדה.

dad6d03b6ad78746.png

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

7. מזל טוב

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

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

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

לקריאה נוספת