ערכות ה-SDK האופציונליות של Firebase App Distribution ל-iOS ול-Android SDK מאפשרות להציג התראות בתוך האפליקציה לבודקים, כשיש גרסאות build חדשות של האפליקציה שזמינות להתקנה. במדריך הזה מוסבר איך להשתמש בערכות ה-SDK של App Distribution ל-iOS ול-Android כדי ליצור התראות על גרסאות build חדשות ולהתאים אותן אישית לבודקים.
לפני שמתחילים
אם עדיין לא הוספתם את Firebase לפרויקט Android, אתם צריכים להוסיף אותו.
שלב 1: מפעילים את App Distribution Tester API
בוחרים את הפרויקט במסוף Google Cloud.
בקטע Firebase App Testers API, לוחצים על Enable (הפעלה).
שלב 2: מוסיפים את App Distribution לאפליקציה
שלב 2: מוסיפים את App Distribution לאפליקציה
App Distribution Android SDK מורכב משתי ספריות:
-
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 המלאה ב-builds של Play, מוסיפים את התלות בספריית ה-API בלבד לכל וריאנט ה-build.
הוסיפו את ההטמעה המלאה של ה-SDK רק לגרסאות שמיועדות לבדיקת טרום-השקה.
dependencies {
// ADD the API-only library to all variants
implementation("com.google.firebase:firebase-appdistribution-api:16.0.0-beta21")
// ADD the full SDK implementation to the "beta" variant only (example)
betaImplementation("com.google.firebase:firebase-appdistribution:16.0.0-beta21")
}
מחפשים מודול ספרייה ספציפי ל-Kotlin? החל מגרסת אוקטובר 2023, מפתחים ב-Kotlin וב-Java יכולים להסתמך על מודול הספרייה הראשי (לפרטים, ראו את השאלות הנפוצות לגבי היוזמה הזו).
שלב 3: הגדרת התראות בתוך האפליקציה
ב-Android SDK של App Distribution יש כמה דרכים להגדיר התראות על גרסאות של האפליקציה לבודקים:
- הגדרה בסיסית של התראות שכוללת תיבות דו-שיח מובנות של עדכון האפליקציה וכניסה לחשבון, שמוצגות לבודקים.
- הגדרה מתקדמת של התראות שמאפשרת להתאים אישית את ממשק המשתמש.
אם אתם משתמשים ב-App Distribution Android SDK בפעם הראשונה, מומלץ להשתמש בהגדרה הבסיסית.
הגדרה בסיסית
משתמשים ב-updateIfNewReleaseAvailable כדי להציג תיבת דו-שיח מובנית להפעלת התראות לבודקים שעדיין לא הפעילו התראות, ואז בודקים אם יש גרסה חדשה. כשמפעילים את ה-method, היא מבצעת את הפעולות הבאות:
בודק אם הבודק הפעיל התראות. אם הבודק עדיין לא הפעיל התראות, השיטה תבקש מהבודק להיכנס אל App Distribution באמצעות חשבון Google שלו.
בודק אם יש גרסאות build חדשות זמינות שהבודק יכול להתקין.
הצגת התראה מובנית שמבקשת מהבודק לעדכן.
אם ה-build החדש הוא קובץ Android App Bundle (AAB), הבודק מופנה אל Google Play כדי להשלים את תהליך העדכון.
אם ה-build החדש הוא חבילת אפליקציה ל-Android (APK), ערכת ה-SDK מורידה את ה-build החדש ברקע ומבקשת מהבודק להתקין אותו בסיום ההורדה. ערכת ה-SDK שולחת למשתמש התראות על התקדמות ההורדה באמצעות
NotificationManager. אתם יכולים גם להוסיף אינדיקטור התקדמות משלכם על ידי צירוף handler שלonProgressUpdateל-Task שלupdateIfNewReleaseAvailable.
אפשר להפעיל את updateIfNewReleaseAvailable בכל שלב באפליקציה. לדוגמה, אפשר להפעיל את updateIfNewReleaseAvailable במהלך השיטה onResume של הפעילות הראשית באפליקציה.
בדוגמה הבאה נבדק אם הבודק הפעיל התראות ויש לו גישה ל-build חדש. אם התנאים האלה מתקיימים, תוצג תיבת דו-שיח כשהגרסה תהיה זמינה להתקנה:
Kotlin
// 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
// 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
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
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
firebaseAppDistribution.updateApp()
.addOnProgressListener { updateState ->
// Use updateState to show update progress.
}
Java
firebaseAppDistribution.updateApp()
.addOnProgressListener(updateState -> {
// Use updateState to show update progress.
});
שלב 4: יוצרים ובודקים את ההטמעה
מפתחים את האפליקציה ובודקים את ההטמעה על ידי הפצת ה-build לבודקים באמצעות מסוף Firebase.
במדריך לפתרון בעיות ב-App Distribution מוסבר איך לפתור בעיות נפוצות, כמו:
- הבודק לא מקבל התראות באפליקציה
- הבודק מתבקש להיכנס לחשבון Google יותר מפעם אחת