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