Tester über neue Builds informieren


Mit den optionalen Firebase App Distribution iOS- und Android SDKs können Sie In-App-Benachrichtigungen an Ihre Tester, wenn neue Builds Ihrer App installieren. In diesem Leitfaden wird die Verwendung der App Distribution SDKs für iOS und Android erläutert um neue Build-Benachrichtigungen für Ihre Tester zu erstellen und anzupassen.

Hinweis

Falls noch nicht geschehen, fügen Sie Ihrem iOS-Projekt Firebase hinzu.

Schritt 1: App Distribution Tester API aktivieren

  1. Wählen Sie Ihr Projekt in der Google Cloud-Konsole.

  2. Klicken Sie unter Firebase App Testers API auf Aktivieren.

Schritt 2: App Distribution zu Ihrer App hinzufügen

  1. Öffnen Sie die Podfile-Datei, die Sie für das Projekt erstellt haben, oder führen Sie pod init aus, um ein 1) und fügen Sie dann die folgende Zeile in den Zielbereich ein:

    pod 'FirebaseAppDistribution'
  2. Führen Sie im Verzeichnis Ihrer Podfile pod install aus und öffnen Sie dann die erstellte Datei .xcworkspace.

  3. Importieren Sie das Firebase-Modul in Ihre App-Struktur oder UIApplicationDelegate:

    Swift

    import FirebaseCore
    import FirebaseAppDistribution
    

    Objective-C

    @import FirebaseCore;
    @import FirebaseAppDistribution;
    
  4. Konfigurieren Sie eine freigegebene Instanz FirebaseApp in der application(_:didFinishLaunchingWithOptions:)-Methode:

    Swift

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

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  5. Wenn das Swapping deaktiviert ist, übergeben Sie alle geöffneten URLs in Ihrer Implementierung von application(_:open:options:) an das App Distribution SDK:

    Swift

    func application(_ app: UIApplication, 
                     open url: URL,
                     options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
       if AppDistribution.appDistribution().application(application, open: url, options: options) {
          return true
       }
    
       // Handle other non-Firebase URLs here.
    
       return false
    }
    

    Objective-C

    - (BOOL)application:(UIApplication *)app 
                openURL:(NSURL *)url 
                options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {
       if ([[FIRAppDistribution appDistribution] application:app openURL:url options:options]) {
          return YES;
       }
    
       // Handle other non-Firebase URLs here.
    
       return NO;
    }
    
  6. Kompilieren Sie abschließend Ihre Anwendung neu.

Schritt 3: In-App-Benachrichtigungen konfigurieren

Das App Distribution SDK bietet zwei Möglichkeiten zum Einrichten von In-App-Build-Benachrichtigungen für Ihre Tester: eine grundlegende Konfiguration für Benachrichtigungen, die mit einem vordefinierten App-Update und Anmeldedialogfelder, die Testern angezeigt werden, sowie eine erweiterte Benachrichtigung Konfiguration, mit der Sie Ihre eigene Benutzeroberfläche anpassen können. Wenn Sie das App Distribution SDK noch nicht verwendet haben, empfehlen wir Ihnen, zuerst die grundlegende Benachrichtigungskonfiguration zu verwenden.

Grundlegende Konfiguration

Verwenden Sie checkForUpdate, um ein vordefiniertes Dialogfeld zum Aktivieren von Benachrichtigungen anzuzeigen. die noch keine Benachrichtigungen aktiviert haben, und prüfen Sie, verfügbar. Wenn sie aufgerufen wird, führt die Methode die folgende Sequenz aus:

  1. Prüft, ob ein Tester Benachrichtigungen aktiviert hat, indem er aufgefordert wird, sich mit seinem Google-Konto in App Distribution anzumelden.

  2. Hat der Tester noch keine Warnmeldungen aktiviert, wird ein vordefiniertes Dialogfeld angezeigt.

    Die Aktivierung von Benachrichtigungen erfolgt auf dem Testgerät einmalig und bleibt über Updates Ihrer App hinweg erhalten. Benachrichtigungen bleiben auf dem Testgerät aktiviert, bis die App deinstalliert oder die Methode signOutTester aufgerufen wird. Weitere Informationen finden Sie in der Referenzdokumentation der Methode (Swift oder Objective-C).

  3. Prüft, ob neue Builds verfügbar sind, die der Tester installieren kann.

Sie können checkForUpdate() jederzeit in Ihrer App aufrufen. So können Sie Ihre Tester beispielsweise auffordern, beim Start neue verfügbare Builds zu installieren, indem Sie checkForUpdate() in die onAppear(perform:) der Stammansicht Ihrer App einfügen.

Im folgenden Beispiel wird geprüft, ob der Tester Benachrichtigungen aktiviert und Zugriff auf einen neuen Build hat. Falls ja, wird ein Dialogfeld angezeigt, wenn der Build zur Installation verfügbar ist:

Swift

Hinweis:Dieses Produkt ist nicht für macOS-, Mac Catalyst-, tvOS- oder watchOS-Ziele verfügbar.
AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
  if error != nil {
      // Handle error
      return
  }

  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

Hinweis: Dieses Produkt ist nicht für macOS-, Mac Catalyst-, tvOS- oder watchOS-Ziele verfügbar.
[[FIRAppDistribution appDistribution]
  checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
                                 NSError *_Nullable error) {
  if (error) {
    // Handle error
    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

Mehr Flexibilität mit den Methoden signInTester() und isTesterSignedIn die Anmeldung Ihres Testers anpassen, damit er besser auf das Design der App.

Im folgenden Beispiel wird geprüft, ob sich der Tester bereits in seinem Firebase App Distribution-Testerkonto angemeldet hat. So können Sie die Anmeldeoberfläche nur für Tester anzeigen lassen, die sich noch nicht angemeldet haben. Nachdem der Tester angemeldet sind, können Sie checkForUpdate() aufrufen, um zu prüfen, Zugriff auf einen neuen Build.

Swift

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

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

Informationen zu weiteren Methoden, einschließlich signOutTester(), siehe App Distribution-Referenzdokumentation für Swift und Objective-C.

Schritt 4: Implementierung erstellen und testen

Erstellen Sie abschließend Ihre App und testen Sie die Implementierung, indem Sie den Build über die Firebase-Konsole an Tester verteilen.

Besuchen Sie die App Distribution Leitfaden zur Fehlerbehebung , um Hilfe bei häufigen Problemen zu erhalten, wie zum Beispiel:

  • Tester erhalten keine In-App-Benachrichtigungen
  • Tester werden mehrmals aufgefordert, sich bei Google anzumelden