Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

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

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

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

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

שלב 1 : הפעל את ממשק ה- API לבדיקת הפצת האפליקציות

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

  2. תחת ה- Firebase App Testers API , לחץ על הפעל .

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

אנו ממליצים להשתמש ב- CocoaPods להתקנת ספריות Firebase. אתה יכול גם לבחור לשלב את מסגרות ה- SDK ישירות .

  1. פתח את קובץ הפוד שיצרת עבור הפרויקט (או הפעל את pod init ליצירת קובץ), ואז הוסף את השורה הבאה בתוך קטע היעד:

    pod 'Firebase/AppDistribution'
  2. בספריה של קובץ הפוד שלך, הפעל את pod install , ואז פתח את קובץ ה- .xcworkspace שנוצר.

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

    קידוד מזהה האפליקציה שלך ב- Google

    הוסף את appdistribution-<encoded-google-app-id> ה- appdistribution-<encoded-google-app-id> של appdistribution-<encoded-google-app-id> ידי הכללת קטע הקוד 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 על ידי החלפת העמודים (:) במקפים (-). שים לב שמזהה האפליקציה שלך ב- Google נמצא GoogleService-Info.plist . לדוגמה, אם מזהה האפליקציה שלך ב- Google הוא:

    7:77777777777:ios:123456789

    מזהה האפליקציה המקודד שלך ב- Google הוא:

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

    מָהִיר

    import Firebase
    

    מטרה-ג

    @import Firebase;
    
  5. הגדר תצורה משותפת של FirebaseApp , בדרך כלל ביישום האפליקציה שלך application:didFinishLaunchingWithOptions: method:

    מָהִיר

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

    מטרה-ג

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

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

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

תצורה בסיסית

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

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

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

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

  3. בודק התקנות של גרסאות חדשות לבדיקה.

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

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

בדוק אם קיימות התראות מופעלות :

מָהִיר

AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
// Includes a pre-built enable alerts dialogue that lets your tester enable alerts.
// You can also customize your own user interface that prompts the tester to
// install a newly available distribution (refer to sample code below).
})

מטרה-ג

[[FIRAppDistribution appDistribution]
    checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
                                   NSError *_Nullable error) {
// Includes a pre-built enable alerts dialogue that lets your tester enable alerts.
// You can also customize your own user interface that prompts the tester to
// install a newly available distribution (refer to sample code below).
}];

הצג דו-שיח להתקנת build חדש :

מָהִיר

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)
})

מטרה-ג

[[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 מעניקות לך גמישות רבה יותר בהתאמה אישית של חוויית הכניסה של isTesterSignedIn שלך, כך שתוכל להתאים טוב יותר למראה ולתחושה של האפליקציה שלך.

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

מָהִיר

// 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
  })
}

מטרה-ג

// 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 , עיין בתיעוד הפניה להפצת אפליקציות עבור Swift ו- Objective-C .

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

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

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

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