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

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

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

הפצת אפליקציות משתלבת עם שירות שיתוף האפליקציות הפנימי של 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. הגדר את פרויקט האנדרואיד שלך

  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.1" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "4.1.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.1' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '4.1.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. אם אתה מאחורי פרוקסי או חומת אש ארגונית, הוסף את מאפיין מערכת Java הבא שמאפשר להפצת אפליקציות להעלות את ההפצות שלך ל-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 ), הגדר את הפצת אפליקציות על ידי הוספת לפחות סעיף firebaseAppDistribution אחד.

לדוגמה, כדי להפיץ את בניית 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"
          }
      }
  }

  // ...
}

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

לדוגמה, כדי להפיץ רכיבי 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"
          }
      }
  }

  // ...
}

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

פרמטרי בניית הפצת אפליקציות
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

הערות גרסה עבור המבנה הזה.

אתה יכול לציין את הערות השחרור ישירות או את הנתיב לקובץ טקסט רגיל.

testers או testersFile

כתובות הדוא"ל של הבודקים שאליהם ברצונך להפיץ builds.

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

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

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

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

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

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

groups="qa-team, android-testers"

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

groupsFile="/path/to/tester-groups.txt"
stacktrace

מדפיס את ה-stacktrace עבור חריגים של משתמשים. זה מועיל בעת איתור באגים.

testDevices או testDevicesFile

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

מכשירי הבדיקה שאליהם ברצונך להפיץ בונים (ראה בדיקות אוטומטיות ).

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

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

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

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

שם המשתמש לכניסה אוטומטית לשימוש במהלך בדיקות אוטומטיות .

testPassword

הסיסמה לכניסה אוטומטית לשימוש במהלך בדיקות אוטומטיות .

testUsernameResource

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

testPasswordResource

שם משאב עבור שדה הסיסמה לכניסה אוטומטית לשימוש במהלך בדיקות אוטומטיות .

testNonBlocking

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

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

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

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

    ./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> . לדוגמה:

    • כדי להעלות בניית ניפוי באגים להפצת אפליקציות:

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

      ./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 - קישור לגרסה בחוויית הבוחן (אפליקציה מקורית של אנדרואיד) המאפשרת לבודקים לצפות בהערות גרסה ולהתקין את האפליקציה במכשיר שלהם. הבוחן צריך גישה לגרסה כדי להשתמש בקישור.
  • binary_download_uri - קישור חתום שמוריד ומתקין ישירות את האפליקציה הבינארית (קובץ APK או AAB). הקישור יפוג לאחר שעה.

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

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

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

הצעדים הבאים