Powiadamiaj testerów o nowych wydaniach aplikacji za pomocą zestawu SDK Firebase App Distribution iOS — Codelab

1. Przegląd

Witamy w szkoleniu dotyczącym integracji pakietu SDK dystrybucji aplikacji Firebase w laboratorium z programowania aplikacji na iOS. Podczas tych zajęć z programowania dodasz do swojej aplikacji pakiet SDK do dystrybucji aplikacji, aby wyświetlać testerom alerty w aplikacji, gdy będą dostępne do pobrania nowe kompilacje. Dowiesz się, jak używać zarówno konfiguracji podstawowej, jak i konfiguracji niestandardowej, aby umożliwić testerom zalogowanie się i otrzymywanie aktualizacji. Następnie przekażesz nową wersję do App Distribution i uruchomisz alert o nowej kompilacji bezpośrednio w aplikacji.

Czego się dowiesz

  • Jak używać aplikacji App Distribution do dystrybucji wersji wstępnej aplikacji wśród testerów na żywo
  • Jak zintegrować zestaw SDK aplikacji App Distribution iOS ze swoją aplikacją
  • Jak powiadomić testera, gdy dostępna jest nowa wersja przedpremierowa gotowa do zainstalowania
  • Jak dostosować zestaw SDK do swoich unikalnych potrzeb testowych

Co będziesz potrzebował

Jak będziesz korzystać z tego samouczka?

Przeczytaj tylko i wyłącznie Przeczytaj i wykonaj ćwiczenia

Jak oceniasz swoje doświadczenia z tworzeniem aplikacji na iOS?

Nowicjusz Mediator Biegły

2. Utwórz projekt konsoli Firebase

Dodaj nowy projekt Firebase

  1. Zaloguj się do Firebase.
  2. W konsoli Firebase kliknij Dodaj projekt, a następnie nazwij swój projekt „Firebase Codelab”.

Dla tego projektu nie musisz włączać Google Analytics.

  1. Kliknij opcję Utwórz projekt .

Dodaj aplikację do Firebase

Postępuj zgodnie z dokumentacją , aby zarejestrować aplikację w Firebase. Użyj „com.google.firebase.codelab.AppDistribution.<your_name>” jako identyfikatora pakietu iOS.

Po wyświetleniu monitu pobierz plik GoogleService-Info.plist swojego projektu. Będziesz tego potrzebować później.

3. Pobierz przykładowy projekt

Pobierz kod

Rozpocznij od sklonowania przykładowego projektu.

git clone git@github.com:googlecodelabs/firebase-appdistribution-ios.git

Jeśli nie masz zainstalowanego gita, możesz także pobrać przykładowy projekt ze strony GitHub lub klikając ten link .

Pobierz zależności i otwórz projekt w Xcode

  1. Otwórz plik Podfile w tym samym katalogu
cd firebase-appdistribution-ios/start
Open Podfile
  1. Dodaj następujący wiersz do swojego podfile:

Podplik

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 Twojej aplikacji Firebase

W lewym menu kliknij dwukrotnie AppDistributionExample. Następnie znajdź zakładkę Ogólne i zmień identyfikator pakietu na taki, który odpowiada identyfikatorowi pakietu Twojej aplikacji Firebase, który znajdziesz w ustawieniach projektu . Powinno to być „com.google.firebase.codelab.AppDistribution.<twoja_nazwa>”.

Dodaj Firebase do swojej aplikacji

Znajdź pobrany wcześniej plik GoogleService-Info.plist w swoim systemie plików i przeciągnij go do katalogu głównego projektu Xcode. Możesz także pobrać ten plik w dowolnym momencie ze strony ustawień swojego projektu.

3cf9290805e7fdab.png

W pliku AppDistributionExample/AppDelegate.swift zaimportuj Firebase na górze pliku

AppDistributionExample/AppDelegate.swift

import Firebase

A w metodzie didFinishLaunchingWithOptions dodaj wywołanie konfigurujące Firebase.

AppDistributionExample/AppDelegate.swift

FirebaseApp.configure()

4. Skonfiguruj powiadomienia o nowych kompilacjach w aplikacji za pomocą pakietu SDK do dystrybucji aplikacji

Na tym etapie dodasz do swojej aplikacji pakiet SDK Firebase App Distribution i wyświetlisz testerom alerty w aplikacji, gdy będą dostępne do zainstalowania nowe wersje Twojej aplikacji. Aby to zrobić, upewnij się, że masz włączony interfejs Firebase App Testers API dla swojego projektu „Firebase Codelab” (w Google Cloud Console). Będziesz musiał zalogować się na to samo konto i wybrać właściwy projekt z rozwijanego menu u góry.

