הפצת אפליקציות ל-Android לבודקים באמצעות Gradle


אפשר לשלב את App Distribution בתהליך ה-build של Android באמצעות App Distribution פלאגין של Gradle. הפלאגין מאפשר לכם לציין את הבודקים נתוני הגרסה בקובץ Gradle של האפליקציה, מאפשרים לך להגדיר הפצות כדי ליצור סוגי build שונים וגרסאות שונות של האפליקציה.

במדריך הזה מוסבר איך להפיץ חבילות Android App Bundle (AAB) למפתחים לצורך בדיקה באמצעות הפלאגין App Distribution של Gradle.

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

  • להריץ חבילות APK שעברו אופטימיזציה (ש-Google Play מספקת) ומותאמות למכשירים של הבוחנים.

  • זיהוי בעיות ספציפיות למכשיר וניפוי באגים שלהן.

  • בדיקת תכונות של App Bundle כמו העברת פיצ'רים ב-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 אחד מהתפקידים הבאים: ––

לפני שמתחילים

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

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

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

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

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

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

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

    1. במסוף Firebase, עוברים אל Project settings ובוחרים בכרטיסייה Integrations.

    2. בכרטיס Google Play, לוחצים על Link (קישור).
      אם כבר יש לכם קישורים אל Google Play, לוחצים על ניהול במקום זאת.

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

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

שלב 1. הגדרת הפרויקט ל-Android

  1. בקובץ Gradle ברמה הבסיסית (ברמת הפרויקט) (<project>/build.gradle.kts או <project>/build.gradle), מוסיפים את הפלאגין App Distribution של Gradle כיחס תלות:

    Kotlin

    plugins {
        // ...
        id("com.android.application") version "7.3.0" apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id("com.google.gms.google-services") version "4.4.2" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "5.0.0" apply false
    }

    Groovy

    plugins {
        // ...
        id 'com.android.application' version '7.3.0' apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id 'com.google.gms.google-services' version '4.4.2' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '5.0.0' apply false
    }
  2. בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל <project>/<app-module>/build.gradle.kts או <project>/<app-module>/build.gradle), מוסיפים את הפלאגין App Distribution של Gradle:

    Kotlin

    plugins {
      id("com.android.application")
    
      // Make sure that you have the Google services Gradle plugin
      id("com.google.gms.google-services")
    
      // Add the App Distribution Gradle plugin
      id("com.google.firebase.appdistribution")
    }

    Groovy

    plugins {
      id 'com.android.application'
    
      // Make sure that you have the Google services Gradle plugin
      id 'com.google.gms.google-services'
    
      // Add the App Distribution Gradle plugin
      id 'com.google.firebase.appdistribution'
    }
  3. אם עובדים מאחורי שרת Proxy או חומת אש של ארגון, מוסיפים את הפרטים הבאים מאפיין מערכת Java שמאפשר ל-App Distribution להעלות את ההפצות שלך ל-Firebase:

    -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
    

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

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

שלב 3. הגדרת מאפייני ההפצה

בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל) <project>/<app-module>/build.gradle.kts או <project>/<app-module>/build.gradle), מגדירים את App Distribution על ידי הוספה של לפחות קטע firebaseAppDistribution אחד.

לדוגמה, כדי להפיץ את ה-build של release לבודקים, צריך לפעול לפי השלבים הבאים הוראות::

Kotlin

import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      getByName("release") {
          firebaseAppDistribution {
              artifactType = "AAB"
              releaseNotesFile = "/path/to/releasenotes.txt"
              testers = "ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

Groovy

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType="AAB"
              releaseNotesFile="/path/to/releasenotes.txt"
              testers="ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

אפשר להגדיר את App Distribution בשביל ליצור סוגים וטעמים של מוצרים.

לדוגמה, כדי להפיץ גרסאות build של debug ו-release בגרסת הדגמה ובגרסה המלאה של המוצר, פועלים לפי ההוראות הבאות:

Kotlin

import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      getByName("debug") {...}
      getByName("release") {...}
  }

  flavorDimensions += "version"
  productFlavors {
      create("demo") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for demo version"
              testers = "demo@testers.com"
          }
      }
      create("full") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for full version"
              testers = "full@testers.com"
          }
      }
  }

  // ...
}

Groovy

android {

  // ...

  buildTypes {
      debug {...}
      release {...}
  }

  flavorDimensions "version"
  productFlavors {
      demo {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for demo version"
              testers="demo@testers.com"
          }
      }
      full {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for full version"
              testers="full@testers.com"
          }
      }
  }

  // ...
}

משתמשים בפרמטרים הבאים כדי להגדיר את ההפצה:

App Distribution פרמטרים של build
appId

מזהה האפליקציה ב-Firebase. נדרש רק אם אין לך את הפלאגין של Google Services Gradle הותקן. ניתן למצוא את מזהה האפליקציה ב: בקובץ google-services.json או המסוף Firebase ב- דף ההגדרות הכלליות. הערך בקובץ build.gradle מבטל את הערך שיוצא מהפלאגין google-services.

appId="1:1234567890:android:321abc456def7890"
serviceCredentialsFile

הנתיב לקובץ ה-JSON של המפתח הפרטי של חשבון השירות. נדרש בלבד אם משתמשים באימות של חשבון שירות.

artifactType

מציין את סוג הקובץ של האפליקציה. אפשר להגדיר לערך "AAB" או "APK".

artifactPath

הנתיב האבסולוטי ל-APK או לקובץ AAB שרוצים להעלות.

releaseNotes או releaseNotesFile

נתוני גרסה בשביל ה-build הזה.

אפשר לציין את הערות המוצר ישירות או את הנתיב לקובץ טקסט פשוט.

testers או testersFile

