Powiadom testerów o nowych wersjach aplikacji za pomocą pakietu SDK Firebase App Distribution na iOS – Codelabs

1. Omówienie

Witamy w integrowaniu pakietu SDK Rozpowszechniania aplikacji przez Firebase z ćwiczeniami z programowania aplikacji na iOS. W ramach tego ćwiczenia w Codelabs dodasz do swojej aplikacji pakiet SDK App Distribution, aby wyświetlać testerom alerty o nowych kompilacjach do pobrania. Dowiesz się, jak korzystać zarówno z konfiguracji podstawowej, jak i z konfiguracji niestandardowej, aby logować testerów i otrzymywać aktualizacje. Następnie przekażesz nową wersję do usługi Rozpowszechnianie aplikacji i wywołasz nowy alert kompilacji bezpośrednio w aplikacji.

Czego się nauczysz

  • Jak korzystać z Rozpowszechniania aplikacji do rozpowszechniania przedpremierowej wersji aplikacji testerom na żywo
  • Jak zintegrować pakiet SDK App Distribution na iOS z aplikacją
  • Jak powiadomić testera o nowej kompilacji przedpremierowej, która jest gotowa do zainstalowania
  • Jak dostosować pakiet SDK do unikalnych potrzeb związanych z testowaniem

Czego potrzebujesz

  • Xcode 12 (lub nowsza wersja)
  • CocoaPods w wersji 1.9.1 (lub nowszej)
  • konto dewelopera Apple na potrzeby dystrybucji ad hoc.
  • Fizyczne urządzenie z iOS do testowania. (W przypadku większości ćwiczeń z programowania sprawdzi się symulator iOS, ale symulatory nie mogą pobierać wersji).

Jak wykorzystasz ten samouczek?

Tylko do przeczytania Przeczytaj go i wykonaj ćwiczenia

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

Początkujący Poziom średnio zaawansowany Biegły
.

2. Utwórz projekt konsoli Firebase

Dodaj nowy projekt Firebase

  1. Zaloguj się w Firebase.
  2. W konsoli Firebase kliknij Dodaj projekt, a potem nazwij projekt „Ćwiczenie z programowania Firebase”.

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ć aplikację w Firebase. Użyj polecenia „com.google.firebase.codelab.App Distribution.<Twoja_nazwa>” jako identyfikator pakietu iOS.

Gdy pojawi się odpowiedni komunikat, pobierz plik GoogleService-Info.plist projektu. Będzie Ci ona potrzebna 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 zainstalowanej aplikacji git, możesz też pobrać przykładowy projekt ze strony GitHuba lub kliknąć ten link.

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

  1. Otwórz Podfile w tym samym katalogu.
cd firebase-appdistribution-ios/start
Open Podfile
  1. Dodaj ten wiersz do pliku podfile:

Plik 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 AppDISTionExample. Następnie znajdź kartę Ogólne i zmień identyfikator pakietu, aby pasował do identyfikatora pakietu aplikacji Firebase, który znajdziesz w ustawieniach projektu. Powinien to być „com.google.firebase.codelab.AppDISTion.<Twoja_nazwa>”.

Dodaj Firebase do swojej aplikacji

Znajdź pobrany wcześniej plik GoogleService-Info.plist w 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

Zaimportuj Firebase w pliku AppDistributionExample/AppDelegate.swift na początku pliku.

AppDistributeionExample/AppDelegate.swift

import Firebase

W metodzie didFinishLaunchingWithOptions dodaj wywołanie służące do konfigurowania Firebase.

AppDistributeionExample/AppDelegate.swift

FirebaseApp.configure()

4. Konfigurowanie alertów o kompilacji w aplikacji za pomocą pakietu App Distribution SDK

