Firebase App Distribution ערכות ה-SDK האופציונליות ל-iOS ול-Android מאפשרות להציג התראות בתוך האפליקציה לבודקים כאשר גרסאות build חדשות של האפליקציה זמינות להתקנה. במדריך הזה מוסבר איך להשתמש ב-App Distribution ערכות ה-SDK ל-iOS ול-Android כדי ליצור ולהתאים אישית התראות build חדשות לבודקים.
לפני שמתחילים
אם עדיין לא עשיתם זאת, מוסיפים את Firebase לפרויקט Android.
שלב 1: מפעילים את App Distribution Tester API
בוחרים את הפרויקט ב מסוף Google Cloud.
בקטע Firebase App Testers API, לוחצים על Enable.
שלב 2: הוספה של App Distribution לאפליקציה
ערכת ה-SDK של Android App Distribution מורכבת משתי ספריות:
firebase-appdistribution-api
– הספרייה של ה-API בלבד, שאפשר לכלול בכל גרסאות ה-build.firebase-appdistribution
– הטמעה מלאה של ה-SDK (אופציונלי).
הספרייה שמבוססת על API בלבד מאפשרת לקוד לבצע קריאות ל-SDK. אם ההטמעה המלאה של ה-SDK לא קיימת, לא תהיה להן השפעה.
מגדירים את התלות ב-Android SDK של App Distribution בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל מדובר בקובץ <project>/<app-module>/build.gradle.kts
או <project>/<app-module>/build.gradle
). כדי לא לכלול את הפונקציונליות של העדכון העצמאי של הטמעת ה-SDK המלאה בגרסאות ה-build של Play, מוסיפים את התלות בספרייה של ה-API בלבד לכל גרסאות ה-build.
מוסיפים את ההטמעה המלאה של ה-SDK רק לגרסאות שמתכוונות אך ורק לבדיקת טרום-השקה.
dependencies {
// ADD the API-only library to all variants
implementation("com.google.firebase:firebase-appdistribution-api:16.0.0-beta14")
// ADD the full SDK implementation to the "beta" variant only (example)
betaImplementation("com.google.firebase:firebase-appdistribution:16.0.0-beta14")
}
מחפשים מודול ספרייה ספציפי ל-Kotlin? מתחיל ב- גרסת אוקטובר 2023, גם מפתחי Kotlin וגם מפתחי Java יכולים להסתמך על מודול הספרייה הראשי (פרטים נוספים זמינים במאמר שאלות נפוצות לגבי היוזמה).
שלב 3: מגדירים התראות בתוך האפליקציה
App Distribution Android SDK מספק את הדרכים הבאות להגדרת התראות על גרסאות build באפליקציה לבודקים:
- הגדרת התראות בסיסית שמגיעה עם תיבת דו-שיח מובנית לעדכון האפליקציה ולכניסה, שמוצגת לבודקים.
- הגדרה מתקדמת של התראות שמאפשרת להתאים אישית את ממשק המשתמש.
אם זו הפעם הראשונה שאתם משתמשים ב-Android SDK App Distribution, מומלץ באמצעות התצורה הבסיסית.
הגדרה בסיסית
שימוש בupdateIfNewReleaseAvailable
כדי להציג התראות הפעלה מוגדרות מראש
תיבת דו-שיח לבודקים שעדיין לא הפעילו התראות, ולאחר מכן לבדוק אם
גרסת build זמינה. כשמפעילים את ה-method, הוא מבצע את התהליך הבא:
הפונקציה בודקת אם הבודק הפעיל התראות. אם הבודק עדיין לא הפעיל התראות, השיטה תגרום לו להיכנס ל-App Distribution באמצעות חשבון Google שלו.
הבדיקה נועדה לזהות גרסאות build חדשות שזמינות למתקין.
הצגת התראה מוגדרת מראש עם הבודק לבצע עדכון.
אם הגרסה החדשה היא Android App Bundle (AAB), המערכת מפנה את הבוחן אל Google Play כדי להשלים את תהליך העדכון.
אם גרסת ה-build החדשה היא אפליקציית PacKage ל-Android (APK), ה-SDK מוריד את ה-build החדש ברקע ומבקש לבודק להתקין כשההורדה תסתיים. ה-SDK שולח התראות על התקדמות ההורדה למשתמש באמצעות
NotificationManager
. אפשר גם להוסיף אינדיקטור התקדמות משלכם על ידי צירוף טיפולonProgressUpdate
למשימהupdateIfNewReleaseAvailable
.
אפשר להתקשר אל updateIfNewReleaseAvailable
בכל שלב באפליקציה. עבור
לדוגמה, אפשר לקרוא לפונקציה updateIfNewReleaseAvailable
במהלך onResume
של הפעילות העיקרית של האפליקציה.
בדוגמה הבאה אנחנו בודקים אם הבודק הפעיל התראות יש גישה ל-build חדש. אם התנאים האלה מתקיימים, תוצג תיבת דו-שיח כשה-build זמין להתקנה:
Kotlin+KTX
// Copy and paste this into any part of your app - for example, in your main
// activity's onResume method.
val firebaseAppDistribution = FirebaseAppDistribution.getInstance()
firebaseAppDistribution.updateIfNewReleaseAvailable()
.addOnProgressListener { updateProgress ->
// (Optional) Implement custom progress updates in addition to
// automatic NotificationManager updates.
}
.addOnFailureListener { e ->
// (Optional) Handle errors.
if (e is FirebaseAppDistributionException) {
when (e.errorCode) {
Status.NOT_IMPLEMENTED -> {
// SDK did nothing. This is expected when building for Play.
}
else -> {
// Handle other errors.
}
}
}
}
Java
// Copy and paste this into any part of your app - for example, in your main
// activity's onResume method.
FirebaseAppDistribution firebaseAppDistribution = FirebaseAppDistribution.getInstance();
firebaseAppDistribution.updateIfNewReleaseAvailable()
.addOnProgressListener(updateProgress -> {
// (Optional) Implement custom progress updates in addition to
// automatic NotificationManager updates.
})
.addOnFailureListener(e -> {
// (Optional) Handle errors.
if (e instanceof FirebaseAppDistributionException) {
switch (((FirebaseAppDistributionException)e).getErrorCode()) {
case NOT_IMPLEMENTED:
// SDK did nothing. This is expected when building for Play.
break;
default:
// Handle other errors.
break;
}
}
});
תצורה מתקדמת
הגדרה מתקדמת של כניסה לחשבון
השיטות signInTester
ו-isTesterSignedIn
מעניקות לכם גמישות רבה יותר להתאמה אישית של חוויית הכניסה של הבודקים, כך שחוויית הבדיקה תתאים יותר למראה ולתחושה של האפליקציה.
בדוגמה הבאה אנחנו בודקים אם הבודק כבר נכנס לחשבון
חשבון בודק אחד (App Distribution). כך תוכלו להציג את ממשק המשתמש (UI) של הכניסה רק לבודקים שעדיין לא נכנסו לחשבון. אחרי שהבודק נכנס לחשבון, אפשר להריץ את הפונקציה updateIfNewReleaseAvailable
כדי לבדוק אם יש לו גישה לגרסה החדשה.
Kotlin+KTX
// Only show sign-in UI if this is the "beta" variant (example).
if (BuildConfig.BUILD_TYPE == "beta" && !firebaseAppDistribution.isTesterSignedIn) {
// Start your sign-in UI here.
}
// Only check for updates if the tester is already signed in (do not prompt).
if (firebaseAppDistribution.isTesterSignedIn) {
firebaseAppDistribution.updateIfNewReleaseAvailable().addOnFailureListener {
// Handle failed update.
}
}
Java
// Only show sign-in UI if this is the "beta" variant (example).
if (BuildConfig.BUILD_TYPE == "beta" && !firebaseAppDistribution.isTesterSignedIn()) {
// Start your sign-in UI here.
}
// Only check for updates if the tester is already signed in (do not prompt).
if (firebaseAppDistribution.isTesterSignedIn()) {
firebaseAppDistribution.updateIfNewReleaseAvailable().addOnFailureListener( e -> {
// Handle failed update.
});
}
מממשק המשתמש לכניסה, כשהבודק בוחר להמשיך, מבצעים קריאה אל signInTester()
:
Kotlin+KTX
firebaseAppDistribution.signInTester().addOnSuccessListener {
// Handle successful sign-in.
}.addOnFailureListener {
// Handle failed sign-in.
});
Java
firebaseAppDistribution.signInTester().addOnSuccessListener( unused -> {
// Handle successful sign-in.
}).addOnFailureListener(e -> {
// Handle failed sign-in.
});
הגדרות של עדכון מתקדם
השיטות checkForNewRelease
ו-updateApp
מעניקות לך יותר גמישות לבצע
להתאים אישית את המועד שבו הבודק מתבקש לעדכן. אפשר גם להתאים אישית
תיבת דו-שיח מוכנה מראש לעדכון ומחוון התקדמות ההורדה, כדי שהם יוכלו להשתפר
שמתאימות למראה ולחוויה שהאפליקציה מציעה.
חשוב לשים לב ש-updateApp
לא מספק אינדיקציה להתקדמות ההורדה. כלומר, תצטרכו להטמיע אינדיקציה משלכם להתקדמות באמצעות NotificationManager
, תצוגת סטטוס כלשהי באפליקציה או גישה אחרת.
בדוגמה הבאה בודקים אם יש גרסה חדשה זמינה, ואז מציגים ממשק משתמש בהתאמה אישית. לפני שמתקשרים אל checkForNewRelease
ואל updateApp
, צריך לוודא
שהבודק נכנס לחשבון באמצעות
הגדרות כניסה מתקדמות.
Kotlin+KTX
firebaseAppDistribution.checkForNewRelease().addOnSuccessListener { release ->
if (release != null) {
// New release available. Start your update UI here.
}
}.addOnFailureListener {
// Handle failed check for new release. Fails with Status#NOT_IMPLEMENTED
// if built for Play.
}
Java
firebaseAppDistribution.checkForNewRelease().addOnSuccessListener(release -> {
if (release != null) {
// New release available. Start your update UI here.
}
}).addOnFailureListener(e -> {
// Handle failed check for new release. Fails with Status#NOT_IMPLEMENTED
// if built for Play.
});
כשהבודק יבחר להמשיך בעדכון דרך ממשק המשתמש של העדכון, קוראים לפונקציה
updateApp()
:
Kotlin+KTX
firebaseAppDistribution.updateApp()
.addOnProgressListener { updateState ->
// Use updateState to show update progress.
}
Java
firebaseAppDistribution.updateApp()
.addOnProgressListener(updateState -> {
// Use updateState to show update progress.
});
שלב 4: יוצרים ובודקים את ההטמעה
כדי לפתח את האפליקציה ולבדוק את ההטמעה, מפיצים את הגרסה היציבה לבודקים באמצעות מסוף Firebase.
במדריך לפתרון בעיות ב-App Distribution מוסבר איך לפתור בעיות נפוצות, כמו:
- הבודק לא מקבל התראות באפליקציה
- הבודק מתבקש להיכנס ל-Google יותר מפעם אחת