הפצת אפליקציות אנדרואיד לבודקים באמצעות fastlane

מסמך זה מתאר כיצד להפיץ בניית APK לבודקים באמצעות fastlane , פלטפורמת קוד פתוח המאפשרת בנייה ושחרור של יישומי iOS ו-Android אוטומטית. מסמך זה עוקב אחר הוראות המוגדרות ב- Fastfile . לאחר שתגדיר את fastlane ואת Fastfile שלך, תוכל לשלב את הפצת אפליקציות עם תצורת fastlane שלך.

לפני שאתה מתחיל

אם עדיין לא עשית זאת, הוסף את Firebase לפרויקט Android שלך .

אם אינך משתמש במוצרי Firebase אחרים, עליך רק ליצור פרויקט ולרשום את האפליקציה שלך. עם זאת, אם תחליט להשתמש במוצרים נוספים בעתיד, הקפד להשלים את כל השלבים בדף המקושר למעלה.

שלב 1. הגדר fastlane

  1. התקן והגדר Fastlane .

  2. כדי להוסיף הפצת אפליקציות לתצורת fastlane שלך, הפעל את הפקודה הבאה מהשורש של פרויקט האנדרואיד שלך:

    fastlane add_plugin firebase_app_distribution

    אם הפקודה מבקשת ממך אפשרות, בחר Option 3: RubyGems.org .

שלב 2. אימות באמצעות Firebase

לפני שתוכל להשתמש בתוסף fastlane, תחילה עליך לבצע אימות עם פרויקט Firebase שלך ​​באחת מהדרכים הבאות. כברירת מחדל, הפלאגין fastlane מחפש אישורים מה-CLI של Firebase אם לא נעשה שימוש בשיטת אימות אחרת.

שלב 3. הגדר את Fastfile שלך ​​והפיץ את האפליקציה שלך

  1. בנתיב ./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

דגל בוליאני. אתה יכול להגדיר זאת כ- true כדי להדפיס פלט ניפוי באגים מילולי.

הצעדים הבאים