W tym kroku dodasz do swojej aplikacji pakiet SDK Firebase App Distribution i będziesz wyświetlać testerom alerty o nowych kompilacjach aplikacji do zainstalowania. Aby to zrobić, upewnij się, że w ćwiczeniach z programowania Firebase masz włączony interfejs API Firebase App Testers. projektu (w konsoli Google Cloud). Musisz zalogować się na to samo konto i wybrać właściwy projekt z menu u góry.

Konfigurowanie alertów w aplikacji

Pakiet App Distribution SDK udostępnia testerom 2 sposoby konfigurowania alertów kompilacji w aplikacji: podstawową konfigurację alertów z wbudowanym oknem logowania, które wyświetla się testerom, oraz zaawansowaną konfigurację alertów, która pozwala dostosować własny interfejs.

Zaczniemy od podstawowej konfiguracji alertów. Za pomocą checkForUpdate możesz wyświetlać gotowe okno 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 z dostępem do aplikacji w Rozpowszechnianiu aplikacji. Po wywołaniu metoda wywołuje tę sekwencję:

  1. Sprawdza, czy tester włączył alerty. W przeciwnym razie wyświetli gotowe okno z prośbą o zalogowanie się w Rozpowszechnianiu aplikacji przy użyciu konta Google.

Włączenie alertów jest jednorazowe na urządzeniu testowym i jest kontynuowane po każdej aktualizacji aplikacji. Alerty pozostaną włączone na urządzeniu testowym do czasu odinstalowania aplikacji lub wywołania metody signOutTester. Więcej informacji znajdziesz w dokumentacji referencyjnej metody ( Swift lub Objective-C).

  1. Sprawdza, czy są dostępne nowe kompilacje, które może zainstalować tester. Zwraca obiekt release lub błąd.

checkForUpdate możesz dodać w każdej chwili w swojej aplikacji. Możesz na przykład poprosić testerów o zainstalowanie nowo dostępnych kompilacji podczas uruchamiania, dodając checkForUpdate do klasy view DidAppear klasy UIViewController.

Zaimportuj Firebase w pliku AppDistributionViewController.swift na początku pliku.

AppDISTionViewController.swift,

import Firebase

Otwórz plik AppDystrybucjaExample/AppDISTionViewController.swift i skopiuj wiersze do metody viewDidAppear w ten sposób:

AppDISTionViewController.swift,

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

Teraz zaimplementujemy metodę checkForUpdate().

AppDISTionViewController.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. Utwórz aplikację i zaproś testerów do pobrania aplikacji

Na tym etapie skompilujesz aplikację i przetestujesz implementację, rozpowszechując kompilację testerom za pomocą konsoli Firebase.

Tworzenie aplikacji

Aby udostępnić przedpremierową wersję aplikacji testerom, wybierz „Dowolne urządzenie z iOS (arm64)” jako miejsce docelowe kompilacji, a następnie „Produkt-> Archiwum”. Po utworzeniu archiwum utwórz podpisaną dystrybucję z profilem dystrybucji deweloperskiej.

98d8eb042c36a685.png

b2e9ccff91d761c1.png

8E815564f64d2d39.png

Po zakończeniu kompilacji zostanie zapisany plik IPA i niektóre pliki dziennika we wskazanym folderze. Rozpowszechniasz plik IPA wśród testerów zgodnie z podanymi niżej instrukcjami.

Jeśli podczas tworzenia aplikacji wystąpią problemy, zapoznaj się z dokumentacją Apple dotyczącą podpisania kodu, która pomoże Ci je rozwiązać.

Udostępnianie aplikacji testerom

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

  1. Otwórz stronę Rozpowszechnianie aplikacji w konsoli Firebase. Gdy pojawi się prośba, wybierz projekt Firebase.
  2. Kliknij Rozpocznij.

E4671bd304ecfe47.png

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

8a3da2939b9746f4.png

  1. Przeciągnij plik IPA aplikacji do konsoli, aby go przesłać.
  2. Po zakończeniu przesyłania wskaż grupy testerów i poszczególnych testerów, którzy mają otrzymać kompilację. (Aby otrzymać zaproszenie, podaj swój adres e-mail). Następnie dodaj informacje o wersji dla kompilacji. Więcej informacji o tworzeniu grup testerów znajdziesz w artykule Zarządzanie testerami.

