במדריך הזה נסביר איך להפיץ גרסאות build של AAB לבודקים באמצעות fastlane, פלטפורמת קוד פתוח שמאפשרת ליצור אפליקציות ל-iOS ול-Android ולפרסם אותן באופן אוטומטי. היא פועלת לפי הוראות פשוטות שמוגדרות ב-Fastfile
. אחרי שמגדירים את fastlane ואת Fastfile
, אפשר לשלב את App Distribution בהגדרות של fastlane.
App Distribution משתלב עם שירות השיתוף הפנימי של האפליקציות של Google Play כדי לעבד את קובצי ה-AAB שאתם מעלים ולהציג חבילות APK שעברו אופטימיזציה לתצורות המכשירים של הבוחנים. הפצת אפליקציות AAB מאפשרת לכם:
להריץ חבילות APK שעברו אופטימיזציה (ש-Google Play מספקת) ומותאמות למכשירים של הבוחנים.
זיהוי בעיות ספציפיות למכשיר וניפוי באגים שלהן.
לבדוק את התכונות של חבילות האפליקציות, כמו הפצת פיצ'רים ב-Play ו-Play Asset Delivery.
להקטין את גודל ההורדות של הבודקים.
ההרשאות הנדרשות
כדי להעלות קובצי AAB אל App Distribution, צריך לקשר את אפליקציית Firebase לאפליקציה ב-Google Play. כדי לבצע את הפעולות האלה, צריכה להיות לכם רמת הגישה הנדרשת.
אם אין לכם את הרשאת הגישה הנדרשת ל-Firebase, אתם יכולים לבקש מהבעלים של הפרויקט ב-Firebase להקצות לכם את התפקיד המתאים דרך הגדרות IAM במסוף Firebase. אם יש לכם שאלות לגבי הגישה לפרויקט ב-Firebase, כולל איך למצוא בעלים או להקצות בעלים, תוכלו לעיין בשאלות הנפוצות בנושא 'הרשאות וגישה לפרויקטים ב-Firebase'.
הטבלה הבאה רלוונטית לקישור אפליקציה ב-Firebase לאפליקציה ב-Google Play, וגם להעלאת חבילות AAB.
פעולה במסוף Firebase | הרשאת IAM נדרשת | תפקידי IAM שכוללים את ההרשאות הנדרשות כברירת מחדל | תפקידים נדרשים נוספים |
---|---|---|---|
קישור אפליקציה ב-Firebase לאפליקציה ב-Google Play | firebase.playLinks.update
|
אחד מהתפקידים הבאים: | גישה לחשבון פיתוח ב-Google Play בתור אדמין |
העלאת נכסי AAB אל App Distribution | firebaseappdistro.releases.update
|
אחד מהתפקידים הבאים: | –– |
לפני שמתחילים
אם עדיין לא עשיתם זאת, מוסיפים את Firebase לפרויקט Android. בסוף תהליך העבודה הזה תהיה לכם אפליקציית Android ב-Firebase בפרויקט שלכם ב-Firebase.
אם אתם לא משתמשים במוצרים אחרים של Firebase, עליכם רק ליצור פרויקט ולרשום את האפליקציה. אם תחליטו להשתמש במוצרים נוספים, הקפידו להשלים את כל השלבים המפורטים במאמר הוספת Firebase לפרויקט Android.
כדי ליצור קישור של Firebase ל-Google Play ולהעלות קובצי AAB, עליכם לוודא שהאפליקציה שלכם עומדת בדרישות הבאות:
האפליקציה ב-Google Play ואפליקציית Firebase ל-Android רשומות עם אותו שם חבילה.
האפליקציה ב-Google Play מוגדרת במרכז הבקרה של האפליקציות ומופצת באחד מהמסלולים של Google Play (בדיקה פנימית, בדיקה בקבוצה מוגדרת, בדיקה של הקהל הרחב או ייצור).
הבדיקה של האפליקציה ב-Google Play הושלמה והאפליקציה פורסמה. האפליקציה תפורסם אם בעמודה App status יוצג אחד מהסטטוסים הבאים: בדיקה פנימית (לא בדיקה פנימית במצב טיוטה), בדיקה בקבוצה מוגדרת, בדיקה של הקהל הרחב או ייצור.
מקשרים את אפליקציית Android ב-Firebase לחשבון הפיתוח ב-Google Play:
במסוף Firebase, עוברים אל
ובוחרים בכרטיסייה Integrations. Project settings בכרטיס Google Play, לוחצים על Link (קישור).
אם כבר יש לכם קישורים ל-Google Play, לוחצים על Manage (ניהול).פועלים לפי ההוראות במסך כדי להפעיל את השילוב עם App Distribution ולבחור לאילו אפליקציות ל-Android של Firebase לקשר את Google Play.
שלב 1. הגדרת fastlane
כדי להוסיף את App Distribution להגדרות של הנתיב המהיר, מריצים את הפקודה הבאה מהרמה הבסיסית (root) של פרויקט Android:
fastlane add_plugin firebase_app_distribution
אם מופיעה אפשרות בפקודה, בוחרים באפשרות
Option 3: RubyGems.org
.
שלב 2. אימות באמצעות Firebase
כדי להשתמש בפלאגין של fastlane, תחילה צריך לבצע אימות באמצעות הפרויקט ב-Firebase באחת מהדרכים הבאות. כברירת מחדל, הפלאגין של fastlane מחפש פרטי כניסה מ-CLI של Firebase אם לא נעשה שימוש בשיטת אימות אחרת.
שלב 3. הגדרת Fastfile והפצת האפליקציה
- בנתיב
./fastlane/Fastfile
, מוסיפים בלוקfirebase_app_distribution
. משתמשים בפרמטרים הבאים כדי להגדיר את ההפצה:הפרמטרים של firebase_app_distribution app
חובה: מזהה האפליקציה ב-Firebase. אפשר למצוא את מזהה האפליקציה במסוף Firebase, בדף General Settings.
app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token
אסימון רענון שמודפס כשמאמתים את סביבת ה-CI באמצעות ה-CLI Firebase (מידע נוסף זמין במאמר שימוש ב-CLI עם מערכות CI).
service_credentials_file
הנתיב לקובץ ה-JSON של חשבון השירות ב-Google. למעלה מוסבר איך לבצע אימות באמצעות פרטי כניסה של חשבון שירות.
android_artifact_type
מציין את סוג הקובץ של Android (APK או AAB).
android_artifact_path
מחליפה את
apk_path
(הוצאה משימוש). הנתיב המוחלט לקובץ ה-APK או ה-AAB שרוצים להעלות. אם לא צוין מיקום, המערכת של fastlane תזהה את המיקום של הקובץ מהנתיב שבו הוא נוצר.release_notes
release_notes_file
נתוני הגרסה של גרסת ה-build הזו.
אפשר לציין את הערות המוצר ישירות:
release_notes: "Text of release notes"
לחלופין, אפשר לציין את הנתיב לקובץ טקסט פשוט:
release_notes_file: "/path/to/release-notes.txt"
testers
testers_file
כתובות האימייל של הבוחנים שרוצים להזמין.
אפשר לציין את הבודקים כרשימה של כתובות אימייל שמופרדות בפסיקים:
testers: "ali@example.com, bri@example.com, cal@example.com"
לחלופין, אפשר לציין את הנתיב לקובץ טקסט פשוט שמכיל רשימה של כתובות אימייל שמופרדות בפסיקים:
testers_file: "/path/to/testers.txt"
groups
groups_file
קבוצות הבודקים שרוצים להזמין (מידע נוסף זמין במאמר ניהול בודקים). הקבוצות מצוינות באמצעות
כינויים של קבוצות , שאפשר לחפש במסוף Firebase.אפשר לציין את הקבוצות כרשימה מופרדת בפסיקים:
groups: "qa-team, trusted-testers"
לחלופין, אפשר לציין את הנתיב לקובץ טקסט פשוט שמכיל רשימה של שמות קבוצות מופרדים בפסיקים:
groups_file: "/path/to/groups.txt"
test_devices
test_devices_file
סוגי ההפצה הבאים הם חלק מתכונת הבטא של הבודק האוטומטי.
מכשירי הבדיקה שבהם רוצים להפיץ את גרסאות ה-build (מידע נוסף זמין בקטע בדיקות אוטומטיות).
אפשר לציין את המכשירים לבדיקה כרשימה של מכשירים לבדיקה מופרדים בנקודה-פסיק:
test_devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
לחלופין, אפשר לציין את הנתיב לקובץ טקסט פשוט שמכיל רשימה של מכשירי בדיקה המופרדים בנקודה-פסיק:
test_devices_file: "/path/to/test-devices.txt"
test_username
שם המשתמש להתחברות אוטומטית לשימוש במהלך הבדיקות האוטומטיות.
test_password
test_password_file
הסיסמה להתחברות אוטומטית לשימוש במהלך הבדיקות האוטומטיות.
לחלופין, אפשר לציין את הנתיב לקובץ טקסט פשוט שמכיל סיסמה:
test_password_file: "/path/to/test-password.txt"
test_username_resource
שם המשאב של שדה שם המשתמש להתחברות אוטומטית, שישמש במהלך הבדיקות האוטומטיות.
test_password_resource
שם המשאב של שדה הסיסמה לכניסה אוטומטית, שישמש במהלך הבדיקות האוטומטיות.
test_non_blocking
להריץ בדיקות אוטומטיות באופן אסינכרוני. תוצאות הבדיקה האוטומטיות מופיעות במסוף Firebase.
debug
דגל בוליאני. אפשר להגדיר את הערך הזה ל-
true
כדי להדפיס פלט מפורט של ניפוי באגים.
platform :android do desc "My awesome app" lane :distribute do build_android_app(task: "bundle", ...) # build_android_app is a built-in fastlane action. release = firebase_app_distribution( app: "1:123456789:android:abcd1234", testers: "tester1@company.com, tester2@company.com", release_notes: "Lots of amazing new features to test out!", android_artifact_type: "AAB" ) end end
כדי שה-build יהיה זמין לבודקים, צריך להריץ את הנתיב שלך:
fastlane <lane>
הערך המוחזר של הפעולה הוא גיבוב (hash) שמייצג את הגרסה שהועלתה.
הגיבוב הזה זמין גם באמצעות lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]
.
מידע נוסף על השדות הזמינים בגיבוב הזה זמין במאמרי העזרה של API ל-REST.
הפלאגין של fastlane יוצר את הקישורים הבאים אחרי העלאת הגרסה. הקישורים האלה עוזרים לכם לנהל קובצי בינארי ולוודא שבדיקות ומפתחים אחרים מקבלים את הגרסה הנכונה:
- קישור למסוף Firebase שבו מוצגת גרסה יחידה. תוכלו לשתף את הקישור הזה עם מפתחים אחרים בארגון.
- קישור לגרסה באפליקציית הבודקים (אפליקציית נייטיב ל-Android) שמאפשר לבודקים לראות את נתוני הגרסה ולהתקין את האפליקציה במכשיר. כדי להשתמש בקישור, למבצע הבדיקה צריכה להיות גישה למהדורה.
- קישור חתום שמאפשר להוריד ולהתקין ישירות את קובץ הבינארי של האפליקציה (קובץ APK או AAB). תוקף הקישור יפוג אחרי שעה אחת.
אחרי שמפיצים את ה-build, הוא זמין בלוח הבקרה App Distribution במסוף Firebase למשך 150 יום. 30 יום לפני שתוקף ה-build יפוג, תופיע הודעה על תפוגה במסוף וברשימת ה-builds של הבוחן במכשיר הבדיקה שלו.
בודקים שלא הוזמנו בעבר לבדוק את האפליקציה יקבלו הזמנה באימייל כדי להתחיל. בודקים קיימים מקבלים התראות באימייל על כך שגרסת build חדשה מוכנה לבדיקה. כדי ללמוד איך להתקין את אפליקציית הבדיקה, ראו מדריך להגדרת בודקים. אתם יכולים לעקוב אחרי הסטטוס של כל בודק כדי לבדוק אם הוא קיבל את ההזמנה ואם הוא הוריד את האפליקציה במסוף Firebase.
(אופציונלי) כדי להגדיל באופן אוטומטי את מספר ה-build בכל פעם שיוצרים גרסה חדשה ב-App Distribution, אפשר להשתמש בפעולה firebase_app_distribution_get_latest_release
ובתוסף increment_version_code
של fastlane, למשל.
הקוד הבא הוא דוגמה לאופן שבו אפשר להגדיל אוטומטית את מספר ה-build:
lane :increment_version do
latest_release = firebase_app_distribution_get_latest_release(
app: "<your Firebase app ID>"
)
increment_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })
end
למידע נוסף על הפעולה firebase_app_distribution_get_latest_release
, ראו איך מקבלים מידע על הגרסה האחרונה של האפליקציה.
שלב 4 (אופציונלי). ניהול הבודקים של ההפצה
אתם יכולים להוסיף ולהסיר בודקים מהפרויקט או מהקבוצה באמצעות הקובץ Fastfile
או על ידי הרצה ישירה של פעולות בנתיב מהיר. הפעלת פעולות ישירות מבטלת את הערכים שהוגדרו ב-Fastfile
.
אחרי שמוסיפים בודק לפרויקט Firebase, אפשר להוסיף אותו לגרסאות ספציפיות. לבודקים שמסירים מפרויקט Firebase אין יותר גישה לגרסאות הפרויקט, אבל יכול להיות שהם ימשיכו לקבל גישה לגרסאות האלה למשך חלון זמן מסוים.
אם יש לכם מספר גדול של בודקים, כדאי להשתמש בקבוצות.
שימוש ב-Fastfile
# Use lanes to add or remove testers from a project. lane(:add_testers) do firebase_app_distribution_add_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) add testers to this group ) end lane(:remove_testers) do firebase_app_distribution_remove_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) remove testers from this group only ) end
# Add or remove testers with the terminal
$ fastlane add_testers
$ fastlane remove_testers
הפעלת פעולות ב-Fastlane
fastlane run firebase_app_distribution_create_group display_name:"QA Team" alias:"qa-team"
fastlane run firebase_app_distribution_add_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_delete_group alias:"qa-team"
אפשר גם לציין את הבדיקות באמצעות --file="/path/to/testers.txt
במקום --emails
.
המשימות firebase_app_distribution_add_testers
ו-firebase_app_distribution_remove_testers
מקבלות גם את הארגומנטים הבאים:
project_name
: מספר הפרויקט ב-Firebase.group_alias
(אופציונלי): אם מציינים את השדה הזה, הבודקים מצורפים לקבוצה שצוינה (או שהם מוסרים ממנה).service_credentials_file
: הנתיב לקובץ פרטי הכניסה לשירות Google.firebase_cli_token
: אסימון אימות ל-CLI של Firebase.
הערכים service_credentials_file
ו-firebase_cli_token
הם אותם ארגומנטים שבהם משתמשת פעולת ההעלאה.
שלב 5 (אופציונלי). איך מקבלים מידע על הגרסה האחרונה של האפליקציה
אפשר להשתמש בפעולה firebase_app_distribution_get_latest_release
כדי לאחזר מידע על הגרסה האחרונה של האפליקציה ב'הפצת אפליקציות', כולל פרטי גרסת האפליקציה, הערות לגרסה וזמן היצירה. תרחישים לדוגמה כוללים הגדלה אוטומטית של הגרסה והעברת הערות המוצר מהגרסה הקודמת.
ערך ההחזרה של הפעולה הוא גיבוב שמייצג את הגרסה האחרונה.
הגיבוב הזה זמין גם באמצעות lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]
.
מידע נוסף על השדות הזמינים בגיבוב הזה זמין במסמכי התיעוד של ה-API ל-REST.
פרמטרים
הפרמטרים של firebase_app_distribution_get_latest_release | |
---|---|
app
|
חובה: מזהה האפליקציה ב-Firebase. אפשר למצוא את מזהה האפליקציה במסוף Firebase, בדף General Settings. app: "1:1234567890:android:0a1b2c3d4e5f67890" |
firebase_cli_token
|
אסימון רענון שמודפס כשמאמתים את סביבת ה-CI באמצעות ה-CLI של Firebase (מידע נוסף זמין במאמר שימוש ב-CLI עם מערכות CI). |
service_credentials_file
|
הנתיב לקובץ ה-JSON של חשבון השירות ב-Google. למידע נוסף על אימות באמצעות פרטי כניסה של חשבון שירות, ראו למעלה. |
debug
|
דגל בוליאני. אפשר להגדיר את הערך הזה ל- |
השלבים הבאים
כדאי להטמיע משוב מתוך האפליקציה כדי לאפשר לבודקים לשלוח בקלות משוב על האפליקציה (כולל צילומי מסך).
איך מציגים לבודקים התראות בתוך האפליקציה כשגרסאות build חדשות של האפליקציה זמינות להתקנה?
שיטות מומלצות להפצת אפליקציות ל-Android למבדקי בקרת איכות באמצעות CI/CD