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

Verwenden Sie den Swift Package Manager, um Firebase-Abhängigkeiten zu installieren und zu verwalten.

  1. In Xcode, mit Ihrem App - Projekt zu öffnen, navigieren Sie zu Datei> Swift Packages> Paket hinzufügen Abhängigkeit.
  2. Wenn Sie dazu aufgefordert werden, fügen Sie das SDK-Repository der Firebase Apple Platforms hinzu:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. Wählen Sie die App-Verteilungsbibliothek aus.
  5. Wenn Sie fertig sind, beginnt Xcode automatisch, Ihre Abhängigkeiten im Hintergrund aufzulösen und herunterzuladen.

Führen Sie als Nächstes einige Konfigurationsschritte aus:

  1. 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. Beispiel: Ihre Google App-ID lautet:

    7:77777777777:ios:123456789

    Ihre codierte Google App-ID lautet:

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

    Schnell

    Hinweis: Dieses Produkt ist nicht verfügbar auf macOS, Mac Catalyst tvOS oder watchOS Ziele.

    import Firebase
    

    Ziel c

    Hinweis: Dieses Produkt ist nicht verfügbar auf macOS, Mac Catalyst tvOS oder watchOS Ziele.

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

    Schnell

    Hinweis: Dieses Produkt ist nicht verfügbar auf macOS, Mac Catalyst tvOS oder watchOS Ziele.

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

    Ziel c

    Hinweis: Dieses Produkt ist nicht verfügbar auf macOS, Mac Catalyst tvOS oder watchOS Ziele.

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  4. 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.

Grundkonfiguration

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

Hinweis: Dieses Produkt ist nicht verfügbar auf macOS, Mac Catalyst tvOS oder watchOS Ziele.
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

Hinweis: Dieses Produkt ist nicht verfügbar auf macOS, Mac Catalyst tvOS oder watchOS Ziele.
[[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

Hinweis: Dieses Produkt ist nicht verfügbar auf macOS, Mac Catalyst tvOS oder watchOS Ziele.
// 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

Hinweis: Dieses Produkt ist nicht verfügbar auf macOS, Mac Catalyst tvOS oder watchOS Ziele.
// 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