Ostrzegaj testerów o nowych wersjach aplikacji za pomocą pakietu SDK Firebase App Distribution na iOS — Codelab

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

1. Przegląd

Witamy na stronie poświęconej integracji pakietu SDK Firebase App Distribution w ramach zajęć z programowania aplikacji na iOS. W tym laboratorium programowania dodasz pakiet SDK dystrybucji aplikacji do swojej aplikacji, aby wyświetlać testerom alerty w aplikacji, gdy nowe kompilacje będą dostępne do pobrania. Dowiesz się, jak używać zarówno konfiguracji podstawowej, jak i konfiguracji niestandardowej, aby testerzy byli zalogowani w celu otrzymywania aktualizacji. Następnie wypchniesz nową wersję do dystrybucji aplikacji i wywołasz alert nowej kompilacji bezpośrednio w aplikacji.

Czego się nauczysz

  • Jak korzystać z dystrybucji aplikacji, aby rozpowszechniać wersję przedpremierową wśród testerów na żywo
  • Jak zintegrować pakiet App Distribution iOS SDK ze swoją aplikacją?
  • Jak ostrzec testera, gdy nowa wersja przedpremierowa jest gotowa do zainstalowania?
  • Jak dostosować SDK do swoich unikalnych potrzeb testowych

Co będziesz potrzebował

  • Xcode 12 (lub nowszy)
  • CocoaPods 1.9.1 (lub nowszy)
  • Konto Apple Developer do dystrybucji Ad Hoc
  • Fizyczne urządzenie iOS do testowania. ( Aplikacja symulatora iOS będzie działać w przypadku większości ćwiczeń z programowania, ale symulatory nie mogą pobierać wersji).

Jak będziesz korzystać z tego samouczka?

Przeczytaj to tylko Przeczytaj i wykonaj ćwiczenia

Jak oceniasz swoje doświadczenie w tworzeniu 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 nadaj projektowi nazwę „Firebase Codelab”.

Nie musisz włączać Google Analytics w tym projekcie.

  1. Kliknij Utwórz projekt .

Dodaj aplikację do Firebase

Postępuj zgodnie z dokumentacją, aby zarejestrować swoją aplikację w Firebase. Użyj „com.google.firebase.codelab.AppDistribution.<twoja_nazwa>” 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

Zacznij od sklonowania przykładowego projektu.

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

Jeśli nie masz zainstalowanego git, możesz również pobrać przykładowy projekt z jego 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:

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

W lewym menu kliknij dwukrotnie AppDistributionExample. Następnie znajdź kartę Ogólne i zmień identyfikator pakietu, aby pasował do identyfikatora pakietu Twojej aplikacji Firebase, który można znaleźć w ustawieniach projektu . Powinien 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 też pobrać ten plik w dowolnym momencie ze strony ustawień 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, aby skonfigurować Firebase.

AppDistributionExample/AppDelegate.swift

FirebaseApp.configure()

4. Skonfiguruj alerty nowej kompilacji w aplikacji za pomocą pakietu SDK dystrybucji aplikacji

W tym kroku dodasz do swojej aplikacji pakiet Firebase App Distribution SDK i wyświetlisz testerom alerty w aplikacji, gdy nowe kompilacje aplikacji będą dostępne do zainstalowania. Aby to zrobić, upewnij się, że w projekcie „Firebase Codelab” (w Google Cloud Console) włączono interfejs Firebase App Testers API . Musisz zalogować się na to samo konto i wybrać odpowiedni projekt z rozwijanego menu u góry.

Skonfiguruj alerty w aplikacji

Pakiet App Distribution SDK zapewnia dwa sposoby konfigurowania alertów kompilacji w aplikacji dla testerów: podstawową konfigurację alertów, która zawiera wstępnie utworzone okno dialogowe logowania, które jest wyświetlane testerom, oraz zaawansowaną konfigurację alertów, która umożliwia dostosować własny interfejs użytkownika (UI).

Zaczniemy od podstawowej konfiguracji alertów. Możesz użyć checkForUpdate , aby wyświetlić wstępnie utworzone okno dialogowe włączania alertów testerom, którzy jeszcze nie włączyli alertów, a następnie sprawdzić, czy jest dostępna 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 wykonuje 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 App Distribution przy użyciu konta Google.

Włączenie alertów to jednorazowy proces na urządzeniu testowym, który utrzymuje się przez wszystkie aktualizacje 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.

  1. Sprawdza dostępność nowych kompilacji do zainstalowania przez testera. Zwraca obiekt zwolnienia lub błąd .

Możesz dołączyć checkForUpdate w dowolnym momencie swojej aplikacji. Na przykład możesz monitować testerów o zainstalowanie nowych dostępnych kompilacji podczas uruchamiania, dołączając checkForUpdate w viewDidAppear UIViewController .

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

AppDistributionViewController.swift

import Firebase

Otwórz AppDistributionExample/AppDistributionViewController.swift i skopiuj wiersze do metody viewDidAppear w następujący 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. Twórz i zapraszaj testerów do pobrania Twojej aplikacji

W tym kroku utworzysz aplikację i przetestujesz implementację, rozpowszechniając kompilację wśród testerów za pomocą konsoli Firebase.

Zbuduj swoją aplikację

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

98d8eb042c36a685.png

b2e9ccff91d761c1.png

8e815564f64d2d39.png

