Catch up on everthing we announced at this year's Firebase Summit. Learn more

הגדר התראות בנייה חדשות מתוך האפליקציה באמצעות SDK להפצת האפליקציות

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

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

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

שלב 1: הפעלת ממשק ה- API Tester חלוקת היישומים

  1. בחר בפרויקט שלך מסוף ענן Google .

  2. תחת API בודקי App Firebase, לחץ על אפשר.

שלב 2: הוספת אפליקציות הפצה באפליקציה

השתמש ב-Swift Package Manager כדי להתקין ולנהל תלות ב-Firebase.

  1. בשנת Xcode, עם פרויקט היישום שלך פתוח, נווט אל קובץ> חבילות סוויפט> הוסף תלות חבילת.
  2. כאשר תתבקש, הוסף את מאגר Firebase Apple platforms SDK:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. בחר את ספריית הפצת האפליקציות.
  5. בסיום, Xcode יתחיל באופן אוטומטי לפתור ולהוריד את התלות שלך ברקע.

לאחר מכן, בצע מספר שלבי תצורה:

  1. לקודד מזהה היישום Google שלך (נדרש רק עבור גרסאות iOS 9 ו 10):

    קודד את מזהה Google app שלך

    מוסיפים את appdistribution-<encoded-google-app-id> ערכת URL ידי כולל את קטע ב שלך Info.plist file (עיין בתיעוד של Apple כדי לקבל הוראות כיצד להוסיף את ערכת URL ב Xcode):

    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>appdistribution-<encoded-google-app-id></string>
            </array>
        </dict>
    </array>
    

    לאחר מכן, קודד את מזהה Google app שלך על ידי החלפת נקודתיים (:) במקפים (-). הערה כי מזהה את האפליקציה Google שלך ממוקמת שלך GoogleService-Info.plist קובץ. לדוגמה, אם מזהה Google app שלך הוא:

    7:77777777777:ios:123456789

    מזהה Google app המקודד שלך הוא:

    7-77777777777-ios-123456789
  2. ייבא את מודול Firebase ב שלך UIApplicationDelegate :

    מָהִיר

    הערה: מוצר זה אינו זמין MacOS, Mac Catalyst, tvOS או מטרות watchOS.

    import Firebase
    

    Objective-C

    הערה: מוצר זה אינו זמין MacOS, Mac Catalyst, tvOS או מטרות watchOS.

    @import Firebase;
    
  3. & Nbsp הגדר FirebaseApp משותף למשל, בדרך כלל של האפליקציה שלך application:didFinishLaunchingWithOptions: השיטה:

    מָהִיר

    הערה: מוצר זה אינו זמין MacOS, Mac Catalyst, tvOS או מטרות watchOS.

    // Use Firebase library to configure APIs
    FirebaseApp.configure()
    

    Objective-C

    הערה: מוצר זה אינו זמין MacOS, Mac Catalyst, tvOS או מטרות watchOS.

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  4. לבסוף, הידור מחדש את האפליקציה שלך.

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

ה-App Distribution SDK מספק שתי דרכים להגדרת התראות בנייה בתוך האפליקציה עבור הבודקים שלך: תצורת התראה בסיסית, שמגיעה עם דיאלוג כניסה מובנה מראש להצגה לבודקים, ותצורת התראה מתקדמת, המאפשרת לך התאם אישית את ממשק המשתמש שלך (UI). אנו ממליצים להשתמש תחילה בתצורת ההתראה הבסיסית אם אתה חדש ב-App Distribution SDK.

תצורה בסיסית

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

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

  2. אם הבוחן עדיין לא הפעיל התראות, מציג דיאלוג בנוי מראש.

    הפעלת התראות היא תהליך חד פעמי במכשיר הבדיקה ונמשכת לאורך כל העדכונים של האפליקציה שלך. התראות להישאר פעילות המכשיר המבחן עד באפליקצית מוסר, או עד signOutTester השיטה נקראת. עיין בתיעוד ההתייחסות של השיטה ( סוויפט או Objective-C ) לקבלת מידע נוסף.

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

אתה יכול לכלול checkForUpdate בכל נקודה באפליקציה. לדוגמה, אתה יכול להנחות הגורמים הבודקים להתקין שהתפנה בונה בעת ההפעלה על ידי כולל checkForUpdate ב viewDidAppear של UIViewController .

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

מָהִיר

