Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Richten Sie In-App-Benachrichtigungen zu neuen Builds mit dem App Distribution SDK . ein

Mit dem optionalen Firebase App Distribution SDK können Sie Ihren Testern In-App-Benachrichtigungen anzeigen, wenn neue Builds Ihrer App zur Installation verfügbar sind. In dieser Anleitung wird erläutert, wie Sie mit dem App Distribution SDK neue Build-Benachrichtigungen für Ihre Tester erstellen und anpassen.

Bevor Sie beginnen

Wenn Sie nicht bereits haben, fügen Sie Firebase zu Ihrem iOS - Projekt .

Schritt 1: Aktivieren des App Verteilung Tester API

  1. Wählen Sie ein Projekt in der Google Cloud Console .

  2. Unter Firebase App Tester API, auf Aktivieren.

Schritt 2: Hinzufügen App Distribution Ihrer App

  1. Öffnen Sie die podfile Sie für das Projekt erstellt (oder Lauf pod init erstellen), dann fügen Sie die folgende Zeile innerhalb des Zielabschnitts:

    pod 'Firebase/AppDistribution'
  2. Im Verzeichnis Ihrer podfile, laufen pod install , öffnen Sie dann die erstellte .xcworkspace Datei.

  3. Kodieren Sie Ihre Google - App - ID (nur erforderlich für iOS Versionen 9 und 10):

    Codieren Sie Ihre Google-App-ID

    Fügen Sie das appdistribution-<encoded-google-app-id> URL - Schema , indem Sie den Code - Schnipsel in Ihrer einschließlich Info.plist file - Info.plist file (siehe Apple-Dokumentation für Anweisungen, wie das URL - Schema in Xcode hinzugefügt werden ):

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

    Codieren Sie dann Ihre Google App-ID, indem Sie die Doppelpunkte (:) durch Bindestriche (-) ersetzen. Beachten Sie, dass Ihre Google - App - ID in Ihrem befindet GoogleService-Info.plist - Datei. Wenn Ihre Google-App-ID beispielsweise lautet:

    7:77777777777:ios:123456789

    Ihre codierte Google App-ID lautet:

    7-77777777777-ios-123456789
  4. Importieren Sie die Firebase Modul in Ihrem UIApplicationDelegate :

    Schnell

    import Firebase
    

    Ziel c

    @import Firebase;
    
  5. Konfigurieren ein FirebaseApp gemeinsame Instanz, in der Regel in Ihrem App - application:didFinishLaunchingWithOptions: Methode:

    Schnell

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

    Ziel c

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  6. Kompilieren Sie abschließend Ihre App neu.

Schritt 3: Konfigurieren von In-App - Benachrichtigungen

Das App Distribution SDK bietet zwei Möglichkeiten zum Einrichten von In-App-Build-Benachrichtigungen für Ihre Tester: eine grundlegende Benachrichtigungskonfiguration, die einen vorgefertigten Anmeldedialog enthält, der den Testern angezeigt wird, und eine erweiterte Benachrichtigungskonfiguration, mit der Sie Passen Sie Ihre eigene Benutzeroberfläche (UI) an. Wir empfehlen, zuerst die grundlegende Warnungskonfiguration zu verwenden, wenn Sie das App Distribution SDK noch nicht kennen.

Grundlegende Einstellung

Verwenden checkForUpdate ein vorgefertigter anzuzeigen Eine Benachrichtigung Dialog Testern ermöglichen , die noch nicht Alarme aktiviert, und dann prüfen , ob ein Neubau zur Verfügung steht. Beim Aufruf führt die Methode die folgende Sequenz aus:

  1. Überprüft, ob ein Tester Warnungen aktiviert hat, indem er ihn auffordert, sich mit seinem Google-Konto bei App Distribution anzumelden.

  2. Wenn der Tester noch keine Warnungen aktiviert hat, wird ein vorgefertigter Dialog angezeigt.

    Das Aktivieren von Warnungen ist ein einmaliger Vorgang auf dem Testgerät und bleibt über alle Updates Ihrer App hinweg bestehen. Alerts bleiben auf der Testvorrichtung aktiviert , bis entweder die App deinstalliert wird, oder bis die signOutTester Methode aufgerufen wird. Siehe die Referenzdokumentation Methode ( Swift oder Objective-C ) für weitere Informationen.

  3. Sucht nach neu verfügbaren Builds, die der Tester installieren kann.

Sie können umfassen checkForUpdate an einer beliebigen Stelle in Ihrer Anwendung. Zum Beispiel können Sie Ihre Tester aufgefordert , neu zu installieren , beim Start zur Verfügung baut , indem checkForUpdate im viewDidAppear des UIViewController .

Im folgenden Beispiel wird überprüft, ob der Tester Warnungen aktiviert hat und Zugriff auf einen neuen Build hat, und zeigt in diesem Fall einen Dialog an, wenn der Build zur Installation verfügbar ist:

Schnell

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

Ziel c

[[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];
  }
}];

Erweiterte Konfiguration

Die Methoden signInTester und isTesterSignedIn Ihnen mehr Flexibilität , die Tester-Sign-in Erfahrung Customizing, also ist es besser können Ihre App-Look and Feel entsprechen.

Im folgenden Beispiel wird überprüft, ob sich der Tester bereits bei seinem Firebase App Distribution-Testerkonto angemeldet hat, sodass Sie Ihre Anmelde-UI nur für Tester anzeigen können, die sich noch nicht angemeldet haben. Nachdem sich der Tester angemeldet hat, können Sie rufen checkForUpdate zu überprüfen , ob der Tester Zugriff auf einen neuen Build hat.

Schnell

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

Ziel c

// 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
  }];
}

Weitere Informationen über zusätzliche Methoden, einschließlich signOutTester finden Sie in der App Verteilung Referenzdokumentation für Swift und Objective-C .

Schritt 4: Erstellen und Testen Sie Ihre Implementierung

Schließlich Ihre App erstellen und Ihre Implementierung testen , indem Sie die Build - Verteilung an Testern die Firebase - Konsole.

Besuchen Sie die App Verteilung Störursachen für die Hilfe bei häufig gestellten Fragen, wie zum Beispiel:

  • Tester erhält keine In-App-Benachrichtigungen
  • Tester wird mehr als einmal aufgefordert, sich bei Google anzumelden