אפשר לשלב את App Distribution בתהליך ה-build של Android באמצעות App Distribution פלאגין של Gradle. הפלאגין מאפשר לכם לציין את הבודקים נתוני הגרסה בקובץ Gradle של האפליקציה, מאפשרים לך להגדיר הפצות כדי ליצור סוגי build שונים וגרסאות שונות של האפליקציה.
במדריך הזה מוסבר איך להפיץ חבילות APK לבודקים באמצעות App Distribution פלאגין של Gradle.
לפני שמתחילים
אם עדיין לא עשיתם זאת, מוסיפים את Firebase ל-Android project.
אם אתם לא משתמשים במוצרים אחרים של Firebase, עליכם רק ליצור פרויקט ולרשום את האפליקציה. עם זאת, אם תחליטו להשתמש במוצרים נוספים בעתיד, הקפידו להשלים את כל השלבים שמפורטים בדף שמקושר למעלה.
שלב 1. הגדרת הפרויקט ל-Android
בקובץ 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 }
בקובץ 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' }
אם עובדים מאחורי שרת 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 = "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" } } } // ... }
אפשר להגדיר את 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 ל-Gradle. ניתן למצוא את מזהה האפליקציה ב:
בקובץ appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile
|
הנתיב לקובץ ה-JSON של המפתח הפרטי של חשבון השירות. נדרש בלבד אם משתמשים באימות של חשבון שירות. |
artifactType
|
מציין את סוג הקובץ של האפליקציה. אפשר להגדיר לערך
|
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 (מידע נוסף זמין כאן:
ניהול הבודקים).
מציינים קבוצות באמצעות אפשר לציין את הקבוצות כרשימה של כינויים של קבוצות, מופרדים בפסיקים: 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. הפצת האפליקציה לבודקים
לבסוף, כדי לארוז את אפליקציית הבדיקה ולהזמין בודקים, יוצרים את היעדים
BUILD-VARIANT
והקבוצהappDistributionUploadBUILD-VARIANT
עם wrapper של פרויקט, כאשר BUILD-VARIANT הוא האפשרות האופציונלית גרסת המוצר וסוג ה-build שהגדרתם בשלב הקודם. למידע נוסף על טעמי המוצרים: הגדרה של וריאציות buildלדוגמה, כדי להפיץ את האפליקציה באמצעות וריאנט ה-build של
release
, צריך להריץ את הפקודה הבאה:./gradlew assembleRelease appDistributionUploadRelease
אפשרות נוספת: אם ביצעתם אימות באמצעות חשבון Google ולא סיפקתם פרטי כניסה בקובץ ה-build של Gradle, משתנה
FIREBASE_TOKEN
:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew assembleRelease appDistributionUploadRelease
אפשר גם לשנות את הערכים שהוגדרו בקובץ
build.gradle
על ידי העברת ארגומנטים של שורת הפקודה בפורמט--<property-name>=<property-value>
. לדוגמה:כדי להעלות גרסת build לניפוי באגים אל App Distribution:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="APK"
כדי להזמין בודקים נוספים או להסיר בודקים קיימים מ-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 לצד הבוחן במהדורה. כדי לחדש את ההזמנה, שולחים אותה מחדש באמצעות התפריט הנפתח בשורה של הבודק.
השלבים הבאים
כדאי להטמיע משוב מתוך האפליקציה כדי לאפשר לבודקים לשלוח בקלות משוב על האפליקציה (כולל צילומי מסך).
איך מציגים לבודקים התראות בתוך האפליקציה כשגרסאות build חדשות של האפליקציה זמינות להתקנה?
בcodelab של Android App Bundle מוסבר בהרחבה איך להפיץ גרסאות של חבילות App Bundle.
שיטות מומלצות להפצת אפליקציות ל-Android למבדקי בקרת איכות באמצעות CI/CD