Skonfiguruj alerty w aplikacji

Zestaw SDK do dystrybucji aplikacji udostępnia testerom dwa sposoby konfigurowania alertów kompilacji w aplikacji: podstawową konfigurację alertów zawierającą wstępnie wbudowane okno logowania wyświetlane testerom oraz zaawansowaną konfigurację alertów, która umożliwia dostosować swój własny interfejs użytkownika (UI).

Zaczniemy od podstawowej konfiguracji alertów. Możesz użyć checkForUpdate aby wyświetlić gotowe okno dialogowe włączania alertów testerom, którzy jeszcze nie włączyli alertów, a następnie sprawdzić, czy dostępna jest nowa kompilacja. Testerzy włączają alerty, logując się na konto, które ma dostęp do aplikacji w App Distribution. Po wywołaniu metoda realizuje następującą sekwencję:

  1. Sprawdza, czy tester włączył alerty. Jeśli nie, wyświetla gotowe okno dialogowe z prośbą o zalogowanie się do aplikacji App Distribution za pomocą konta Google.

Włączenie alertów jest procesem jednorazowym na urządzeniu testowym i trwa przez cały czas aktualizacji aplikacji. Alerty pozostają włączone na urządzeniu testowym do czasu odinstalowania aplikacji lub wywołania signOutTester . Aby uzyskać więcej informacji, zobacz dokumentację referencyjną metody ( Swift lub Objective-C ).

  1. Sprawdza, czy tester ma nowe kompilacje do zainstalowania. Zwraca obiekt wydania lub błąd .

Możesz dodać checkForUpdate w dowolnym momencie swojej aplikacji. Na przykład możesz poprosić testerów o zainstalowanie nowo dostępnych kompilacji przy uruchomieniu, włączając checkForUpdate w viewDidAppear UIViewController .

W pliku AppDistributionViewController.swift zaimportuj Firebase na górze pliku

AppDistributionViewController.swift

import Firebase

Otwórz plik AppDistributionExample/AppDistributionViewController.swift i skopiuj wiersze do metody viewDidAppear w następujący sposób:

AppDistributionViewController.swift

 override func viewDidAppear(_ animated: Bool) {
    checkForUpdate()
 }

Zaimplementujmy teraz 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. Zbuduj i zaproś testerów do pobrania Twojej aplikacji

Na tym etapie zbudujesz aplikację i przetestujesz implementację, dystrybuując kompilację do testerów za pomocą konsoli Firebase.

Zbuduj swoją aplikację

Kiedy będziesz gotowy do rozpowszechnienia przedpremierowej wersji aplikacji wśród testerów, wybierz „Dowolne urządzenie iOS (arm64)” jako miejsce docelowe kompilacji, a następnie Produkt->Archiwum. Po utworzeniu archiwum zbuduj podpisaną dystrybucję z profilem dystrybucji rozwojowej.

98d8eb042c36a685.png

b2e9ccff91d761c1.png

8e815564f64d2d39.png

Po zakończeniu kompilacji zapisuje plik IPA i niektóre pliki dziennika w określonym folderze. W poniższych krokach rozpowszechniasz plik IPA wśród testerów.

Jeśli podczas tworzenia aplikacji wystąpią problemy, zapoznaj się z dokumentacją dotyczącą współprojektowania firmy Apple, aby zapoznać się z krokami rozwiązywania problemów.

Udostępnij swoją aplikację testerom

Aby udostępnić aplikację testerom, prześlij plik IPA za pomocą konsoli Firebase:

  1. Otwórz stronę Dystrybucja aplikacji w konsoli Firebase. Po wyświetleniu monitu wybierz projekt Firebase.
  2. Naciśnij Rozpocznij

e4671bd304ecfe47.png

  1. Na stronie Wersje wybierz z menu rozwijanego aplikację, którą chcesz rozpowszechniać.

8a3da2939b9746f4.png

  1. Przeciągnij plik IPA aplikacji na konsolę, aby go przesłać.
  2. Po zakończeniu przesyłania określ grupy testerów i poszczególnych testerów, którym chcesz otrzymać kompilację. (Dodaj swój adres e-mail, aby otrzymać zaproszenie). Następnie dodaj informacje o wersji kompilacji. Więcej informacji na temat tworzenia grup testerów znajdziesz w artykule Zarządzanie testerami .

