מסמך זה מתאר כיצד להפיץ בניית APK לבודקים באמצעות fastlane , פלטפורמת קוד פתוח המאפשרת בנייה ושחרור של יישומי iOS ו-Android אוטומטית. מסמך זה עוקב אחר הוראות המוגדרות ב- Fastfile
. לאחר שתגדיר את fastlane ואת Fastfile
שלך, תוכל לשלב את הפצת אפליקציות עם תצורת fastlane שלך.
לפני שאתה מתחיל
אם עדיין לא עשית זאת, הוסף את Firebase לפרויקט Android שלך .
אם אינך משתמש במוצרי Firebase אחרים, עליך רק ליצור פרויקט ולרשום את האפליקציה שלך. עם זאת, אם תחליט להשתמש במוצרים נוספים בעתיד, הקפד להשלים את כל השלבים בדף המקושר למעלה.
שלב 1. הגדר fastlane
כדי להוסיף הפצת אפליקציות לתצורת fastlane שלך, הפעל את הפקודה הבאה מהשורש של פרויקט האנדרואיד שלך:
fastlane add_plugin firebase_app_distribution
אם הפקודה מבקשת ממך אפשרות, בחר
Option 3: RubyGems.org
.
שלב 2. אימות באמצעות Firebase
לפני שתוכל להשתמש בתוסף fastlane, תחילה עליך לבצע אימות עם פרויקט Firebase שלך באחת מהדרכים הבאות. כברירת מחדל, הפלאגין fastlane מחפש אישורים מה-CLI של Firebase אם לא נעשה שימוש בשיטת אימות אחרת.
אימות באמצעות חשבון שירות מאפשר לך להשתמש בפלאגין באופן גמיש עם מערכת האינטגרציה הרציפה שלך (CI). ישנן שתי דרכים לספק אישורי חשבון שירות:
- העבר את קובץ מפתח חשבון השירות שלך לפעולת
firebase_app_distribution
. ייתכן שתמצא שיטה זו נוחה אם כבר יש לך קובץ מפתח של חשבון השירות שלך בסביבת הבנייה שלך. - הגדר את משתנה הסביבה
GOOGLE_APPLICATION_CREDENTIALS
כך שיצביע על קובץ מפתח חשבון השירות שלך. ייתכן שתעדיף שיטה זו אם כבר מוגדרת לך אישורי ברירת מחדל של יישומים (ADC) עבור שירות אחר של Google (למשל, Google Cloud).
- במסוף Google Cloud, בחר את הפרויקט שלך וצור חשבון שירות חדש.
- הוסף את תפקיד ה- Firebase App Distribution Admin .
- צור מפתח json פרטי והעבר את המפתח למיקום נגיש לסביבת הבנייה שלך. הקפד לשמור את הקובץ הזה במקום בטוח , מכיוון שהוא מעניק גישת מנהל להפצת אפליקציות בפרויקט Firebase שלך.
- דלג על שלב זה אם יצרת את האפליקציה שלך לאחר 20 בספטמבר, 2019: במסוף Google APIs, הפעל את Firebase App Distribution API. כשתתבקש, בחר את הפרויקט באותו שם כמו פרויקט Firebase שלך.
ספק או אתר את אישורי חשבון השירות שלך:
- כדי להעביר את מפתח חשבון השירות שלך לפעולת
firebase_app_distribution
של הליין שלך, הגדר את הפרמטרservice_credentials_file
עם הנתיב לקובץ JSON המפתח הפרטי שלך כדי לאתר את האישורים שלך עם ADC, הגדר את משתנה הסביבה
GOOGLE_APPLICATION_CREDENTIALS
לנתיב של קובץ ה-JSON המפתח הפרטי. לדוגמה:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
למידע נוסף על אימות עם ADC, קרא מתן אישורים ליישום שלך.
- כדי להעביר את מפתח חשבון השירות שלך לפעולת
ראה התחבר עם Firebase CLI לקבלת הוראות כיצד לאמת את הפרויקט שלך.
שלב 3. הגדר את Fastfile שלך והפיץ את האפליקציה שלך
- בנתיב
./fastlane/Fastfile
, הוסף בלוקfirebase_app_distribution
. השתמש בפרמטרים הבאים כדי להגדיר את ההפצה:פרמטרים של firebase_app_distribution 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
הערות גרסה עבור המבנה הזה.
אתה יכול לציין את הערות השחרור ישירות:
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
סוגי ההפצה הבאים הם חלק מתכונת הבטא של בודק אוטומטי .
מכשירי הבדיקה שאליהם ברצונך להפיץ builds (עיין בבדיקות אוטומטיות ).
אתה יכול לציין את התקני הבדיקה כרשימה מופרדת בנקודה-פסיק של התקני בדיקה:
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(...) # 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!" ) end end
כדי להפוך את המבנה זמין לבודקים, הפעל את המסלול שלך:
fastlane <lane>
ערך ההחזרה של הפעולה הוא hash המייצג את הגרסה שהועלתה. Hash זה זמין גם באמצעות lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]
. למידע נוסף על השדות הזמינים ב-hash זה, עיין בתיעוד של REST API .
הפלאגין של fastlane מוציא את הקישורים הבאים לאחר העלאת הגרסה. קישורים אלה עוזרים לך לנהל קבצים בינאריים ולהבטיח שלבודקים ומפתחים אחרים יש את המהדורה הנכונה:
- קישור למסוף Firebase המציג גרסה בודדת. אתה יכול לשתף את הקישור הזה עם מפתחים אחרים בארגון שלך.
- קישור לגרסה בחוויית הבוחן (אפליקציה מקורית לאנדרואיד) המאפשרת לבודקים לצפות בהערות גרסה ולהתקין את האפליקציה במכשיר שלהם. הבוחן צריך גישה לגרסה כדי להשתמש בקישור.
- קישור חתום שמוריד ומתקין את האפליקציה הבינארית ישירות (קובץ APK או AAB). הקישור יפוג לאחר שעה.
לאחר הפצת ה-build שלך, הוא זמין בלוח המחוונים של הפצת אפליקציות של מסוף Firebase למשך 150 יום. כאשר ה-build הוא 30 יום מתאריך פקיעת התפוגה, מופיעה הודעת תפוגה בקונסולה וברשימת ה-builds של הבוחן במכשיר הבדיקה שלו.
בודקים שלא הוזמנו בעבר לבדוק את האפליקציה מקבלים הזמנות בדוא"ל כדי להתחיל. בודקים קיימים מקבלים הודעות אימייל על כך שמבנה חדש מוכן לבדיקה. כדי ללמוד כיצד להתקין את אפליקציית הבדיקה, עיין במדריך להגדרת הבוחן . אתה יכול לעקוב אחר הסטטוס של כל בודק כדי לקבוע אם הוא קיבל את ההזמנה ואם הוא הוריד את האפליקציה במסוף 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
שלך או על ידי הפעלת פעולות 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 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
: אסימון אימות עבור Firebase CLI.
ה- service_credentials_file
וה- firebase_cli_token
הם אותם ארגומנטים המשמשים את פעולת ההעלאה.
שלב 5 (אופציונלי). קבל מידע על המהדורה האחרונה של האפליקציה שלך
אתה יכול להשתמש בפעולת firebase_app_distribution_get_latest_release
כדי להביא מידע על המהדורה האחרונה של האפליקציה שלך בהפצת האפליקציה, כולל מידע על גרסת האפליקציה, הערות גרסה וזמן יצירה. מקרי שימוש כוללים הגדלה אוטומטית של הגרסה והעברת הערות הגרסה מהגרסה הקודמת.
ערך ההחזר של הפעולה הוא hash המייצג את המהדורה האחרונה. Hash זה זמין גם באמצעות lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]
. למידע נוסף על השדות הזמינים ב-hash זה, עיין בתיעוד של 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 | דגל בוליאני. אתה יכול להגדיר זאת כ- |
הצעדים הבאים
הטמע משוב בתוך האפליקציה כדי להקל על הבודקים לשלוח משוב על האפליקציה שלך (כולל צילומי מסך).
למד כיצד להציג התראות בתוך האפליקציה לבודקים שלך כאשר ייצורים חדשים של האפליקציה שלך זמינים להתקנה.
למד שיטות עבודה מומלצות להפצת אפליקציות אנדרואיד לבודקי QA באמצעות CI/CD .