1. לפני שמתחילים
בקודלאב הזה תלמדו איך להשתמש ב-Firebase App Distribution ובתוסף fastlane שלו כדי להפיץ אפליקציה ל-iOS לבודקים, לאסוף מזהי UDID של מכשירי בדיקה ולרשום אותם בפרופיל ההקצאה של האפליקציה, כדי שתוכלו להעביר גרסאות build זמניות לבודקים במהירות.
מה תלמדו
- איך מעלים ומפיצים אפליקציית iOS (Ad Hoc) בטרום-השקה לבודקים באמצעות הפצת אפליקציות של Firebase ו-fastlane.
- איך נרשמים כבודקים ומורידים את האפליקציה שחולקה למכשיר בדיקה.
- איך רושמים במהירות מכשירים לבדיקה על ידי ייצוא מזהי UDID של מכשירים לבדיקה באמצעות הפלאגין fastlane של App Distribution.
- איך מעדכנים את פרופיל ההקצאה של האפליקציה ומעלים אותו מחדש לצורך הפצה.
מה צריך להכין
- חשבון Google
- מכונה של Apple עם XCode מגרסה 11.7 ואילך
- אפליקציה ל-iOS בגרסת טרום-הפצה שנוצרה ב-Xcode
- חשבון פיתוח בתשלום ב-Apple
- מכשיר iOS פיזי לבדיקה.
אפליקציית הסימולטור ל-iOS תפעל ברוב ה-Codelab, אבל סימולטורים לא יכולים להוריד גרסאות.
כדי לוודא שההגדרה עבדה, צריך לאמת שהסמל 'הורדה' מופיע באפליקציית האינטרנט של הבודק של הפצת אפליקציות.
2. מתחילים
הגדרת fastlane
התכונה 'הפצת אפליקציות' משתלבת עם נתיב מהיר כדי לאפשר הפצה אוטומטית של גרסאות build של האפליקציה לפני הפצה. הפצת האפליקציות משתלבת עם התצורה של הנתיב המהיר.
- התקנה והגדרה של נתיב מהיר.
- מריצים את
fastlane init
בספריית השורש של הפרויקט במהלך ההגדרה ובוחרים באפשרות 'הגדרה ידנית'. תופיע ספריית משנה בשםfastlane
שמכילהFastfile
,Appfile
ו-Pluginfile
, ולהשתמש בה כדי להגדיר נתיב מהיר.
התקנת ה-CLI של Firebase
תצטרכו גם להתקין את 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
(שנקראת גםgym
) של fastlane כדי ליצור את האפליקציה. לשם כך, מוסיפים את הקוד הבא לקובץ./fastlane/Fastfile
:
default_platform(:ios)
lane :build do
build_app(export_method: "ad-hoc")
end
- חותמים על האפליקציה לצורך הפצה.
ב-codelab הזה תנהל את האישור והפרופיל שלך באמצעות get_certificates
(שנקרא גם cert
), שמייצר אישורי חתימה באופן מקומי ומאחסן את הכל ב-Keychain של macOS. עם זאת, בדרך כלל עדיף להשתמש בנתיב המהיר 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
אם נתקלתם בבעיות, יש לעיין במדריך לפתרון בעיות בנתיב המהיר.
4. העלאת האפליקציה ל-Firebase
עכשיו, לאחר שבנית את האפליקציה, אתה יכול להעלות אותה ל'הפצת אפליקציות'.
יצירת פרויקט Firebase והגדרתו
- נכנסים ל-Firebase.
- במסוף Firebase, יוצרים או מוסיפים פרויקט חדש ומעניקים לו את השם 'Codelab לייצוא UDID'.
אין צורך להפעיל את Google Analytics עבור הפרויקט הזה.
- לוחצים על Create project.
הוספת אפליקציית iOS לפרויקט
- לוחצים על הסמל של iOS כדי ליצור אפליקציית iOS חדשה ב-Firebase, ומזינים את מזהה החבילה של האפליקציה.
- מדלגים על השלבים הבאים ואז לוחצים על Continue to console. בהמשך תוסיפו ערכות SDK לאפליקציה.
הפרויקט והאפליקציה זמינים עכשיו בדף Project Overview (סקירה כללית של הפרויקט).
הפעלת הפצת אפליקציות
- בקטע של הגרסה & בקטע 'מעקב', לוחצים על הפצת אפליקציות.
- אחרי שמאשרים את התנאים, לוחצים על 'מתחילים'. כדי להפעיל את 'הפצת אפליקציות' לאפליקציה.
הגדרת הפצה בנתיב מהיר
- מריצים את הפקודה הבאה מהרמה הבסיסית (root) של פרויקט ה-iOS כדי להוסיף את App Distribution לתצורה של fastlane.
אם תופיע אפשרות בפקודה, בוחרים באפשרות Option 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. הזמנת בודקים להוריד את האפליקציה
כשהבודק מאשר הזמנה לבדוק build של אד-הוק, הוא מתבקש לקבל הרשאה לשתף את ה-UDID שלו. אם הוא יתקבל, התכונה 'הפצת אפליקציות' תאסוף את פרטי המכשירים ותיידע אתכם באימייל. בקטע הזה תוסיף את עצמך כבודק כדי להוריד ולבדוק את האפליקציה שהפצת.
הוספה שלכם כבודקים לגרסה המשוחררת
- בקטע
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
בשלב הזה, הקובץ המהיר אמור להיראות כך:
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 במכשיר הבדיקה כדי לגשת לגרסאות האפליקציה שהוזמנתם לבדוק. מכיוון שהגרסה שלכם לבדיקה היא גרסה זמנית, תצטרכו גם לרשום את מכשיר הבדיקה על ידי התקנת פרופיל Firebase. לאחר מכן, ניתן יהיה לגשת לגרסאות שיהיו זמינות דרך אפליקציית האינטרנט של הכלי לבודק של הפצת אפליקציות, באמצעות קטע האינטרנט שיתווסף למסך הבית של המכשיר.
- במכשיר הבדיקה של iOS, פותחים את האימייל שנשלח מהפצת אפליקציות ב-Firebase ומקישים על הקישור תחילת העבודה. חשוב לפתוח את הקישור ב-Safari.
- עכשיו נמצאים באפליקציית האינטרנט של הכלי לבדיקת הפצת אפליקציות. בדף שמופיע, נכנסים באמצעות חשבון Google ומקישים על אישור ההזמנה.
- עכשיו תוכלו לראות את הגרסאות שהוזמנתם להן. מקישים על רישום המכשיר מתחת לאחת הגרסאות.
- כשמוצגת בקשה, מורידים את פרופיל Firebase ומתקינים אותו באפליקציית ההגדרות.
התקנת הפרופיל מעניקה ל-Firebase הרשאה:
- רושמים את מכשיר הבדיקה באמצעות איסוף של מזהה המכשיר הייחודי (UDID) למכשיר.
מערכת Firebase שולחת לכל הבעלים והעורכים של פרויקט Firebase אימייל שכולל את ה-UDID של מכשיר הבדיקה.
- מתקינים קליפ אינטרנט במסך הבית של מכשיר הבדיקה. הקליפ באינטרנט פותח את אפליקציית האינטרנט של הכלי לבדיקת הפצת אפליקציות, שמאפשרת לכם להתקין את כל אפליקציות הבדיקה שלכם ולגשת אליהן.
באפליקציית האינטרנט של הכלי לבדיקה של הפצת אפליקציות, מכשיר הבדיקה רשום עכשיו לגרסת האפליקציה.
אחרי ששיתפתם את ה-UDID של מכשיר הבדיקה עם Firebase, אתם יכולים להמשיך אותו כמפתח. בכרטיסייה 'בודקים' בלוח הבקרה של App Distribution, פרטי הבודקים מופיעים עכשיו מתחת למהדורה של האפליקציה עם הסטטוס 'אושר':
בקטע הבא, צריך להוסיף את מזהה ה-UDID של המכשיר לפרופיל הקצאת ההרשאות של האפליקציה, ואז לבנות גרסה של האפליקציה שפועלת עם מכשיר הבדיקה.
ייצוא מזהי UDID של מכשירי הבדיקה
המפתחים יקבלו אימייל מ-Firebase עם מזהה ה-UDID של מכשיר הבדיקה. אפשרות נוספת היא להשתמש ב-App Distribution כדי לאסוף כמה מזהי UDID חדשים של מכשירים בבת אחת. לשם כך, אפשר לייצא אותם ישירות ממסוף Firebase כקובץ טקסט גולמי.
- כדי לייצא את כל מזהי ה-UDID, פותחים את הכרטיסייה בודקים וקבוצות.
- לוחצים על ייצוא מזהי UDID של Apple.
הקובץ צריך להכיל את ה-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
לאחר מכן המכשירים החדשים אמורים להופיע ברשימת המכשירים של מסוף המפתחים.
הוספת מכשירים לפרופיל ההקצאה
- מוסיפים את הארגומנט
force
לשלב של פרופיל הקצאת המשאבים בנתיבbuild
, כדי לאלץ אותו לזהות מכשירים חדשים בכל פעם שמבצעים 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
בשלב הזה, הקובץ המהיר אמור להיראות כך:
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 של UDID, רואים שהגרסה מוכנה להורדה.
- במכשיר פיזי, לוחצים על 'הורדה', מתקינים את האפליקציה ומפעילים אותה.
7. מזל טוב
הגדרתם עכשיו את הפצת האפליקציות ואת הנתיב המהיר כך שתהליך הבדיקה טרום-השקה יהיה אוטומטי. עכשיו, כשתרצו להזמין בודקים נוספים או להוסיף את רכיבי ה-UDID שלהם לאפליקציה, תצטרכו להריץ רק פקודה אחת: fastlane distribute
.
לכן אין עוד צורך לאסוף מזהי UDID מבודקים באופן פרטני, ולא לעבור אל Apple Developer Console כדי לעדכן רשימות מכשירים או הקצאת פרופילים. לא צריך אפילו לפתוח את XCode!
קל להגדיר את תהליך העבודה הזה כך שיפעל מדי שעה או מדי יום בסביבת השילוב הרציף.
קריאה נוספת
- הכרת התכונות של הפצת אפליקציות ב-Firebase, כולל ה-SDK בתוך האפליקציה ל-iOS
- מידע נוסף על נתיב מהיר
- ניהול חתימת הקוד של הצוות באמצעות
match
- שילוב fastlane ב-CI