Mit den optionalen Firebase App Distribution iOS- und Android-SDKs können Sie Ihren Testern In-App-Benachrichtigungen anzeigen, wenn neue Builds Ihrer App zur Installation verfügbar sind. In diesem Leitfaden wird beschrieben, wie Sie mit den App Distribution iOS- und Android-SDKs neue Buildbenachrichtigungen für Ihre Tester erstellen und anpassen.
Hinweis
Fügen Sie Ihrem iOS-Projekt Firebase hinzu, falls noch nicht geschehen.
Schritt 1: App Distribution Tester API aktivieren
Wählen Sie in der Google Cloud Console Ihr Projekt aus.
Klicken Sie unter Firebase App Testers API auf Aktivieren.
Schritt 2: App Distribution zur App hinzufügen
Öffnen Sie die Podfile-Datei, die Sie für das Projekt erstellt haben, oder führen Sie
pod init
aus, um eine zu erstellen, und fügen Sie dann die folgende Zeile in den Zielbereich ein:pod 'FirebaseAppDistribution'
Führen Sie im Verzeichnis Ihrer Podfile
pod install
aus und öffnen Sie dann die erstellte Datei.xcworkspace
.Importiere das Firebase-Modul in deine
App
-Struktur oderUIApplicationDelegate
:Swift
import FirebaseCore import FirebaseAppDistribution
Objective-C
@import FirebaseCore; @import FirebaseAppDistribution;
Konfigurieren Sie eine freigegebene
FirebaseApp
-Instanz in derapplication(_:didFinishLaunchingWithOptions:)
-Methode Ihres App-Delegierten:Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
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; }
Kompilieren Sie abschließend Ihre Anwendung neu.
Schritt 3: In-App-Benachrichtigungen konfigurieren
Mit dem App Distribution SDK können Sie In-App-Build-Benachrichtigungen für Ihre Tester auf zwei Arten einrichten: eine grundlegende Benachrichtigungskonfiguration mit vorgefertigten App-Update- und Anmeldedialogen, die den Testern angezeigt werden, und eine erweiterte Benachrichtigungskonfiguration, mit der Sie Ihre eigene Benutzeroberfläche anpassen können. Wenn Sie das App Distribution SDK zum ersten Mal verwenden, sollten Sie zuerst die grundlegende Benachrichtigungskonfiguration verwenden.
Grundlegende Konfiguration
Verwenden Sie checkForUpdate
, um Testern, die noch keine Benachrichtigungen aktiviert haben, ein vordefiniertes Dialogfeld zum Aktivieren von Benachrichtigungen anzeigen zu lassen. Prüfen Sie dann, ob ein neuer Build verfügbar ist. Bei einem Aufruf führt die Methode die folgende Sequenz aus:
Prüft, ob ein Tester Benachrichtigungen aktiviert hat, indem er aufgefordert wird, sich mit seinem Google-Konto in App Distribution anzumelden.
Wenn der Tester Benachrichtigungen noch nicht aktiviert hat, wird ein vordefinierter 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).Prüft, ob neue Builds verfügbar sind, die der Tester installieren kann.
Sie können checkForUpdate()
jederzeit in Ihrer Anwendung aufrufen. Beispielsweise können Sie Ihre Tester auffordern, beim Start neu verfügbare Builds zu installieren. Fügen Sie dazu checkForUpdate()
in das onAppear(perform:)
-Element der Stammansicht der Anwendung ein.
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
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
[[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
Mit den Methoden signInTester()
und isTesterSignedIn
können Sie die Anmeldung Ihrer Tester flexibler anpassen, damit sie besser zum Erscheinungsbild Ihrer App passt.
Mit dem folgenden Beispiel wird geprüft, ob sich der Tester bereits in seinem Firebase App Distribution-Testerkonto angemeldet hat. Daher können Sie festlegen, dass Ihre Anmelde-UI nur für Tester angezeigt wird, die sich noch nicht angemeldet haben. Nachdem sich der Tester angemeldet hat, können Sie checkForUpdate()
aufrufen, um zu prüfen, ob er Zugriff auf einen neuen Build hat.
Swift
// 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
// 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()
, finden Sie in der 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.
In der App Distribution-Anleitung zur Fehlerbehebung finden Sie Informationen zu häufigen Problemen, z. B.:
- Tester erhalten keine In-App-Benachrichtigungen
- Tester werden mehrmals aufgefordert, sich bei Google anzumelden