de63e3c3c64f909e.png

  1. Kliknij opcję Rozpowszechniaj, aby udostępnić kompilację testerom.

b6e75dc216fc3731.png

Dodaj siebie jako testera do wydania

W konsoli Firebase możesz teraz zobaczyć testerów dodanych w ramach wersji aplikacji.

eb61c6be96ff3a11.png

Ponieważ podałeś swój adres e-mail, otrzymasz wiadomość e-mail z Firebase App Distribution zapraszającą do przetestowania aplikacji. Jesteś teraz pierwszym testerem! Kontynuuj poniższą sekcję, aby skonfigurować jako tester na swoim urządzeniu testowym.

Zarejestruj swoje urządzenie testowe

Aby pobrać i przetestować wersję Ad Hoc, musisz najpierw zarejestrować urządzenie testowe.

  1. Na urządzeniu testowym iOS otwórz wiadomość e-mail wysłaną z Firebase App Distribution i kliknij link Rozpocznij. Pamiętaj, aby otworzyć link w przeglądarce Safari.
  2. W wyświetlonej aplikacji internetowej testera dystrybucji aplikacji Firebase zaloguj się na swoje konto Google i kliknij Zaakceptuj zaproszenie.

4d1af345ef944620.png

Zobaczysz teraz wydanie, na które Cię zaproszono.

  1. Kliknij opcję Zarejestruj urządzenie , aby udostępnić swój identyfikator UDID Firebase i móc później zaktualizować profil udostępniania aplikacji.

fd141215e54a938d.png

  1. Postępuj zgodnie z instrukcjami i przejdź do ustawień, aby pobrać profil i udostępnić swój UDID.

Teraz, gdy wrócisz do dystrybucji aplikacji, wersja zostanie oznaczona jako „Zarejestrowane urządzenie”:

fe93d649dfa25877.png

Identyfikator UDID testera został teraz udostępniony programiście. Teraz zadaniem programisty jest zbudowanie dla testera nowej wersji aplikacji.

Wyświetl informacje o testerze w konsoli

Wracając do widoku programisty w konsoli Firebase, tester pojawi się w wersji jako „Zaakceptowany”:

1bef6f182c1c58f9.png

Otrzymasz wówczas także wiadomość e-mail jako programista, jeśli urządzenie, którego używa, nie jest jeszcze uwzględnione w profilu udostępniania. Spowoduje to powiadomienie o nowym identyfikatorze UDID, który należy dodać. Masz także możliwość wyeksportowania wszystkich identyfikatorów UDID do pliku tekstowego.

  1. Aby wyeksportować wszystkie identyfikatory UDID, otwórz zakładkę Testerzy i grupy.

2745d49a6abc47fe.png

  1. Kliknij „Eksportuj identyfikatory UDID Apple”.

cb45477f8cc436ba.png

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 jedną z tych wiadomości e-mail, zaktualizuj swój profil udostępniania za pomocą identyfikatora UDID i przekaż nową wersję testerom, wykonując następujące kroki:

  1. Dodaj urządzenia do portalu dla programistów Apple.
  • Opcja 1: Zaimportuj identyfikatory UDID urządzeń jako plik CSV. Na karcie Testerzy i grupy w panelu dystrybucji aplikacji wybierz opcję Wszyscy testerzy, a następnie kliknij opcję Eksportuj identyfikatory Apple UDID, aby pobrać plik CSV. Następnie zaimportuj plik na swoje konto programisty Apple, korzystając z opcji Zarejestruj wiele urządzeń. Aby dowiedzieć się więcej, zapoznaj się z dokumentacją Apple . Pamiętaj, że Twoje konto programisty Apple może umożliwiać importowanie ograniczonej liczby urządzeń rocznie.
  • Opcja 2: Zbierz i wprowadź identyfikatory UDID pocztą elektroniczną. Na stronie Dodaj urządzenia w portalu dla programistów Apple zarejestruj nowy identyfikator UDID podany w otrzymanej wiadomości e-mail.

ffb74294e68ee1c8.png

  1. Dodaj zarejestrowane urządzenia do swojego profilu udostępniania .
  2. Pobierz profil aprowizacji i użyj go do odbudowania aplikacji. Jeśli przebudowujesz tylko w celu aktualizacji zarejestrowanych urządzeń, nie aktualizuj numeru kompilacji ani wersji.
  3. Dystrybuuj ponownie swoją aplikację z konsoli Firebase lub interfejsu CLI. Jeśli już rozpowszechniłeś kompilację o tym samym numerze kompilacji i wersji, tylko użytkownicy nowo zarejestrowanych urządzeń otrzymają e-maile z powiadomieniami.

