Mit den optionalen iOS- und Android-SDKs von Firebase App Distribution können Sie Ihren Testerinnen und Testern In-App-Benachrichtigungen anzeigen lassen, wenn neue Builds Ihrer App zur Installation verfügbar sind. In diesem Leitfaden wird beschrieben, wie Sie mit den iOS- und Android-SDKs von App Distribution neue Build-Benachrichtigungen für Ihre Tester erstellen und anpassen.
Hinweis
Falls noch nicht geschehen, fügen Sie Ihrem iOS-Projekt Firebase hinzu.
Schritt 1: App Distribution Tester API aktivieren
Wählen Sie Ihr Projekt in der Google Cloud-Console aus.
Klicken Sie unter Firebase App Testers API auf Aktivieren.
Schritt 2: App Distribution zu Ihrer App hinzufügen
Öffnen Sie das Podfile, das Sie für das Projekt erstellt haben, oder führen Sie
pod initaus, um eines zu erstellen. Fügen Sie dann im Zielabschnitt die folgende Zeile hinzu:pod 'FirebaseAppDistribution'
Führen Sie im Verzeichnis Ihrer Podfile-Datei
pod installaus und öffnen Sie dann die erstellte.xcworkspace-Datei.Importieren Sie das Firebase-Modul in Ihre
App-Struktur oderUIApplicationDelegate:Swift
import FirebaseCore import FirebaseAppDistributionObjective-C
@import FirebaseCore; @import FirebaseAppDistribution;Konfigurieren Sie eine freigegebene
FirebaseApp-Instanz in derapplication(_:didFinishLaunchingWithOptions:)-Methode Ihres App-Delegaten:Swift
// Use Firebase library to configure APIs FirebaseApp.configure()Objective-C
// Use Firebase library to configure APIs [FIRApp configure];Wenn Swizzling 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 die Anwendung anschließend neu.
Schritt 3: In-App-Benachrichtigungen konfigurieren
Das App Distribution SDK bietet zwei Möglichkeiten, In-App-Build-Benachrichtigungen für Ihre Tester einzurichten: eine einfache Benachrichtigungskonfiguration mit vordefinierten Dialogfeldern für App-Updates und die Anmeldung, die Testern angezeigt werden, und eine erweiterte Benachrichtigungskonfiguration, mit der Sie Ihre eigene Benutzeroberfläche anpassen können. Wir empfehlen, zuerst die grundlegende Benachrichtigungskonfiguration zu verwenden, wenn Sie mit dem App Distribution SDK noch nicht vertraut sind.
Grundlegende Konfiguration
Mit checkForUpdate können Sie Testern, die Benachrichtigungen noch nicht aktiviert haben, ein vordefiniertes Dialogfeld zum Aktivieren von Benachrichtigungen anzeigen lassen und dann prüfen, ob ein neuer Build verfügbar ist. Wenn die Methode aufgerufen wird, wird die folgende Sequenz ausgeführt:
Prüft, ob ein Tester Benachrichtigungen aktiviert hat, indem er aufgefordert wird, sich mit seinem Google-Konto in App Distribution anzumelden.
Wenn der Tester noch keine Benachrichtigungen aktiviert hat, wird ein vordefiniertes Dialogfeld angezeigt.
Das Aktivieren von Benachrichtigungen ist ein einmaliger Vorgang auf dem Testgerät und bleibt auch nach Updates Ihrer App bestehen. Benachrichtigungen bleiben auf dem Testgerät aktiviert, bis die App deinstalliert oder die Methode
signOutTesteraufgerufen wird. Weitere Informationen finden Sie in der Referenzdokumentation zur Methode (Swift oder Objective-C).Prüft, ob neue Builds für den Tester verfügbar sind.
Sie können checkForUpdate() jederzeit in Ihrer App aufrufen. Sie können Ihre Tester beispielsweise beim Start auffordern, neu 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 hat und Zugriff auf einen neuen Build hat. Wenn 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
Die Methoden signInTester() und isTesterSignedIn bieten Ihnen mehr Flexibilität bei der Anpassung der Anmeldung für Tester, sodass sie besser zum Erscheinungsbild Ihrer App passt.
Im folgenden Beispiel wird geprüft, ob sich der Tester bereits in seinem Firebase App Distribution-Testerkonto angemeldet hat. So kannst du die Anmelde-UI nur für Tester anzeigen lassen, die sich noch nicht angemeldet haben. Nachdem sich der Tester angemeldet hat, können Sie checkForUpdate() aufrufen, um zu prüfen, ob der Tester 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 Console an Tester verteilen.
In der App Distribution-Anleitung zur Fehlerbehebung finden Sie Hilfe bei häufigen Problemen, z. B.:
- Tester erhält keine In-App-Benachrichtigungen
- Tester werden mehrmals aufgefordert, sich in Google anzumelden