ערכות ה-SDK האופציונליותFirebase App Distribution ל-iOS ול-Android מאפשרות להציג התראות בתוך האפליקציה לבוחנים, כשהגרסאות החדשות של האפליקציה זמינות להתקנה. במדריך הזה מוסבר איך להשתמש בערכות ה-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 בלבד, שאפשר לכלול אותה בכל הווריאציות של הגרסה. -
firebase-appdistribution– הטמעה מלאה של ה-SDK (אופציונלי).
הספרייה שמיועדת ל-API בלבד מאפשרת לקוד שלכם לבצע קריאות ל-SDK. אם לא מופיעה הטמעה מלאה של ה-SDK, לא תהיה השפעה לקריאות.
מצהירים על התלות ב-App Distribution Android SDK במודול (ברמת האפליקציה) בקובץ 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-beta20")
// ADD the full SDK implementation to the "beta" variant only (example)
betaImplementation("com.google.firebase:firebase-appdistribution:16.0.0-beta20")
}
מחפשים מודול ספרייה ספציפי ל-Kotlin? החל מגרסת אוקטובר 2023, מפתחי Kotlin ומפתחי Java יכולים להסתמך על מודול הספרייה הראשי (פרטים נוספים זמינים במאמר שאלות נפוצות בנושא).
שלב 3: הגדרת התראות באפליקציה
App Distribution Android SDK מספק את הדרכים הבאות להגדרת התראות build בתוך האפליקציה עבור הבודקים:
- הגדרת התראה בסיסית שכוללת תיבות דו-שיח מוכנות מראש לעדכון האפליקציה ולכניסה לחשבון, שמוצגות לבודקים.
- הגדרת התראות מתקדמת שמאפשרת לכם להתאים אישית את ממשק המשתמש.
אם אתם משתמשים ב-App Distribution Android SDK בפעם הראשונה, מומלץ להשתמש בהגדרה בסיסית.
הגדרה בסיסית
משתמשים ב-updateIfNewReleaseAvailable כדי להציג תיבת דו-שיח מוכנה מראש להפעלת התראות לבודקים שעדיין לא הפעילו התראות, ואז בודקים אם גרסה חדשה זמינה. כשמפעילים את ה-method, מתבצעת הרצף הבא:
בודקים אם בודק הפעיל התראות. אם הבודק לא הפעיל עדיין את ההתראות, השיטה תבקש ממנו להיכנס אל App Distribution באמצעות חשבון Google שלו.
בודקת אם יש גרסאות חדשות שזמינות למשתתפי הבדיקה להתקנה.
מוצגת התראה מוכנה מראש שמבקשת מהבודק לעדכן.
אם גרסת ה-build החדשה היא קובץ Android App Bundle (AAB), המערכת מפנה את הבודק אל Google Play כדי להשלים את תהליך העדכון.
אם הגרסה החדשה היא חבילת אפליקציה ל-Android (APK), ה-SDK מוריד את הגרסה החדשה ברקע ומציג למשתמש הודעה להתקנה כשההורדה מסתיימת. ערכת ה-SDK שולחת התראות על התקדמות ההורדה למשתמש באמצעות
NotificationManager. אפשר גם להוסיף אינדיקטור משלכם להתקדמות על ידי צירוף שלonProgressUpdatehandler ל-updateIfNewReleaseAvailableTask.
אפשר להפעיל את 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: בנייה ובדיקה של ההטמעה
מפתחים את האפליקציה ובודקים את ההטמעה על ידי הפצת הגרסה לבודקים באמצעות מסוף Firebase.
בApp Distribution מדריך לפתרון בעיות אפשר למצוא עזרה בפתרון בעיות נפוצות, כמו:
- הבודק לא מקבל התראות באפליקציה
- הבודק מתבקש להיכנס לחשבון Google יותר מפעם אחת