Opcjonalne pakiety SDK Firebase App Distribution dla systemów iOS i Android umożliwiają wyświetlanie testerom alertów w aplikacji, gdy dostępne są nowe wersje aplikacji do zainstalowania. W tym przewodniku wyjaśniono, jak używać zestawów SDK App Distribution dla systemów iOS i Android do tworzenia i dostosowywania nowych alertów kompilacji dla testerów.
Zanim zaczniesz
Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do swojego projektu na iOS .
Krok 1 : Włącz interfejs API testera dystrybucji aplikacji
Wybierz swój projekt w Google Cloud Console .
W sekcji Firebase App Testers API kliknij Włącz .
Krok 2 : Dodaj dystrybucję aplikacji do swojej aplikacji
Otwórz plik Podfile, który utworzyłeś dla projektu (lub uruchom
pod init
, aby go utworzyć), a następnie dodaj następujący wiersz w sekcji docelowej:pod 'FirebaseAppDistribution'
W katalogu swojego podfile uruchom
pod install
, a następnie otwórz utworzony plik.xcworkspace
.Zaimportuj moduł Firebase do swojej struktury
App
lubUIApplicationDelegate
:Szybki
import FirebaseCore import FirebaseAppDistribution
Cel C
@import FirebaseCore; @import FirebaseAppDistribution;
Skonfiguruj udostępnioną instancję
FirebaseApp
w metodzie applicationapplication(_:didFinishLaunchingWithOptions:)
delegata aplikacji:Szybki
// Use Firebase library to configure APIs FirebaseApp.configure()
Cel C
// Use Firebase library to configure APIs [FIRApp configure];
Jeśli funkcja swizzling jest wyłączona, przekaż wszystkie otwarte adresy URL do pakietu App Distribution SDK w swojej implementacji
application(_:open:options:)
:Szybki
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 }
Cel 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; }
Na koniec ponownie skompiluj aplikację.
Krok 3 : Skonfiguruj alerty w aplikacji
Pakiet App Distribution SDK udostępnia testerom dwa sposoby konfigurowania alertów kompilacji w aplikacji: podstawową konfigurację alertów, która zawiera gotowe okna dialogowe dotyczące aktualizacji aplikacji i logowania, które są wyświetlane testerom, oraz zaawansowaną konfigurację alertów, która umożliwia dostosować swój własny interfejs użytkownika. Jeśli dopiero zaczynasz korzystać z zestawu SDK dystrybucji aplikacji, zalecamy najpierw użycie podstawowej konfiguracji alertów.
Podstawowa konfiguracja
Użyj checkForUpdate
aby wyświetlić gotowe okno dialogowe włączania alertów testerom, którzy jeszcze nie włączyli alertów, a następnie sprawdź, czy dostępna jest nowa kompilacja. Po wywołaniu metoda wykonuje następującą sekwencję:
Sprawdza, czy tester włączył alerty, prosząc go o zalogowanie się do usługi App Distribution przy użyciu konta Google.
Jeśli tester nie włączył jeszcze alertów, wyświetla gotowe okno dialogowe.
Włączanie alertów to jednorazowy proces na urządzeniu testowym, który trwa przez wszystkie aktualizacje Twojej aplikacji. Alerty pozostają włączone na urządzeniu testowym do momentu odinstalowania aplikacji lub wywołania metody
signOutTester
. Zobacz dokumentację referencyjną metody ( Swift lub Objective-C ), aby uzyskać więcej informacji.Sprawdza nowe dostępne kompilacje do zainstalowania przez testera.
Możesz wywołać checkForUpdate()
w dowolnym momencie w swojej aplikacji. Na przykład możesz poprosić testerów o zainstalowanie nowo dostępnych kompilacji podczas uruchamiania, włączając checkForUpdate()
w onAppear(perform:)
głównego widoku aplikacji.
Poniższy przykład sprawdza, czy tester włączył alerty i ma dostęp do nowej kompilacji, a jeśli tak, wyświetla okno dialogowe, gdy kompilacja jest dostępna do zainstalowania:
Szybki
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)
})
Cel 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];
}
}];
Zaawansowana konfiguracja
Metody signInTester()
i isTesterSignedIn
zapewniają większą elastyczność w dostosowywaniu środowiska logowania testera, dzięki czemu może lepiej pasować do wyglądu i działania Twojej aplikacji.
Poniższy przykład sprawdza, czy tester zalogował się już na swoje konto testera Firebase App Distribution, więc możesz wybrać wyświetlanie interfejsu logowania tylko dla testerów, którzy jeszcze się nie zalogowali. Po zalogowaniu się testera możesz wywołaj checkForUpdate()
, aby sprawdzić, czy tester ma dostęp do nowej wersji.
Szybki
// 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
})
}
Cel 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
}];
}
Aby uzyskać informacje na temat dodatkowych metod, w tym signOutTester()
, zobacz dokumentację referencyjną dystrybucji aplikacji dla Swift i Objective-C .
Krok 4 : Zbuduj i przetestuj swoją implementację
Na koniec zbuduj aplikację i przetestuj implementację, dystrybuując kompilację do testerów za pomocą konsoli Firebase.
Odwiedź przewodnik rozwiązywania problemów z dystrybucją aplikacji, aby uzyskać pomoc dotyczącą typowych problemów, takich jak:
- Tester nie otrzymuje alertów w aplikacji
- Tester jest proszony o zalogowanie się w Google więcej niż jeden raz