במדריך הזה מוסבר איך להפיץ גרסאות build של AAB לבודקים באמצעות fastlane, פלטפורמת קוד פתוח שמבצעת אוטומטית את תהליך הבנייה וההפצה של אפליקציות ל-iOS ול-Android. הוא פועל לפי הוראות פשוטות שמוגדרות ב-Fastfile
. אחרי שמגדירים את fastlane ואת Fastfile
, אפשר לשלב את App Distribution בהגדרות של fastlane.
App Distribution משתלב עם שירות שיתוף האפליקציות הפנימי של Google Play כדי לעבד את קובצי ה-AAB שאתם מעלים ולהציג חבילות APK שעברו אופטימיזציה לתצורות המכשירים של הבודקים. הפצה של קובצי AAB מאפשרת לכם:
להריץ חבילות APK שעברו אופטימיזציה (שמוגשות על ידי Google Play) והותאמו למכשירים של בודקי האפליקציה.
זיהוי וניפוי באגים של בעיות ספציפיות למכשיר.
בדיקת תכונות של חבילות אפליקציות כמו Play Feature Delivery ו-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. בסוף תהליך העבודה הזה, תהיה לכם אפליקציית Firebase ל-Android בפרויקט Firebase.
אם אתם לא משתמשים במוצרים אחרים של Firebase, אתם צריכים רק ליצור פרויקט ולרשום את האפליקציה. אם תחליטו להשתמש במוצרים נוספים, הקפידו לבצע את כל השלבים במאמר הוספת Firebase לפרויקט Android.
כדי ליצור קישור מ-Firebase ל-Google Play ולהעלות קובצי AAB, צריך לוודא שהאפליקציה עומדת בדרישות הבאות:
האפליקציה ב-Google Play והאפליקציה ל-Android ב-Firebase רשומות עם אותו שם חבילה.
האפליקציה ב-Google Play מוגדרת במרכז הבקרה של האפליקציות ומופצת באחד מהמסלולים של Google Play (בדיקה פנימית, בדיקה בקבוצה מוגדרת, בדיקה של הקהל הרחב או ייצור).
הבדיקה של האפליקציה ב-Google Play הושלמה והאפליקציה פורסמה. האפליקציה פורסמה אם בעמודה סטטוס האפליקציה מופיע אחד מהסטטוסים הבאים: בדיקה פנימית (לא בדיקה פנימית של גרסת טיוטה), בדיקה בקבוצה מוגדרת, בדיקה של הקהל הרחב או סביבת ייצור.
לקשר את אפליקציית Firebase ל-Android לחשבון המפתח שלכם ב-Google Play:
במסוף Firebase, עוברים אל
(הגדרות הפרויקט) ובוחרים בכרטיסייה Integrations (שילובים). Project settings בכרטיס Google Play, לוחצים על Link (קישור).
אם כבר יש לכם קישורים ל-Google Play, לוחצים על Manage (ניהול) במקום זאת.פועלים לפי ההוראות שמופיעות במסך כדי להפעיל את השילוב ולבחור אילו אפליקציות ל-Android ב-Firebase לקשר ל-Google Play.App Distribution
שלב 1. הגדרת fastlane
כדי להוסיף את App Distribution להגדרות של fastlane, מריצים את הפקודה הבאה מתיקיית הבסיס של פרויקט 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
חובה: מזהה האפליקציה ב-Firebase. אפשר למצוא את מזהה האפליקציה במסוף Firebase, בדף ההגדרות הכלליות.
app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token
טוקן רענון שמוצג כשמאמתים את סביבת ה-CI באמצעות Firebase CLI (מידע נוסף זמין במאמר שימוש ב-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
כדי שהגרסה תהיה זמינה לבודקים, מריצים את הנתיב:
fastlane <lane>
הערך שמוחזר מהפעולה הוא גיבוב שמייצג את הגרסה שהועלתה.
אפשר גם להשתמש ב-lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]
כדי לראות את הגיבוב הזה.
מידע נוסף על השדות הזמינים בגיבוב הזה מופיע במסמכי התיעוד של REST API.
התוסף fastlane מפיק את הקישורים הבאים אחרי העלאת הגרסה. הקישורים האלה עוזרים לכם לנהל קבצים בינאריים ולוודא שלבודקים ולמפתחים אחרים יש את הגרסה הנכונה:
- קישור למסוף Firebase שבו מוצג פריט תוכן יחיד. אתם יכולים לשתף את הקישור הזה עם מפתחים אחרים בארגון שלכם.
- קישור לגרסה בחוויית הבודקים (אפליקציה מקורית ל-Android) שמאפשר לבודקים לראות את הערות הגרסה ולהתקין את האפליקציה במכשיר שלהם. הבודק צריך גישה לגרסה כדי להשתמש בקישור.
- קישור חתום שמוריד ומתקין ישירות את הקובץ הבינארי של האפליקציה (קובץ APK או AAB). התוקף של הקישור יפוג אחרי שעה.
אחרי שמפיצים את הגרסה, היא זמינה בלוח הבקרה App Distribution של Firebase Console למשך 150 ימים. כשנותרו 30 יום עד לתפוגה של הגרסה, מופיעה הודעת תפוגה במסוף וברשימת הגרסאות של הבודק במכשיר הבדיקה.
בודקים שלא הוזמנו קודם לבדוק את האפליקציה מקבלים הזמנות באימייל כדי להתחיל. בודקים קיימים מקבלים התראות באימייל על כך שגרסת build חדשה מוכנה לבדיקה. במדריך להגדרת בודקים מוסבר איך להתקין את אפליקציית הבדיקה. אתם יכולים לעקוב אחרי הסטטוס של כל בודק כדי לדעת אם הוא אישר את ההזמנה ואם הוא הוריד את האפליקציה ב-Firebase Console.
(אופציונלי) כדי להגדיל אוטומטית את מספר ה-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
הקובץ או על ידי הפעלת פעולות fastlane ישירות. הפעלת פעולות ישירות מבטלת את הערכים שהוגדרו ב-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
כדי לאחזר מידע על הגרסה האחרונה של האפליקציה ב-App Distribution, כולל פרטים על גרסת האפליקציה, הערות לגבי הגרסה וזמן היצירה. תרחישי שימוש
כוללים הגדלה אוטומטית של הגרסה והעברה של הערות הגרסה מהגרסה הקודמת.
הערך שמוחזר מהפעולה הוא גיבוב שמייצג את הגרסה האחרונה.
אפשר גם להשתמש ב-lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]
כדי לראות את הגיבוב הזה.
מידע נוסף על השדות הזמינים בגיבוב הזה מופיע במסמכי התיעוד של REST API.
פרמטרים
פרמטרים של firebase_app_distribution_get_latest_release | |
---|---|
app
|
חובה: מזהה האפליקציה ב-Firebase. אפשר למצוא את מזהה האפליקציה במסוף Firebase, בדף ההגדרות הכלליות. app: "1:1234567890:android:0a1b2c3d4e5f67890" |
firebase_cli_token
|
טוקן רענון שמוצג כשמאמתים את סביבת ה-CI באמצעות Firebase CLI (מידע נוסף זמין במאמר שימוש ב-CLI עם מערכות CI). |
service_credentials_file
|
הנתיב לקובץ ה-JSON של חשבון השירות שלכם ב-Google. למעלה מוסבר איך מבצעים אימות באמצעות פרטי כניסה של חשבון שירות. |
debug
|
תכונה ניסיונית בוליאנית. אפשר להגדיר את הערך הזה ל- |
השלבים הבאים
כדאי להטמיע משוב מתוך האפליקציה כדי להקל על הבודקים לשלוח משוב על האפליקציה (כולל צילומי מסך).
כאן מוסבר איך להציג התראות בתוך האפליקציה לבודקים כשגרסאות build חדשות של האפליקציה זמינות להתקנה.
שיטות מומלצות להפצת אפליקציות ל-Android לבודקי QA באמצעות CI/CD