1. Przegląd
Witamy w samouczku dotyczącym integrowania pakietu SDK Firebase App Distribution z aplikacją na iOS. W tym laboratorium kodowania dodasz do aplikacji pakiet SDK Rozpowszechnianie aplikacji, aby wyświetlać testerom w aplikacji alerty o dostępności nowych wersji do pobrania. Dowiesz się, jak używać konfiguracji podstawowej i niestandardowej, aby testerzy mogli się zalogować i otrzymywać aktualizacje. Następnie możesz przesłać nową wersję do usługi Rozpowszechnianie aplikacji i wywołać alert o nowej kompilacji bezpośrednio w aplikacji.
Czego się nauczysz
- Jak używać usługi App Distribution do wysyłania przedpremierowej wersji aplikacji do aktywnych testerów
- Integrowanie pakietu SDK App Distribution na iOS z aplikacją
- Jak powiadomić testera o nowej kompilacji przedpremierowej gotowej do zainstalowania
- Jak dostosować pakiet SDK do swoich potrzeb związanych z testowaniem
Czego potrzebujesz
- Xcode 12 (lub nowsza wersja)
- CocoaPods 1.9.1 lub nowszy
- Konto dewelopera Apple na potrzeby dystrybucji ad hoc
- fizyczne urządzenie z iOS do testowania; ( Aplikacja symulatora iOS będzie działać w większości przypadków, ale symulatory nie mogą pobierać wersji).
Jak zamierzasz wykorzystać ten samouczek?
Jak oceniasz swoje doświadczenie w tworzeniu aplikacji na iOS?
2. Tworzenie i konfigurowanie projektu Firebase
Tworzenie nowego projektu Firebase
- Zaloguj się w konsoli Firebase, korzystając ze swojego konta Google.
- Kliknij przycisk, aby utworzyć nowy projekt, a następnie wpisz jego nazwę (np.
App Distribution Codelab
). - Kliknij Dalej.
- Po wyświetleniu monitu przeczytaj i zaakceptuj warunki usługi Firebase, a potem kliknij Dalej.
- (Opcjonalnie) Włącz w konsoli Firebase pomoc AI (nazywaną „Gemini w Firebase”).
- W tym samouczku nie potrzebujesz Google Analytics, więc wyłącz opcję Google Analytics.
- Kliknij Utwórz projekt, poczekaj, aż projekt zostanie udostępniony, a następnie kliknij Dalej.
Dodawanie aplikacji do Firebase
Postępuj zgodnie z dokumentacją, aby zarejestrować aplikację w Firebase. Użyj identyfikatora pakietu na iOS „com.google.firebase.codelab.AppDistribution.<your_name>”.
Gdy pojawi się odpowiednia prośba, pobierz plik GoogleService-Info.plist
projektu. Będzie Ci potrzebny później.
3. Pobieranie przykładowego projektu
Pobieranie kodu
Zacznij od sklonowania przykładowego projektu.
git clone git@github.com:googlecodelabs/firebase-appdistribution-ios.git
Jeśli nie masz zainstalowanego narzędzia git, możesz też pobrać projekt przykładowy ze strony GitHub lub klikając ten link.
Pobieranie zależności i otwieranie projektu w Xcode
- Otwórz plik Podfile w tym samym katalogu.
cd firebase-appdistribution-ios/start Open Podfile
- Dodaj do pliku Podfile ten wiersz:
Podfile
pod 'Firebase/AppDistribution'
Uruchom pod update
w katalogu projektu i otwórz projekt w Xcode.
pod install --repo-update xed .
Zaktualizuj identyfikator pakietu, aby pasował do aplikacji Firebase.
W menu po lewej stronie kliknij dwukrotnie AppDistributionExample. Następnie otwórz kartę Ogólne i zmień identyfikator pakietu, aby pasował do identyfikatora pakietu aplikacji Firebase, który znajdziesz w ustawieniach projektu. Powinna to być nazwa „com.google.firebase.codelab.AppDistribution.<your_name>”.
Dodaj Firebase do swojej aplikacji
Znajdź w systemie plików pobrany wcześniej plik GoogleService-Info.plist
i przeciągnij go do katalogu głównego projektu Xcode. Ten plik możesz też w każdej chwili pobrać ze strony ustawień projektu.
W pliku AppDistributionExample/AppDelegate.swift
zaimportuj Firebase u góry pliku.
AppDistributionExample/AppDelegate.swift
import Firebase
W metodzie didFinishLaunchingWithOptions
dodaj wywołanie, aby skonfigurować Firebase.
AppDistributionExample/AppDelegate.swift
FirebaseApp.configure()
4. Konfigurowanie alertów o nowych wersjach w aplikacji za pomocą pakietu SDK App Distribution
W tym kroku dodasz do aplikacji pakiet SDK Firebase App Distribution i będziesz wyświetlać testerom w aplikacji alerty o dostępności nowych wersji aplikacji do zainstalowania. Aby to zrobić, włącz Firebase App Testers API w projekcie „Firebase Codelab” (w Google Cloud Console). Musisz zalogować się na to samo konto i wybrać odpowiedni projekt z menu u góry.
Konfigurowanie alertów w aplikacji
Pakiet SDK App Distribution udostępnia 2 sposoby konfigurowania alertów o kompilacji w aplikacji dla testerów: podstawową konfigurację alertów, która zawiera gotowe okno logowania wyświetlane testerom, oraz zaawansowaną konfigurację alertów, która umożliwia dostosowanie własnego interfejsu.
Zaczniemy od podstawowej konfiguracji alertu. Możesz użyć checkForUpdate
, aby wyświetlić gotowe okno dialogowe z prośbą o włączenie alertów testerom, którzy jeszcze tego nie zrobili, a następnie sprawdzić, czy dostępna jest nowa kompilacja. Testerzy mogą włączyć alerty, logując się na konto, które ma dostęp do aplikacji w App Distribution. Po wywołaniu metoda wykonuje następującą sekwencję:
- Sprawdza, czy tester włączył alerty. Jeśli nie, wyświetla gotowe okno, w którym prosi o zalogowanie się w App Distribution przy użyciu konta Google.
Włączenie alertów to jednorazowy proces na urządzeniu testowym, który jest zachowywany podczas aktualizacji aplikacji. Alerty pozostają włączone na urządzeniu testowym, dopóki aplikacja nie zostanie odinstalowana lub dopóki nie zostanie wywołana metoda signOutTester
. Więcej informacji znajdziesz w dokumentacji referencyjnej metody ( Swift lub Objective-C).
- Sprawdza, czy są dostępne nowe wersje do zainstalowania przez testera. Zwraca obiekt release lub błąd.
checkForUpdate
możesz umieścić w dowolnym miejscu w aplikacji. Możesz na przykład poprosić testerów o zainstalowanie nowo dostępnych wersji podczas uruchamiania aplikacji, umieszczając checkForUpdate w funkcji viewDidAppear klasy UIViewController.
W pliku AppDistributionViewController.swift
zaimportuj Firebase u góry pliku.
AppDistributionViewController.swift
import Firebase
Otwórz plik AppDistributionExample/AppDistributionViewController.swift i skopiuj wiersze do metody viewDidAppear
w ten sposób:
AppDistributionViewController.swift
override func viewDidAppear(_ animated: Bool) {
checkForUpdate()
}
Teraz zaimplementujmy metodę checkForUpdate().
AppDistributionViewController.swift
private func checkForUpdate() {
AppDistribution.appDistribution().checkForUpdate(completion: { [self] release, error in
var uiAlert: UIAlertController
if error != nil {
uiAlert = UIAlertController(title: "Error", message: "Error Checking for update! \(error?.localizedDescription ?? "")", preferredStyle: .alert)
} else if release == nil {
uiAlert = UIAlertController(title: "Check for Update", message: "No releases found!!", preferredStyle: .alert)
uiAlert.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default))
} else {
guard let release = release else { return }
let title = "New Version Available"
let message = "Version \(release.displayVersion)(\(release.buildVersion)) is available."
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.present(uiAlert, animated: true, completion: nil)
})
}
5. Tworzenie aplikacji i zapraszanie testerów do jej pobrania
W tym kroku skompilujesz aplikację i przetestujesz implementację, rozpowszechniając kompilację wśród testerów za pomocą konsoli Firebase.
Tworzenie aplikacji
Gdy przedpremierowa wersja aplikacji będzie gotowa do rozpowszechniania wśród testerów, wybierz „Any iOS Device (arm64)” jako miejsce docelowe kompilacji, a następnie Product –> Archive. Po utworzeniu archiwum utwórz podpisaną dystrybucję za pomocą profilu dystrybucji deweloperskiej.
Po zakończeniu kompilacji w określonym folderze zapisywany jest plik IPA i kilka plików dziennika. W kolejnych krokach rozpowszechnisz plik IPA wśród testerów.
Jeśli podczas tworzenia aplikacji wystąpią problemy, zapoznaj się z dokumentacją Apple dotyczącą podpisywania kodu, aby znaleźć rozwiązania.
Udostępnianie aplikacji testerom
Aby rozpowszechnić aplikację wśród testerów, prześlij plik IPA za pomocą konsoli Firebase:
- Otwórz stronę App Distribution w konsoli Firebase. Gdy pojawi się prośba, wybierz projekt Firebase.
- Kliknij Rozpocznij.
- Na stronie Wersje wybierz z menu aplikację, którą chcesz rozpowszechniać.
- Przeciągnij plik IPA aplikacji do konsoli, aby go przesłać.
- Po zakończeniu przesyłania określ grupy testerów i poszczególnych testerów, którzy mają otrzymać kompilację. (Dodaj swój adres e-mail, aby otrzymać zaproszenie). Następnie dodaj informacje o wersji. Więcej informacji o tworzeniu grup testerów znajdziesz w artykule Zarządzanie testerami.
- Kliknij Dystrybuuj, aby udostępnić kompilację testerom.
Dodawanie siebie jako testera wersji
W konsoli Firebase możesz teraz zobaczyć dodanych testerów w sekcji wersji aplikacji.
Ponieważ podano adres e-mail, otrzymasz e-maila z Firebase App Distribution z zaproszeniem do testowania aplikacji. Jesteś pierwszym testerem. Aby skonfigurować urządzenie testowe jako tester, przejdź do sekcji poniżej.
Rejestrowanie urządzenia testowego
Aby pobrać i przetestować wersję Ad Hoc, musisz najpierw zarejestrować urządzenie testowe.
- Na urządzeniu testowym z iOS otwórz e-maila wysłanego z Firebase App Distribution i kliknij link Rozpocznij. Otwórz link w Safari.
- W wyświetlonej aplikacji internetowej Firebase App Distribution zaloguj się na konto Google i kliknij Zaakceptuj zaproszenie.
Teraz zobaczysz wydanie, do którego masz dostęp.
- Kliknij Zarejestruj urządzenie, aby udostępnić identyfikator UDID Firebase, dzięki czemu później będziesz mieć możliwość zaktualizowania profilu udostępniania aplikacji.
- Postępuj zgodnie z instrukcjami i przejdź do ustawień, aby pobrać profil i udostępnić identyfikator UDID.
Gdy wrócisz do Rozpowszechniania aplikacji, wersja będzie oznaczona jako „Urządzenie zarejestrowane”:
Identyfikator UDID testera został udostępniony deweloperowi. Teraz deweloper musi udostępnić testerowi nową wersję aplikacji.
Wyświetlanie informacji o testerach w konsoli
W widoku dewelopera w konsoli Firebase tester będzie widoczny jako „Zaakceptowano” w sekcji wersji:
Jeśli urządzenie, którego używa, nie jest jeszcze uwzględnione w profilu aprowizacji, otrzymasz też e-maila jako deweloper. Powiadomimy Cię o nowym identyfikatorze UDID, który musisz dodać. Możesz też wyeksportować wszystkie identyfikatory UDID jako plik tekstowy.
- Aby wyeksportować wszystkie identyfikatory UDID, otwórz kartę Testerzy i grupy.
- Kliknij „Eksportuj identyfikatory UDID Apple”.
Plik powinien zawierać identyfikator UDID urządzenia testowego.
Device ID Device Name Device Platform
1234567890 tester.app.distribtuion@gmail.com - iPhone SE 2nd Gen ios
Gdy otrzymasz jednego z tych e-maili, zaktualizuj profil udostępniania o identyfikator UDID i rozpowszechnij nową kompilację wśród testerów, wykonując te czynności:
- Dodaj urządzenia do portalu deweloperów Apple.
- Opcja 1. Zaimportuj identyfikatory UDID urządzeń jako plik CSV. Na karcie Testerzy i grupy w panelu App Distribution wybierz Wszystkie osoby testujące, a potem kliknij Eksportuj identyfikatory UDID Apple, aby pobrać plik CSV. Następnie zaimportuj plik na konto dewelopera Apple, korzystając z opcji Register Multiple Devices (Zarejestruj wiele urządzeń). Więcej informacji znajdziesz w dokumentacji Apple. Pamiętaj, że konto dewelopera Apple może umożliwiać importowanie tylko ograniczonej liczby urządzeń rocznie.
- Opcja 2. Zbierz i wpisz identyfikatory UDID za pomocą poczty e-mail. Na stronie Add Devices (Dodaj urządzenia) w portalu dla deweloperów Apple zarejestruj nowy identyfikator UDID podany w otrzymanym e-mailu.
- Dodaj zarejestrowane urządzenia do profilu udostępniania.
- Pobierz profil administracyjny i użyj go do ponownego skompilowania aplikacji. Jeśli ponownie kompilujesz aplikację tylko po to, aby zaktualizować zarejestrowane urządzenia, nie aktualizuj numeru kompilacji ani wersji.
- Ponownie rozpowszechnij aplikację w konsoli Firebase lub za pomocą interfejsu wiersza poleceń. Jeśli masz już rozpowszechnioną kompilację o tym samym numerze i wersji, e-maile z powiadomieniami otrzymają tylko użytkownicy nowo zarejestrowanych urządzeń.
Pobieranie wersji na urządzenie testowe
Wersja zawiera teraz identyfikator UDID urządzenia testowego, więc może ono pobrać i zainstalować aplikację. App Distribution wysyła e-maila do testerów, gdy ich identyfikator UDID zostanie dodany do nowej wersji.
- Na urządzeniu testowym wróć do aplikacji internetowej testera App Distribution, korzystając z linku w e-mailu lub ikony na ekranie głównym urządzenia.
Gdy przejdziesz do aplikacji z ćwiczenia z programowania dotyczącego identyfikatora UDID, zobaczysz, że wersja jest gotowa do pobrania.
- Jeśli korzystasz z urządzenia fizycznego, kliknij pobieranie, a następnie zainstaluj i uruchom aplikację.
- Po uruchomieniu aplikacji pojawi się prośba o włączenie alertów o nowych wersjach. Wybierz „Włącz”.
- Następnie pojawi się prośba o zalogowanie się. Kliknij „Dalej”.
- Zaloguj się na konto testera.
- Wrócisz do aplikacji. Przy następnym uruchomieniu aplikacji nie musisz się logować ani akceptować alertów.
Przekazywanie aktualizacji testerom
- Zmień numer kompilacji na „2”.
- Jako miejsce docelowe kompilacji wybierz „Any iOS Device (arm64)” (Dowolne urządzenie z iOS (arm64)), a następnie kliknij Product –>Archive (Produkt –>Archiwizuj). Po wygenerowaniu archiwum utwórz podpisaną dystrybucję za pomocą profilu dystrybucji deweloperskiej.
- Po zakończeniu kompilacji w określonym folderze zapisywany jest plik IPA i kilka plików dziennika. Prześlij nowy plik IPA w konsoli Firebase, ponownie dodaj swój adres e-mail jako testera i rozpowszechnij aplikację.
Alerty dotyczące wersji testowej
- Jeśli aplikacja była otwarta, zamknij ją. Uruchom ponownie aplikację.
- Po ponownym uruchomieniu aplikacji powinien pojawić się alert „Dostępna jest nowa wersja”.
- Aby pobrać najnowszą wersję, kliknij „Aktualizuj”.
- Na następnym ekranie kliknij „Zainstaluj”.
- Gratulacje! Udało Ci się zaktualizować aplikację za pomocą wbudowanych alertów.
6. Dostosowywanie logowania testera
Metody signInTester/signOutTester i isTesterSignedIn zapewniają większą elastyczność w dostosowywaniu sposobu logowania testera, dzięki czemu może on lepiej pasować do wyglądu i stylu aplikacji.
Poniższy przykład sprawdza, czy tester zalogował się już na swoje konto testera w usłudze Rozpowszechnianie aplikacji przez Firebase. Dzięki temu możesz wyświetlać interfejs logowania tylko testerom, którzy jeszcze się nie zalogowali. Gdy tester się zaloguje, możesz wywołać funkcję checkForUpdate, aby sprawdzić, czy ma dostęp do nowej wersji.
Wyłączmy automatyczne sprawdzanie aktualizacji w funkcji viewDidAppear, komentując wywołanie checkForUpdate().
AppDistributionViewController.swift
override func viewDidAppear(_ animated: Bool) {
// checkForUpdate()
}
Zamiast tego wywołajmy funkcję checkForUpdate() w funkcji checkForUpdateButtonClicked().
@objc func checkForUpdateButtonClicked() {
checkForUpdate()
}
Teraz zaimplementujmy metodę signInOutButtonClicked(), która zaloguje użytkownika, jeśli jest wylogowany, lub wyloguje go, jeśli jest już zalogowany.
AppDistributionViewController.swift
@objc func signInOutButtonClicked() {
if isTesterSignedIn() {
AppDistribution.appDistribution().signOutTester()
self.configureCheckForUpdateButton()
self.configureSignInSignOutButton()
self.configureSignInStatus()
} else {
AppDistribution.appDistribution().signInTester(completion: { error in
if error == nil {
self.configureCheckForUpdateButton()
self.configureSignInSignOutButton()
self.configureSignInStatus()
} else {
let uiAlert = UIAlertController(title: "Custom:Error", message: "Error during tester sign in! \(error?.localizedDescription ?? "")", preferredStyle: .alert)
uiAlert.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default) {
_ in
})
self.present(uiAlert, animated: true, completion: nil)
}
})
}
}
Na koniec zaimplementujmy metodę isTesterSignedIn.
AppDistributionViewController.swift
private func isTesterSignedIn() -> Bool {
return AppDistribution.appDistribution().isTesterSignedIn
}
Tworzenie i testowanie implementacji
7. Gratulacje!
Funkcja „wyświetlanie alertów w aplikacji” została wbudowana w aplikację za pomocą pakietu SDK Firebase App Distribution na iOS.
Omówione zagadnienia
- Rozpowszechnianie aplikacji przez Firebase
- Firebase App Distribution New Alerts iOS SDK
Następne kroki
Więcej informacji
Masz pytanie?
Zgłaszanie problemów