כתובות האימייל של הבודקים שברצונך להפיץ את גרסאות ה-build ל.

ניתן לציין את הבודקים כרשימת כתובות אימייל מופרדת בפסיקים כתובות:

testers="ali@example.com, bri@example.com, cal@example.com"

לחלופין, אפשר לציין את הנתיב לקובץ שמכיל רשימה של כתובות אימייל מופרדות בפסיקים:

testersFile="/path/to/testers.txt"
groups או groupsFile

קבוצות הבודקים שאליהן רוצים להפיץ את גרסאות ה-build (מידע נוסף זמין כאן: ניהול הבודקים). קבוצות מוגדרות באמצעות כתובות אימייל חלופיות, שאותן אפשר נמצאים בכרטיסייה בודקים ב-Firebase המסוף App Distribution.

אפשר לציין את הקבוצות כרשימה של כינויים של קבוצות, מופרדים בפסיקים:

groups="qa-team, android-testers"

לחלופין, אפשר לציין את הנתיב לקובץ שמכיל רשימה של כינויים של קבוצות, מופרדים בפסיקים:

groupsFile="/path/to/tester-groups.txt"
testDevices או testDevicesFile

סוגי ההפצה הבאים הם חלק מתכונת הבטא של בודקים אוטומטיים.

מכשירי הבדיקה שאליהם רוצים להפיץ גרסאות build (מידע נוסף זמין במאמר בדיקות אוטומטיות).

אפשר לציין את מכשירי הבדיקה כרשימה המופרדת באמצעות נקודה-פסיק של מפרטי המכשיר:

testDevices="model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

לחלופין, אפשר לציין את הנתיב לקובץ שמופרד באמצעות נקודה-פסיק. רשימה של מפרטי מכשירים:

testDevicesFile="/path/to/testDevices.txt"
testUsername

שם המשתמש להתחברות אוטומטית לשימוש במהלך הבדיקות האוטומטיות.

testPassword או testPasswordFile

הסיסמה להתחברות האוטומטית, שתשמש במהלך בדיקות אוטומטיות.

לחלופין, אפשר לציין את הנתיב לקובץ טקסט פשוט שמכיל סיסמה:

testPasswordFile="/path/to/testPassword.txt"
testUsernameResource

שם המשאב של שדה שם המשתמש להתחברות אוטומטית, שישמש במהלך הבדיקות האוטומטיות.

testPasswordResource

שם המשאב של שדה הסיסמה להתחברות אוטומטית, לשימוש במהלך בדיקות אוטומטיות.

testNonBlocking

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

stacktrace

מדפיסה את דוח הקריסות לחריגים של המשתמשים. זה שימושי כאשר בעיות בניפוי באגים.

שלב 4. הפצת האפליקציה לבודקים

  1. לבסוף, כדי לארוז את אפליקציית הבדיקה ולהזמין בודקים, יוצרים את היעדים BUILD-VARIANT ו-appDistributionUploadBUILD-VARIANT באמצעות מעטפת Gradle של הפרויקט, כאשר BUILD-VARIANT הוא סוג המוצר וה-build האופציונליים שהגדרתם בשלב הקודם. מידע נוסף על טעמי המוצר זמין במאמר הגדרת וריאציות גרסאות build.

    לדוגמה, כדי להפיץ את האפליקציה באמצעות וריאנט ה-build של release, צריך להריץ את הפקודה הבאה:

    ./gradlew bundleRelease appDistributionUploadRelease
    

    לחלופין, אם ביצעתם אימות באמצעות חשבון Google ולא סיפקתם פרטי כניסה בקובץ ה-build של Gradle, צריך לכלול את המשתנה FIREBASE_TOKEN:

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew bundleRelease appDistributionUploadRelease
    
  2. אפשר גם לשנות את הערכים שהוגדרו בקובץ build.gradle על ידי העברת ארגומנטים בשורת הפקודה בצורת --<property-name>=<property-value>. לדוגמה:

    • כדי להעלות גרסת build לניפוי באגים אל App Distribution:

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="AAB"
    • כדי להזמין בודקים נוספים או להסיר בודקים קיימים מ-Firebase project:

      ./gradlew appDistributionAddTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      ./gradlew appDistributionRemoveTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"

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

    אפשר גם לציין בודקים באמצעות --file="/path/to/testers.txt" במקום --emails.

    המשימות appDistributionAddTesters ו-appDistributionRemoveTesters מקבלות גם את הארגומנטים הבאים:

    • projectNumber: מספר הפרויקט ב-Firebase.

    • serviceCredentialsFile: הנתיב לקובץ פרטי הכניסה של שירות Google. זהו אותו ארגומנט שמשמש את פעולת ההעלאה.

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

  • firebase_console_uri – קישור למסוף Firebase שמציג במהדורה אחת. אפשר לשתף את הקישור הזה עם מפתחים אחרים בארגון.
  • testing_uri – קישור לגרסה באפליקציית הבודקים (אפליקציה מותאמת ל-Android) שמאפשרת לבודקים לצפות בגרסה ולהתקין את האפליקציה במכשיר שלהם. לבודק נדרשת גישה אל את פריט התוכן כדי להשתמש בקישור.
  • binary_download_uri – קישור חתום שמוריד ומתקין ישירות את קובץ הבינארי של האפליקציה (קובץ APK או AAB). הקישור יפוג לאחר שעה.

אחרי שתפיצו את ה-build, הוא יהיה זמין במרכז הבקרה App Distribution במסוף Firebase למשך 150 ימים (חמישה חודשים). 30 יום לפני שתוקף ה-build יפוג, תופיע הודעה על תפוגת התוקף במסוף וברשימת ה-builds של הבוחן במכשיר הבדיקה שלו.

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

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

השלבים הבאים