הערה: מוצר זה אינו זמין MacOS, Mac Catalyst, tvOS או מטרות watchOS.
AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
  guard let release = release else {
    return
  }

  // Customize your alerts here.
  let title = "New Version Available"
  let message = "Version \(release.displayVersion)(\(release.buildVersion)) is available."
  let uialert = UIAlertController(title: title,message: message, preferredStyle: .alert)

  uialert.addAction(UIAlertAction(title: "Update", style: UIAlertAction.Style.default) {
    _ in
    UIApplication.shared.open(release.downloadURL)
  })
  uialert.addAction(UIAlertAction(title: "Cancel", style: UIAlertAction.Style.cancel) {
    _ in
  })

  // self should be a UIViewController.
  self.present(uialert, animated: true, completion: nil)
})

Objective-C

הערה: מוצר זה אינו זמין MacOS, Mac Catalyst, tvOS או מטרות watchOS.
[[FIRAppDistribution appDistribution]
  checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
                                 NSError *_Nullable error) {
  if (error) {
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Check For Update"
message:[NSString stringWithFormat:@"Error during tester sign in! %@", error.localizedDescription]
preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) {}];

    [alert addAction:okAction];
    [self presentViewController:alert animated:YES completion:nil];

    return;
  }

  if (release) {
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"New Version Available"
message:[NSString stringWithFormat:@"Version %@ (%@) is available.", release.displayVersion,
release.buildVersion] preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction *updateAction = [UIAlertAction actionWithTitle:@"Update"
style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
      [[UIApplication sharedApplication] openURL:release.downloadURL options:@{}
completionHandler:nil];
    }];
    UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel"
style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {}];
    [alert addAction:updateAction];
    [alert addAction:cancelAction];
    [self presentViewController:alert animated:YES completion:nil];
  }
}];

תצורה מתקדמת

השיטות signInTester ו isTesterSignedIn לתת לך יותר גמישות התאמה אישית הכניסה של הבוחן שלך חוויה, אז זה טוב יותר יכול להתאים מראה של האפליקציה שלך ותחושה.

הדוגמה הבאה בודקת אם הבוחן כבר נכנס לחשבון הבוחן Firebase App Distribution שלו, כך שתוכל לבחור להציג את ממשק הכניסה שלך רק עבור בודקים שעדיין לא התחברו. לאחר שהבודק נכנס לחשבון, תוכל לאחר מכן קוראים checkForUpdate כדי לבדוק אם הבוחן יש גישה חדשה לבנות.

מָהִיר

הערה: מוצר זה אינו זמין MacOS, Mac Catalyst, tvOS או מטרות watchOS.
// Sign in a tester without automatically checking for update
if (!AppDistribution.appDistribution().isTesterSignedIn) {
  AppDistribution.appDistribution().signInTester (completion: { error in
    // completion block for signInTester
     if (error != nil) {
       // handle failed sign in
      return
     }
    // handle successful sign in
  })
}

// Only check for update if tester is already signed in - do not prompt
if (AppDistribution.appDistribution().isTesterSignedIn) {
  AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
      // completion block for check for update
  })
}

Objective-C

הערה: מוצר זה אינו זמין MacOS, Mac Catalyst, tvOS או מטרות watchOS.
// Sign in a tester without automatically checking for update
if(![[FIRAppDistribution appDistribution] isTesterSignedIn]) {
  [[FIRAppDistribution appDistribution]
    signInTesterWithCompletion:^(NSError *_Nullable error) {
      // completion block for signInTester
     if (error) {
       // handle failed sign in
       return;
     }
      // handle successful sign in
  }];
}

// only check for update if tester is already signed in - do not prompt
if([[FIRAppDistribution appDistribution] isTesterSignedIn]) {
  [[FIRAppDistribution appDistribution]
        checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
                                       NSError *_Nullable error) {
     // completion block for check for update
  }];
}

לקבלת מידע על שיטות נוספות, כולל signOutTester , עיין בתיעוד התייחסות חלוקת היישומים עבור סוויפט ו Objective-C .

שלב 4: לבנות ולבדוק היישום שלך

לבסוף, לבנות את האפליקציה שלך ולבדוק היישום שלך על ידי ההפצה לבנות כדי בודקים באמצעות מסוף Firebase.

בקר המדריך לפתרון בעיות הפצת App לעזרה בהתמודדות עם בעיות נפוצות, כגון:

  • הבוחן לא מקבל התראות בתוך האפליקציה
  • הבוחן מתבקש להיכנס ל-Google יותר מפעם אחת