Opcjonalne pakiety SDK Firebase App Distribution na iOS i Androida umożliwiają wyświetlanie alerty w aplikacji wysyłane testerom o nowych kompilacjach aplikacji, instalacji. Z tego przewodnika dowiesz się, jak korzystać z pakietów SDK na iOS i Androida (App Distribution) , aby tworzyć i dostosowywać alerty dotyczące nowych kompilacji dla testerów.
Zanim zaczniesz
Dodaj Firebase do swojego projektu iOS, chyba że masz to już za sobą.
Krok 1. Włącz interfejs App Distribution Tester API
Wybierz swój projekt w Google Cloud.
W sekcji Interfejs API Firebase App Testers kliknij Włącz.
Krok 2. Dodaj App Distribution do aplikacji
Otwórz plik Podfile utworzony dla projektu (lub uruchom plik
pod init
, aby go utworzyć jednej), a następnie dodaj ten wiersz w sekcji docelowej:pod 'FirebaseAppDistribution'
W katalogu pliku podfile uruchom polecenie
pod install
, a następnie otwórz plik utworzono.xcworkspace
plik.Zaimportuj moduł Firebase do struktury
App
lubUIApplicationDelegate
:Swift
import FirebaseCore import FirebaseAppDistribution
Objective-C
@import FirebaseCore; @import FirebaseAppDistribution;
Skonfiguruj udostępnioną instancję
FirebaseApp
w urzędzie certyfikacji Metodaapplication(_:didFinishLaunchingWithOptions:)
:Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
Jeśli przesuwanie jest wyłączone, przekaż wszystkie otwarte adresy URL do pakietu SDK App Distribution w Twoja implementacja usługi
application(_:open:options:)
: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; }
Na koniec ponownie skompiluj aplikację.
Krok 3. Skonfiguruj alerty w aplikacji
Pakiet SDK App Distribution umożliwia skonfigurowanie alertów dotyczących kompilacji w aplikacji na 2 sposoby dla testerów: podstawowa konfiguracja alertów zawierająca gotową aktualizację aplikacji i okna logowania do wyświetlania testerom oraz zaawansowany alert co pozwala dostosować interfejs użytkownika. Śr zalecamy najpierw skorzystanie z podstawowej konfiguracji alertów, jeśli nie masz doświadczenia Pakiet SDK App Distribution.
Konfiguracja podstawowa
Użyj checkForUpdate
, aby wyświetlić gotowe okno włączania alertów
którzy jeszcze nie włączyli alertów, a następnie sprawdź, czy nowa kompilacja
i dostępności informacji. Po wywołaniu metoda wywołuje tę sekwencję:
Sprawdza, czy tester włączył alerty, prosząc go o zalogowanie się App Distribution na swoje konto Google.
Jeśli tester nie włączył jeszcze alertów, wyświetli się gotowe okno.
Włączanie alertów jest jednorazowym procesem na urządzeniu testowym i jest aktywne przez cały okres aktualizacje aplikacji. Alerty pozostaną włączone na urządzeniu testowym do aplikacja została odinstalowana lub do czasu wywołania metody
signOutTester
. Zapoznaj się z dokumentacją metody (Swift, lub Objective-C) .Sprawdza, czy są dostępne nowe kompilacje, które może zainstalować tester.
Działanie checkForUpdate()
możesz wywołać w dowolnym momencie w aplikacji. Na przykład:
może prosić testerów o zainstalowanie nowo dostępnych kompilacji podczas uruchamiania
w tym checkForUpdate()
w lokalizacji onAppear(perform:)
w katalogu głównym aplikacji
widok.
Ten przykład pozwala sprawdzić, 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:
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];
}
}];
Konfiguracja zaawansowana
Metody signInTester()
i isTesterSignedIn
dają większą elastyczność
dostosować sposób logowania się testera, aby
do wyglądu i stylu aplikacji.
Ten przykład pozwala sprawdzić, czy tester zalogował się już na swoim
Firebase App Distribution konto testera, możesz więc wyświetlić swoje
tylko dla testerów, którzy jeszcze się nie zalogowali. Gdy tester
Po zalogowaniu się możesz wywołać funkcję checkForUpdate()
, aby sprawdzić, czy tester
i dostęp do nowej kompilacji.
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
}];
}
Informacje o dodatkowych metodach, w tym o signOutTester()
,
zapoznaj się z dokumentacją referencyjną App Distribution dla
Szybki
i Objective-C.
Krok 4. Utwórz i przetestuj implementację
Na koniec stwórz aplikację i przetestuj jej implementację dystrybucja kompilacji testerom za pomocą konsoli Firebase.
Odwiedź App Distribution Przewodnik dotyczący rozwiązywania problemów aby uzyskać pomoc w rozwiązaniu typowych problemów, takich jak:
- Tester nie otrzymuje alertów w aplikacji
- Tester jest pytany o zalogowanie się w Google więcej niż raz