Pobierz wersję z urządzenia testowego

Teraz wersja zawiera identyfikator UDID urządzenia testowego, dzięki czemu urządzenie testowe może pobrać i zainstalować aplikację. App Distribution wysyła wiadomość e-mail do testerów, gdy ich identyfikator UDID zostanie dodany do nowej wersji.

a4049260bae2850b.png

  1. Na urządzeniu testowym wróć do aplikacji internetowej testera dystrybucji aplikacji, korzystając z łącza w wiadomości e-mail lub ikony na ekranie głównym urządzenia.

Po przejściu do aplikacji UDID codelab zobaczysz, że wersja jest gotowa do pobrania.

tata6d03b6ad78746.png

  1. Jeśli korzystasz z urządzenia fizycznego, naciśnij przycisk pobierania, a następnie zainstaluj i uruchom aplikację!
  2. Po uruchomieniu aplikacja poprosi Cię o włączenie alertów o nowych kompilacjach. Wybierz „Włącz”

6e3540a2900734e6.png

  1. Następnie poprosi Cię o zalogowanie się. Kliknij „Kontynuuj”.

82d90d7935bfaea0.png

  1. Zaloguj się na swoje konto testera.

13bee1d03fa94ebf.png

  1. Zostaniesz przeniesiony z powrotem do aplikacji. Przy następnym uruchomieniu aplikacji nie będziesz musiał się logować ani akceptować alertów.

815d6757eb5f6327.png

Roześlij aktualizację swoim testerom

  1. Zaktualizuj numer kompilacji do „2”.

861aa63ebbc6ec54.png

  1. Wybierz „Dowolne urządzenie iOS (arm64)” jako miejsce docelowe kompilacji i Produkt->Archiwum. Po wygenerowaniu archiwum zbuduj podpisaną dystrybucję z profilem dystrybucji Development.
  2. Po zakończeniu kompilacji zapisuje plik IPA i niektóre pliki dziennika w określonym folderze. Prześlij ten nowy IPA do konsoli Firebase, ponownie dodaj swój adres e-mail jako tester i rozprowadź.

b6e75dc216fc3731.png

Testuj alerty dotyczące kompilacji

  1. Upewnij się, że aplikacja została zamknięta, jeśli była otwarta. Uruchom ponownie aplikację.
  2. Po ponownym uruchomieniu aplikacji powinien zostać wyświetlony komunikat „Dostępna jest nowa wersja”.

3bd532992df458e6.png

  1. Kliknij „Aktualizuj”, aby otrzymać najnowszą wersję.
  2. Kliknij „Zainstaluj” na następnym ekranie.

3a761d8fa4b79d33.png

  1. Gratulacje! Udało Ci się zaktualizować aplikację za pomocą wbudowanych alertów.

6. Dostosuj sposób 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 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 testerom, którzy jeszcze się nie zalogowali. Po zalogowaniu się testera możesz to zrobić wywołaj checkForUpdate, aby sprawdzić, czy tester ma dostęp do nowej kompilacji.

Wyłączmy automatyczne sprawdzanie aktualizacji w viewDidAppea r, komentując wywołanie checkForUpdate() .

AppDistributionViewController.swift

 override func viewDidAppear(_ animated: Bool) {
    // checkForUpdate()
 }

Zamiast tego wywołajmy metodę checkForUpdate() w funkcji checkForUpdateButtonClicked( ).

 @objc func checkForUpdateButtonClicked() {
    checkForUpdate()
 }

Teraz zaimplementujmy naszą metodęsignInOutButtonClicked () , która zaloguje użytkownika, jeśli jest wylogowany, lub wyloguje użytkownika, 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ę isTesterSignedI n.

AppDistributionViewController.swift

 private func isTesterSignedIn() -> Bool {
    return AppDistribution.appDistribution().isTesterSignedIn
 }

Zbuduj i przetestuj swoją implementację

7. Gratulacje!

Wbudowałeś funkcję „wyświetlania alertów w aplikacji” w aplikację przy użyciu zestawu SDK Firebase App Distribution iOS.

Co omówiliśmy

  • Dystrybucja aplikacji Firebase
  • Dystrybucja aplikacji Firebase Nowe alerty SDK iOS

Następne kroki

Ucz się więcej

Mam pytanie?

Zgłoś problemy