de63e3c3c64f909e.png

  1. Aby udostępnić kompilację testerom, kliknij Rozpowszechniaj.

b6e75dc216fc3731.png

Dodawanie siebie jako testera wersji

W konsoli Firebase zobaczysz teraz dodanych testerów w sekcji wersji aplikacji.

eb61c6be96ff3a11.png

Ponieważ został przez Ciebie podany adres e-mail, otrzymasz e-maila z usługi Rozpowszechniania aplikacji przez Firebase z zaproszeniem do przetestowania aplikacji. Jesteś teraz pierwszym testerem. Przejdź do sekcji poniżej, aby skonfigurować urządzenie testowe jako tester.

Rejestrowanie urządzenia testowego

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

  1. Na urządzeniu testowym iOS otwórz e-maila wysłanego z Rozpowszechniania aplikacji przez Firebase i kliknij link Rozpocznij. Pamiętaj, aby otworzyć link w przeglądarce 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ę, do której Cię zaproszono.

  1. Kliknij Zarejestruj urządzenie, aby udostępnić Firebase swój identyfikator UDID i w ten sposób 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 identyfikator UDID.

Gdy wrócisz do dystrybucji aplikacji, wersja będzie oznaczona jako „Zarejestrowano urządzenie”:

fe93d649dfa25877.png

Identyfikator UDID testera został udostępniony deweloperowi. Teraz to deweloper powinien utworzyć dla testera nową wersję aplikacji.

Wyświetlanie informacji o testerach w konsoli

Gdy wrócisz do widoku dewelopera w konsoli Firebase, tester będzie oznaczony jako „Zaakceptowano”. w ramach premiery:

1bef6f182c1c58f9.png

Otrzymasz też e-maila jako deweloper, jeśli urządzenie, którego używa, nie jest jeszcze uwzględnione w profilu obsługi administracyjnej. Zobaczysz powiadomienie o nowym identyfikatorze UDID, który musisz dodać. Możesz też wyeksportować wszystkie identyfikatory UDID do pliku tekstowego.

  1. Aby wyeksportować wszystkie identyfikatory UDID, otwórz 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 takiego e-maila, zaktualizuj swój profil obsługi administracyjnej o identyfikator UDID i wyślij nową kompilację testerom, wykonując te czynności:

  1. Dodaj urządzenia w portalu dla deweloperów Apple.
  • Opcja 1. Zaimportuj identyfikatory UDID urządzeń jako plik CSV. W sekcji Testerzy Na karcie Grupy w panelu Rozpowszechniania aplikacji wybierz Wszyscy testerzy, a następnie kliknij Eksportuj identyfikatory UDID Apple, aby pobrać plik CSV. Następnie zaimportuj plik na konto dewelopera Apple, korzystając z opcji Zarejestruj wiele urządzeń. Więcej informacji znajdziesz w dokumentacji Apple. Pamiętaj, że z konta dewelopera Apple można importować ograniczoną liczbę urządzeń rocznie.
  • Opcja 2. Uzyskaj i wpisz identyfikatory UDID e-mailem. Na stronie Dodaj urządzenia w portalu dla deweloperów Apple zarejestruj nowy identyfikator UDID podany w otrzymanym e-mailu.

FFb74294e68ee1c8.png

  1. Dodaj zarejestrowane urządzenia do profilu obsługi administracyjnej.
  2. Pobierz profil obsługi administracyjnej i użyj go do ponownego skompilowania aplikacji. Jeśli kompilujesz tylko w celu zaktualizowania zarejestrowanych urządzeń, nie aktualizuj numeru kompilacji ani wersji.
  3. Ponownie rozpowszechniaj aplikację z konsoli Firebase lub interfejsu wiersza poleceń. Jeśli rozpowszechnisz już kompilację z tym samym numerem i tą samą wersją, tylko użytkownicy nowo zarejestrowanych urządzeń otrzymają e-maile z powiadomieniami.