Po zakończeniu kompilacji zapisuje plik IPA i niektóre pliki dziennika w określonym folderze. Rozpowszechniasz plik IPA do testerów w następujących krokach.

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

Rozpowszechnij swoją aplikację wśród testerów

Aby rozpowszechnić aplikację wśród testerów, 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 Wydania wybierz z menu 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órzy mają otrzymać kompilację. (Dodaj swój adres e-mail, aby otrzymać zaproszenie). Następnie dodaj informacje o wersji kompilacji. Zobacz Zarządzanie testerami , aby uzyskać więcej informacji na temat tworzenia grup testerów.

de63e3c3c64f909e.png

  1. Kliknij Dystrybuuj, aby udostępnić kompilację testerom.

b6e75dc216fc3731.png

Dodaj siebie jako testera do wydania

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

eb61c6be96ff3a11.png

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

Zarejestruj swoje urządzenie testowe

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

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

4d1af345ef944620.png

Teraz zobaczysz wersję, na którą zostałeś zaproszony.

  1. Kliknij Zarejestruj urządzenie, aby udostępnić swój identyfikator UDID w Firebase, aby móc później zaktualizować profil obsługi administracyjnej aplikacji.

fd141215e54a938d.png

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

Teraz, gdy wrócisz do dystrybucji aplikacji, wydanie jest teraz oznaczone jako „Zarejestrowane urządzenie”:

fe93d649dfa25877.png

UDID testera został udostępniony deweloperowi. Teraz od programisty zależy zbudowanie testera nowej wersji aplikacji.

Wyświetl informacje o testerze w konsoli

W widoku programisty w konsoli Firebase tester będzie wyświetlany jako „Zaakceptowany” w wersji:

1bef6f182c1c58f9.png

Otrzymasz również wiadomość e-mail jako programista, jeśli urządzenie, z którego korzystają, nie jest jeszcze uwzględnione w profilu aprowizacji. To powiadomi Cię o nowym identyfikatorze UDID, który musisz dodać. Masz również możliwość wyeksportowania wszystkich identyfikatorów UDID do pliku tekstowego.

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

2745d49a6abc47fe.png

  1. Kliknij opcję „Eksportuj identyfikatory UDID firmy 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

Po otrzymaniu jednego z tych e-maili zaktualizuj swój profil aprowizacji przy użyciu identyfikatora UDID i roześlij nową kompilację do testerów, wykonując następujące czynności:

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

ffb74294e68ee1c8.png

  1. Dodaj zarejestrowane urządzenia do swojego profilu aprowizacji .
  2. Pobierz profil aprowizacji i użyj go do odbudowania swojej aplikacji. Jeśli odbudowujesz tylko w celu aktualizacji zarejestrowanych urządzeń, nie aktualizuj numeru kompilacji ani wersji.
  3. Ponownie rozpowszechniaj swoją aplikację z konsoli Firebase lub interfejsu wiersza polecenia. Jeśli już dystrybuowałeś kompilację z tym samym numerem kompilacji i wersją, tylko użytkownicy nowo zarejestrowanych urządzeń otrzymają powiadomienia e-mail.

Pobierz wersję z urządzenia testowego

Teraz wersja ma identyfikator UDID urządzenia testowego, więc urządzenie testowe może pobrać i zainstalować aplikację. Dystrybucja aplikacji 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 do ćwiczeń z kodowania UDID zobaczysz, że wydanie jest gotowe do pobrania.

tata6d03b6ad78746.png

  1. Jeśli korzystasz z urządzenia fizycznego, naciśnij pobierz, a następnie zainstaluj i uruchom aplikację!
  2. Po uruchomieniu aplikacja poprosi o włączenie alertów nowej kompilacji. 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. Wrócisz do aplikacji. Przy następnym uruchomieniu aplikacji nie będziesz musiał się logować ani akceptować alertów.

815d6757eb5f6327.png

Przekaż aktualizację swoim testerom

  1. Zaktualizuj numer kompilacji do „2”.

861aa63ebbc6ec54.png

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

b6e75dc216fc3731.png

Alerty o kompilacji testowej

  1. Upewnij się, że aplikacja została zamknięta, jeśli była otwarta. Uruchom ponownie aplikację.
  2. Po ponownym uruchomieniu aplikacji powinien pojawić się alert „Dostępna 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 logowanie testera

Metody signInTester/signOutTester i isTesterSignedIn zapewniają większą elastyczność w dostosowywaniu środowiska logowania testera, dzięki czemu można lepiej dopasować wygląd i sposób działania 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 się jeszcze nie zalogowali. Po zalogowaniu się testera możesz wywołaj checkForUpdate , aby sprawdzić, czy tester ma dostęp do nowej kompilacji.

Wyłączmy automatyczne sprawdzanie aktualizacji w viewDidAppear przez zakomentowanie wywołania checkForUpdate() .

AppDistributionViewController.swift

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

Zamiast tego wywołajmy checkForUpdate() w 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!

Masz wbudowaną funkcję „wyświetlanie alertów w aplikacji” w aplikacji przy użyciu pakietu SDK Firebase App Distribution iOS SDK.

Co omówiliśmy

  • Dystrybucja aplikacji Firebase
  • Firebase App Distribution Nowe alerty SDK na iOS

Następne kroki

Ucz się więcej

Mam pytanie?

Zgłoś problemy