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

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

הפצת אפליקציות משתלבת עם שירות שיתוף האפליקציות הפנימי של Google Play כדי לעבד את ה-AABs שאתה מעלה ולהגיש חבילות APK המותאמות לתצורות המכשירים של הבודקים שלך. הפצת AABs מאפשרת לך לבצע את הפעולות הבאות:

  • הפעל חבילות APK מותאמות (מוגשות על ידי Google Play) המותאמות למכשירים של הבודקים שלך.

  • חשוף וניפוי באגים של בעיות ספציפיות למכשיר.

  • בדוק תכונות של חבילת אפליקציות כמו הצגת תכונות Play ו- Play Asset Delivery .

  • צמצם את גודל ההורדות עבור הבודקים שלך.

הרשאות נדרשות

כדי להעלות AABs להפצת אפליקציות, עליך לקשר את אפליקציית Firebase שלך ​​לאפליקציה ב-Google Play . עליך להיות בעל רמת הגישה הנדרשת כדי לבצע פעולות אלה.

אם אין לך את הגישה הדרושה ל-Firebase, תוכל לבקש מבעל פרויקט Firebase להקצות לך את התפקיד הרלוונטי דרך הגדרות IAM של קונסולת Firebase . אם יש לך שאלות לגבי גישה לפרויקט Firebase שלך, כולל איתור או הקצאת בעלים, עיין בשאלות הנפוצות של "הרשאות וגישה לפרויקטים של Firebase" .

הטבלה הבאה חלה על קישור אפליקציית Firebase לאפליקציה ב-Google Play, כמו גם העלאת AABs.

פעולה במסוף Firebase נדרשת הרשאת IAM תפקידי IAM הכוללים הרשאות נדרשות כברירת מחדל תפקידים נדרשים נוספים
קשר אפליקציית Firebase לאפליקציה ב-Google Play firebase.playLinks.update אחד מהתפקידים הבאים: גישה לחשבון מפתח ב-Google Play כמנהל מערכת
העלה AABs להפצת אפליקציות firebaseappdistro.releases.update אחד מהתפקידים הבאים: ––

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

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

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

  2. כדי ליצור קישור Firebase ל-Google Play ולהעלות AABs, ודא שהאפליקציה שלך עומדת בדרישות הבאות:

    • האפליקציה ב-Google Play ואפליקציית Firebase Android רשומות שניהם באותו שם חבילה.

    • האפליקציה ב-Google Play מוגדרת בלוח המחוונים של האפליקציה ומופצת לאחד ממסלולי Google Play (בדיקות פנימיות, בדיקות סגורות, בדיקות פתוחות או הפקה).

    • סקירת האפליקציה ב-Google Play הושלמה והאפליקציה פורסמה. האפליקציה שלך מתפרסמת אם עמודת סטטוס האפליקציה מציגה את אחד מהסטטוסים הבאים: בדיקה פנימית (לא טיוטה בדיקה פנימית), בדיקה סגורה, בדיקה פתוחה או הפקה.

  3. קשר את אפליקציית Firebase Android שלך לחשבון המפתח שלך ב-Google Play:

    1. במסוף Firebase, עבור אל הגדרות פרויקט , ולאחר מכן בחר בכרטיסייה אינטגרציות .

    2. בכרטיס Google Play , לחץ על קישור .
      אם כבר יש לך קישורים ל-Google Play, לחץ על נהל במקום זאת.

    3. עקוב אחר ההוראות שעל המסך כדי להפעיל את שילוב הפצת האפליקציות ובחר אילו אפליקציות Firebase Android לקשר ל-Google Play.

    למידע נוסף על קישור ל-Google Play .

שלב 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(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>

ערך ההחזרה של הפעולה הוא 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 כדי להדפיס פלט ניפוי באגים מילולי.

הצעדים הבאים