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

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

מדריך זה מתאר כיצד להפיץ חבילות APK לבודקים באמצעות הפלאגין App Distribution Gradle.

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

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

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

שלב 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.2.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.2.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 = "APK"
              releaseNotesFile = "/path/to/releasenotes.txt"
              testers = "ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

Groovy

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType="APK"
              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"
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 או testPasswordFile

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

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

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

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

testPasswordResource

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

testNonBlocking

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

stacktrace

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

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

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

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

    ./gradlew assembleRelease appDistributionUploadRelease
    

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

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

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

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="APK"
      
    • כדי להזמין בודקים נוספים או להסיר בודקים קיימים מפרויקט 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 ליד הבוחן בגרסה. ניתן לחדש הזמנה על ידי שליחתה מחדש באמצעות התפריט הנפתח בשורת הבוחן.

הצעדים הבאים