הודע לבודקים על בנייה חדשה

ערכות ה-SDK האופציונליות של Firebase App Distribution ל-iOS ו-Android מאפשרות לך להציג התראות בתוך האפליקציה לבודקים שלך כאשר יישומים חדשים של האפליקציה שלך זמינים להתקנה. מדריך זה מסביר כיצד להשתמש ב-App Distribution iOS ו-Android SDK כדי ליצור ולהתאים אישית התראות בנייה חדשות עבור הבודקים שלך.

לפני שאתה מתחיל

אם עדיין לא עשית זאת, הוסף את Firebase לפרויקט Android שלך .

שלב 1 : הפעל את API Test Distribution App

  1. בחר את הפרויקט שלך במסוף Google Cloud .

  2. תחת 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-beta12")

    // ADD the full SDK implementation to the "beta" variant only (example)
    betaImplementation("com.google.firebase:firebase-appdistribution:16.0.0-beta12")
}

מחפש מודול ספרייה ספציפי לקוטלין? החל מהמהדורה של אוקטובר 2023 , מפתחי Kotlin ו-Java יכולים להיות תלויים במודול הספרייה הראשי (לפרטים, עיין בשאלות הנפוצות לגבי יוזמה זו ).

שלב 3 : הגדר התראות בתוך האפליקציה

ה-SDK של Android להפצת אפליקציות מספקת את הדרכים הבאות להגדרת התראות בנייה בתוך האפליקציה עבור הבודקים שלך:

  • תצורת התראה בסיסית שמגיעה עם עדכון אפליקציה בנוי מראש ודיאלוגים של כניסה להצגה לבודקים.
  • תצורת התראה מתקדמת המאפשרת לך להתאים אישית את ממשק המשתמש שלך.

אם אתה משתמש ב-App Distribution Android SDK בפעם הראשונה, אנו ממליצים להשתמש בתצורה הבסיסית .

תצורה בסיסית

השתמש updateIfNewReleaseAvailable כדי להציג תיבת דו-שיח של התראות הפעלה בנויה מראש לבודקים שעדיין לא הפעילו התראות, ולאחר מכן בדוק אם מבנה חדש זמין. כאשר נקראת, השיטה מפעילה את הרצף הבא:

  1. בודק אם בודק איפשר התראות. אם הבוחן עדיין לא הפעיל התראות, השיטה מבקשת מהבודק להיכנס ל-App Distribution עם חשבון Google שלו.

  2. בודק גירסה חדשה זמינה עבור הבוחן להתקין.

  3. מציג התראה בנויה מראש המנחה את הבוחן לעדכן.

  4. אם המבנה החדש הוא אנדרואיד 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 יותר מפעם אחת