1. לפני שמתחילים
ב-codelab הזה נסביר איך להשתמש ב-Firebase App Distribution ובתוסף fastlane שלו כדי להפיץ אפליקציית iOS לבודקים, לאסוף מזהי UDID של מכשירי בדיקה ולרשום אותם בפרופיל ההקצאה של האפליקציה, כדי שתוכלו להעביר במהירות גרסאות Ad Hoc לבודקים.
מה תלמדו
- איך מעלים ומפיצים אפליקציית iOS לפני ההשקה (Ad Hoc) לבודקים באמצעות Firebase App Distribution ו-fastlane.
- איך נרשמים כבודקים ומורידים את האפליקציה שהופצה במכשיר בדיקה.
- איך רושמים במהירות מכשירי בדיקה על ידי ייצוא של מספרי UDID של מכשירי בדיקה באמצעות התוסף fastlane של App Distribution.
- איך מעדכנים את פרופיל ההקצאות של האפליקציה ומעלים אותו מחדש להפצה.
מה צריך להכין
- חשבון Google
- מחשב Apple עם XCode מגרסה 11.7 ומעלה
- אפליקציית iOS לטרום-הפצה שנוצרה ב-Xcode
- חשבון Apple Developer בתשלום
- מכשיר iOS פיזי לבדיקה.
אפליקציית הסימולטור של iOS תפעל ברוב המקרים של Codelab, אבל אי אפשר להוריד גרסאות באמצעות סימולטורים.
עדיין אפשר לוודא שההגדרה פעלה על ידי בדיקה שהלחצן 'הורדה' מופיע באפליקציית האינטרנט של כלי הבדיקה של הפצת אפליקציות.
2. שנתחיל?
הגדרה של fastlane
הכלי להפצת אפליקציות משתלב עם fastlane כדי לאפשר לכם להפיץ באופן אוטומטי גרסאות טרום-השקה של האפליקציה. הכלי להפצת אפליקציות משתלב עם ההגדרה של fastlane.
- מתקינים ומגדירים את fastlane.
- מריצים את הפקודה
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
פיתוח האפליקציה
- מגדירים כמה משתנים גלובליים ל-fastlane בקובץ
./fastlane/Appfile.
כוללים את מזהה האפליקציה ואת ה-Apple ID:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
- יוצרים את הנתיב הראשון ומשתמשים בפעולה
build_app
של fastlane (שנקראת גםgym
) כדי ליצור את האפליקציה על ידי הוספת הקוד הבא ל-./fastlane/Fastfile
:
default_platform(:ios)
lane :build do
build_app(export_method: "ad-hoc")
end
- חותמים על האפליקציה להפצה.
ב-codelab הזה תנהלו את האישור והפרופיל שלכם באמצעות get_certificates
(שנקרא גם cert
), שיוצר אישורי חתימה באופן מקומי ומאחסן הכול ב-Keychain של macOS. עם זאת, בדרך כלל מומלץ להשתמש ב-fastlane sync_code_signing action
(שנקרא גם match
) כדי לנהל בצורה מאובטחת את פרופילי האישורים של הצוות לחתימת קוד.
lane :build do
get_certificates()
build_app(export_method: "ad-hoc")
end
- מגדירים פרופיל הקצאת הרשאות לאפליקציה באמצעות הפעולה
get_provisioning_profile
(שנקראת גםsigh
). כך אפשר לשתף את האפליקציה עם בודקים.
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true)
build_app(export_method: "ad-hoc")
end
- [אופציונלי] אם זו הפעם הראשונה שאתם מריצים את האפליקציה, מריצים את הפקודה הבאה כדי ליצור את האפליקציה ב-Apple Developer Console:
$ fastlane produce --skip_itc
- לבסוף, מריצים את הנתיב כדי ליצור את האפליקציה.
תתבקשו להזין את ה-Apple ID, את הסיסמה (ששמורה ב-Keychain) ואת מזהה החבילה של האפליקציה.
$ fastlane build
אם נתקלתם בבעיות, כדאי לעיין במדריך לפתרון בעיות ב-fastlane.
4. העלאת האפליקציה ל-Firebase
אחרי שיוצרים את האפליקציה, אפשר להעלות אותה אל App Distribution.
יצירת פרויקט חדש ב-Firebase
- נכנסים למסוף Firebase באמצעות חשבון Google.
- לוחצים על הלחצן ליצירת פרויקט חדש ומזינים שם לפרויקט (לדוגמה,
UDID Export Codelab
). - לוחצים על המשך.
- אם מוצגת בקשה לעשות זאת, קוראים ומאשרים את התנאים של Firebase, ואז לוחצים על המשך.
- (אופציונלי) מפעילים את העזרה מבוססת-AI במסוף Firebase (שנקראת Gemini ב-Firebase).
- ב-codelab הזה לא צריך להשתמש ב-Google Analytics, ולכן משביתים את האפשרות Google Analytics.
- לוחצים על יצירת פרויקט, מחכים שהפרויקט יוקצה ולוחצים על המשך.
הוספת אפליקציית iOS לפרויקט
- לוחצים על סמל iOS כדי ליצור אפליקציית Firebase חדשה ל-iOS, ומזינים את מזהה החבילה של האפליקציה.
- מדלגים על כמה השלבים הבאים ולוחצים על המשך אל מסוף. תצטרכו להוסיף SDK לאפליקציה בהמשך.
הפרויקט והאפליקציה שלכם זמינים עכשיו בדף Project Overview.
הפעלת הפצת אפליקציות
- בקטע 'הפצה ומעקב', לוחצים על הפצת אפליקציות.
- אחרי שמקבלים את התנאים, לוחצים על 'תחילת העבודה' כדי להפעיל את הפצת האפליקציות עבור האפליקציה.
הגדרת הפצה ב-fastlane
- מריצים את הפקודה הבאה מהרמה הבסיסית (root) של פרויקט iOS כדי להוסיף את App Distribution להגדרות של fastlane.
אם הפקודה מציגה אפשרות, בוחרים באפשרות 3: RubyGems.org:
$ fastlane add_plugin firebase_app_distribution
- מוודאים שהפלאגין מותקן:
$ fastlane
הפלאגין fastlane-plugin-firebase_app_distribution
אמור להופיע ברשימת הפלאגינים המותקנים.
- אחרי שמאשרים שהפלאגין מותקן, בוחרים באפשרות 0 כדי לבטל.
אימות פרויקט Firebase
כדי להשתמש בתוסף fastlane, צריך קודם לאמת את פרויקט Firebase.
- מריצים את הפקודה הבאה כדי לחבר את ה-CLI לחשבון Google:
$ firebase login
- כשהפקודה מדפיסה קישור לאימות, פותחים את הקישור בדפדפן.
- כשמופיעה בקשה, נכנסים לחשבון Google ונותנים הרשאת גישה לפרויקט ב-Firebase.
הפצת האפליקציה
עכשיו אפשר להפיץ את האפליקציה.
- בחלק העליון של
./fastlane/Fastfile
, מגדירים משתנה בשםfirebase_app_id
. מחליפים את<your_app_id>
במזהה האפליקציה ב-Firebase של האפליקציה שיצרתם (אפשר למצוא אותו בדף הגדרות הפרויקט).
ה-Fastfile
כתוב ב-Ruby, לכן צריך להשתמש בתחביר של Ruby כדי להגדיר משתנים.
firebase_app_id = "<your_app_id>"
- מוסיפים נתיב חדש בשם
distribute
שקורא לנתיב build, ואז מפיצים את האפליקציה באמצעות הפעולהfirebase_app_distribution
.
lane :distribute do
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!",
)
end
- מריצים את הנתיב החדש כדי ליצור את האפליקציה וליצור הפצה.
$ 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, תראו את הגרסה החדשה של האפליקציה.
5. הזמנת בודקים להוריד את האפליקציה
כשבודק מאשר הזמנה לבדיקת גרסת Ad Hoc, הוא מתבקש להעניק הרשאה לשיתוף ה-UDID שלו. אם הם יסכימו, מערכת App Distribution תאסוף את פרטי המכשיר שלהם ותשלח לכם הודעה באימייל. בקטע הזה נסביר איך להוסיף את עצמכם כבודקים כדי להוריד ולבדוק את האפליקציה שהפצתם.
הוספת עצמכם כבודקים לגרסה
- בקטע
firebase_app_id
בחלק העליון של קובץ ה-Fastfile, יוצרים משתנה להחזקת בודקים וכוללים את כתובת האימייל שלכם, וגם כתובות אימייל אופציונליות אחרות שרוצים לנסות.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
- מפעילים את השיטה 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
- מריצים שוב את הנתיב.
$ fastlane distribute
אחרי שמריצים את הנתיב, הבודקים שהוספתם יקבלו אימייל הזמנה מ-App Distribution עם הודעה על הגרסה החדשה שזמינה. במסוף Firebase, אפשר לראות עכשיו את הבודקים שהוספתם בגרסה של האפליקציה.
מכיוון שציינת את כתובת האימייל שלך, תקבלו הזמנה מ-Firebase App Distribution לבדיקת האפליקציה. אתם הבודקים הראשונים! כדי להגדיר את עצמכם כבודקים במכשיר הבדיקה, צריך להמשיך לקטע הבא.
רישום מכשיר הבדיקה
כדי לגשת לגרסאות של אפליקציות שהוזמנתם לבדוק, אתם צריכים להיכנס לחשבון Google במכשיר הבדיקה. מכיוון שגרסת הבדיקה היא גרסת Ad Hoc, תצטרכו גם לרשום את מכשיר הבדיקה על ידי התקנת פרופיל Firebase. אחרי כן, אפשר לגשת לגרסאות שזמינות לכם דרך אפליקציית האינטרנט של App Distribution לבודקים, באמצעות קיצור הדרך לאתר שנוסף למסך הבית של המכשיר.
- במכשיר הבדיקה שלכם עם iOS, פותחים את האימייל שנשלח מ-Firebase App Distribution ומקישים על הקישור Get Started (תחילת העבודה). חשוב לפתוח את הקישור ב-Safari.
- עכשיו אתם נמצאים באפליקציית האינטרנט של App Distribution לטסטרים. בדף שמופיע, נכנסים לחשבון Google ומקישים על אישור ההזמנה.
- עכשיו אפשר לראות את הגרסאות שהוזמנתם אליהן. מקישים על רישום המכשיר באחת מהגרסאות.
- כשמופיעה בקשה, מורידים את פרופיל Firebase ומתקינים אותו באפליקציית ההגדרות.
התקנת הפרופיל מעניקה ל-Firebase את ההרשאות הבאות:
- כדי לרשום את מכשיר הבדיקה, צריך לאסוף את המזהה הייחודי של המכשיר (UDID).
מערכת Firebase שולחת אימייל לכל הבעלים והעורכים של פרויקט Firebase, כולל ה-UDID של מכשיר הבדיקה.
- מתקינים קיצור דרך לאתר במסך הבית של מכשיר הבדיקה. הקיצור לאתר פותח את אפליקציית האינטרנט לבודקים של הפצת אפליקציות, שמאפשרת להתקין את כל אפליקציות הבדיקה ולגשת אליהן.
באפליקציית האינטרנט App Distribution Tester, מכשיר הבדיקה שלכם רשום עכשיו לגרסה של האפליקציה.
עכשיו, אחרי ששיתפתם את מזהה ה-UDID של מכשיר הבדיקה עם Firebase, אתם יכולים להמשיך כשהחשבון שלכם מוגדר כחשבון מפתח. בכרטיסיית הבודקים בלוח הבקרה של App Distribution, פרטי הבודק מופיעים עכשיו בקטע של גרסת האפליקציה, והסטטוס הוא 'התקבלה':
בקטע הבא, תוסיפו את ה-UDID של המכשיר לפרופיל ההקצאה של האפליקציה, ואז תיצרו גרסה של האפליקציה שתפעל במכשיר הבדיקה.
ייצוא של מספרי ה-UDID של מכשירי הבדיקה
המפתחים יקבלו אימייל מ-Firebase עם מזהה ה-UDID של מכשיר הבדיקה. אפשרות נוספת היא להשתמש באפליקציית ההפצה כדי לאסוף כמה מספרי UDID חדשים של מכשירים בבת אחת. לשם כך, מייצאים אותם ישירות ממסוף Firebase כקובץ טקסט גולמי.
- כדי לייצא את כל מספרי ה-UDID, פותחים את הכרטיסייה בודקים וקבוצות.
- לוחצים על ייצוא של מזהי UDID של אפל.
הקובץ צריך לכלול את מזהה ה-UDID של מכשיר הבדיקה.
Device ID Device Name Device Platform
1234567890 udid.codelab.tester@gmail.com - iPhone SE 2nd Gen ios
אפשר גם לייצא את מספרי ה-UDID משורת הפקודה באמצעות fastlane, כמו שמוסבר בקטע הבא.
6. עדכון של פרופיל ההקצאה של האפליקציה ובנייה מחדש של הפרופיל
עכשיו צריך להוסיף את ה-UDID של מכשיר הבדיקה לפרופיל ההקצאה של האפליקציה, לבנות מחדש גרסה של האפליקציה שפועלת במכשיר ולהפיץ את הגרסה החדשה.
הוספת נתיב לייצוא של מזהה UDID
- מוסיפים עוד משתנה בחלק העליון של קובץ Fastfile ומגדירים אותו לנתיב קובץ שבו יורדו מזהי ה-UDID של המכשירים של הבודקים.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
tester_udids_file = "tester_udids.txt"
- מגדירים נתיב חדש שמשתמש בפעולת הייצוא של מזהי UDID של הפלאגין להפצת אפליקציות כדי להוריד את מזהי ה-UDID של הבודקים, בדיוק כמו שעשיתם במסוף.
lane :download_udids do
firebase_app_distribution_get_udids(
app: firebase_app_id,
output_file: tester_udids_file,
)
end
- מריצים את הנתיב הבא כדי להוריד את מספרי ה-UDID.
$ fastlane download_udids
- מדפיסים את הקובץ שהורד, שאמור להכיל את מספרי ה-UDID של מכשירי הבדיקה.
$ cat tester_udids.txt
הוספת מכשירים ל-Apple Developer Console
- יוצרים את הנתיב הבא כדי להוסיף את מספרי ה-UDID לרשימת המכשירים במסוף הפיתוח של Apple, וכך אפשר להוסיף אותם לפרופיל ההקצאה באמצעות הפעולה
register_devices
של fastlane :
lane :add_new_devices do
register_devices(devices_file: tester_udids_file)
end
- לאחר מכן, מריצים את הנתיב:
$ fastlane add_new_devices
אחרי כן, המכשירים החדשים אמורים להופיע ברשימת המכשירים ב-Developer Console.
הוספת מכשירים לפרופיל ההקצאה
- מוסיפים את הארגומנט
force
לשלב של פרופיל ההקצאה בנתיבbuild
, כדי לאלץ אותו לבחור מכשירים חדשים בכל פעם שמבצעים בנייה.
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true, force: true)
build_app(export_method: "ad-hoc")
end
הפעלה מחדש של נתיב ליצירה ולהעלאה
עכשיו צריך לעדכן את נתיב distribute
עם הנתיבים החדשים כדי להוסיף את המכשירים לפרופיל ההקצאה, לבנות מחדש את האפליקציה ולהפיץ אותה.
- מתקשרים לנתיבים החדשים מ-
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
- מריצים את נתיב
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 codelab, אפשר לראות שהגרסה מוכנה להורדה.
- אם אתם משתמשים במכשיר פיזי, לוחצים על 'הורדה', ואז מתקינים ומפעילים את האפליקציה.
7. מזל טוב
הגדרתם את התכונה 'הפצת אפליקציות' ואת fastlane כדי לאוטומט את תהליך הבדיקה של גרסאות טרום-השקה. מעכשיו, אם רוצים להזמין בודקים נוספים או להוסיף את מספרי ה-UDID שלהם לאפליקציה, צריך להריץ רק פקודה אחת: fastlane distribute
.
לכן, לא צריך יותר לאסוף מזהי מכשירים ייחודיים (UDID) בנפרד מהבודקים, או להיכנס למסוף הפיתוח של אפל כדי לעדכן רשימות מכשירים או פרופילים של הקצאת הרשאות. לא צריך אפילו לפתוח את XCode.
קל להגדיר את תהליך העבודה הזה כך שיפעל מדי שעה או מדי יום בסביבת השילוב הרציף שלכם.
קריאה נוספת
- כדאי לעיין בתכונות של Firebase App Distribution, כולל ה-SDK שלנו בתוך האפליקציה ל-iOS
- מידע נוסף על fastlane
- ניהול חתימת הקוד של הצוות באמצעות
match
- שילוב של fastlane ב-CI