Pobieranie wersji z urządzenia testowego

Teraz wersja ma identyfikator UDID urządzenia testowego, więc urządzenie testowe może pobrać i zainstalować aplikację. Rozpowszechnianie aplikacji wysyła do testerów e-maila po dodaniu ich identyfikatora UDID do nowej wersji.

A4049260bae2850b

  1. Na urządzeniu testowym wróć do aplikacji internetowej testera w usłudze Rozpowszechnianie aplikacji, korzystając z linku w e-mailu lub ikony na ekranie głównym urządzenia.

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

tata6d03b6ad78746.png

  1. Jeśli używasz urządzenia fizycznego, naciśnij Pobierz, a potem zainstaluj i uruchom aplikację.
  2. Po uruchomieniu aplikacji pojawi się prośba o włączenie alertów dotyczących nowych kompilacji. Wybierz „Włącz”.

6e3540a2900734e6.png

  1. Następnie pojawi się prośba o zalogowanie. Kliknij „Kontynuuj

82d90d7935bfaea0.png

  1. Zaloguj się na konto testera.

13bee1d03fa94ebf.png

  1. Wrócisz do aplikacji. Następnym razem, gdy uruchomisz aplikację, nie będzie trzeba się logować ani akceptować alertów.

815d6757eb5f6327.png

Przekazywanie aktualizacji testerom

  1. Zmień numer kompilacji na „2”.

861aa63ebbc6ec54.png

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

b6e75dc216fc3731.png

Alerty kompilacji testowej

  1. Sprawdź, czy aplikacja została zamknięta, jeśli była otwarta. Ponownie uruchom aplikację.
  2. Po ponownym uruchomieniu aplikacji powinien pojawić się komunikat „Dostępna nowa wersja”. alert.

3bd532992df458e6.png

  1. Kliknij „Aktualizuj”. aby pobrać 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. Dostosowywanie logowania testera

Metody signInTester/signOutTester i isTesterSignedIn dają Ci większą elastyczność w dostosowywaniu procesu logowania się testera, tak aby był lepiej dopasowany do wyglądu i stylu Twojej aplikacji.

Poniższy przykład pokazuje, czy tester zalogował się już na konto testera usługi Rozpowszechniania aplikacji przez Firebase. Dzięki temu możesz wyświetlać interfejs logowania tylko tym testerom, którzy jeszcze się nie zalogowali. Gdy tester się zaloguje, możesz wywołać funkcję checkForUpdate, aby sprawdzić, czy ma on dostęp do nowej kompilacji.

Wyłączmy automatyczne sprawdzanie aktualizacji w narzędziu viewmadeAppea, dodając komentarz do wywołania checkForUpdate().

AppdistributionionViewController.swift.

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

Zamiast tego wywołajmy checkForUpdate() w elemencie checkForUpdateButtonClicked().

 @objc func checkForUpdateButtonClicked() {
    checkForUpdate()
 }

Teraz zaimplementujemy metodę signInOutButtonClicked(), która będzie logować użytkownika, jeśli jest niezalogowany, lub wylogować się, jeśli jest już zalogowany.

AppdistributionionViewController.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 zaimplementuj metodę isTesterSignedI.

AppdistributionionViewController.swift.

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

Tworzenie i testowanie implementacji

7. Gratulacje!

Masz wbudowany „wyświetlacz alertów w aplikacji” do aplikacji za pomocą pakietu SDK Firebase App Distribution na iOS.

Omówione zagadnienia

  • Rozpowszechnianie aplikacji przez Firebase
  • Nowy pakiet SDK Firebase App Distribution na iOS

Następne kroki

Więcej informacji

Masz pytanie?

Zgłoś problemy