Alerte os testadores sobre seus novos lançamentos de aplicativos com o SDK do Firebase App Distribution para iOS - Codelab

1. Visão Geral

Bem-vindo ao codelab Integração do SDK do Firebase App Distribution no seu aplicativo iOS. Neste codelab, você adicionará o SDK do App Distribution ao seu app para exibir alertas no app aos testadores quando novas versões estiverem disponíveis para download. Você aprenderá como usar uma configuração básica e uma configuração personalizada para que seus testadores façam login para receber atualizações. Em seguida, você enviará uma nova versão para o App Distribution e acionará um novo alerta de build diretamente no aplicativo.

O que você aprenderá

  • Como usar o App Distribution para distribuir um aplicativo de pré-lançamento para testadores ao vivo
  • Como integrar o SDK do App Distribution para iOS ao seu aplicativo
  • Como alertar um testador quando há uma nova versão de pré-lançamento pronta para instalação
  • Como personalizar o SDK para atender às suas necessidades exclusivas de teste

O que você precisará

  • Xcode 12 (ou superior)
  • CocoaPods 1.9.1 (ou superior)
  • Uma conta de desenvolvedor Apple para distribuição Ad Hoc
  • Um dispositivo iOS físico para teste. (O aplicativo simulador para iOS funcionará na maior parte do codelab, mas os simuladores não poderão fazer download de versões.)

Como você usará este tutorial?

Leia apenas Leia e complete os exercícios

Como avaliaria sua experiência com a criação de aplicativos iOS?

Novato Intermediário Proficiente

2. Crie um projeto de console do Firebase

Adicionar novo projeto do Firebase

  1. Faça login no Firebase.
  2. No console do Firebase, clique em Adicionar projeto e nomeie seu projeto como "Firebase Codelab".

Você não precisa ativar o Google Analytics para este projeto.

  1. Clique em Criar projeto .

Adicionar aplicativo ao Firebase

Siga a documentação para registrar seu aplicativo no Firebase. Use "com.google.firebase.codelab.AppDistribution.<seu_nome>" como ID do pacote iOS.

Quando solicitado, baixe o arquivo GoogleService-Info.plist do seu projeto. Você precisará disso mais tarde.

3. Obtenha o projeto de amostra

Baixe o código

Comece clonando o projeto de exemplo.

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

Se você não tiver o git instalado, também poderá baixar o projeto de amostra na página do GitHub ou clicando neste link .

Baixe as dependências e abra o projeto no Xcode

  1. Abra o Podfile no mesmo diretório
cd firebase-appdistribution-ios/start
Open Podfile
  1. Adicione a seguinte linha ao seu podfile:

Podfile

pod 'Firebase/AppDistribution'

Execute pod update no diretório do projeto e abra o projeto no Xcode.

pod install --repo-update
xed .

Atualize o identificador do pacote para corresponder ao seu aplicativo Firebase

No menu esquerdo, clique duas vezes em AppDistributionExample. Em seguida, localize a guia Geral e altere o identificador do pacote para corresponder ao identificador do pacote do seu aplicativo Firebase, que pode ser encontrado nas configurações do projeto . Deve ser "com.google.firebase.codelab.AppDistribution.<seu_nome>"

Adicione o Firebase ao seu aplicativo

Localize o arquivo GoogleService-Info.plist que você baixou anteriormente em seu sistema de arquivos e arraste-o para a raiz do projeto Xcode. Você também pode baixar esse arquivo a qualquer momento na página de configurações do seu projeto.

3cf9290805e7fdab.png

Em seu arquivo AppDistributionExample/AppDelegate.swift importe o Firebase na parte superior do arquivo

AppDistributionExample/AppDelegate.swift

import Firebase

E no método didFinishLaunchingWithOptions adicione uma chamada para configurar o Firebase.

AppDistributionExample/AppDelegate.swift

FirebaseApp.configure()

4. Configure alertas de nova compilação no aplicativo com o App Distribution SDK

Nesta etapa, você adicionará o SDK do Firebase App Distribution ao seu aplicativo e exibirá alertas no aplicativo para seus testadores quando novas versões do seu aplicativo estiverem disponíveis para instalação. Para fazer isso, certifique-se de ter ativado a API Firebase App Testers para seu projeto "Firebase Codelab" (no Google Cloud Console). Você precisará fazer login com a mesma conta e selecionar o projeto correto no menu suspenso na parte superior.

Configurar alertas no aplicativo

O SDK do App Distribution fornece duas maneiras de configurar alertas de compilação no aplicativo para seus testadores: uma configuração de alerta básica, que vem com uma caixa de diálogo de login pré-construída para exibir aos testadores, e uma configuração de alerta avançada, que permite que você personalize sua própria interface de usuário (IU).

Começaremos com a configuração básica do alerta. Você pode usar checkForUpdate para exibir uma caixa de diálogo de ativação de alertas pré-construída para testadores que ainda não ativaram alertas e, em seguida, verificar se uma nova compilação está disponível. Os testadores habilitam alertas fazendo login em uma conta que tenha acesso ao aplicativo no App Distribution. Quando chamado, o método executa a seguinte sequência:

  1. Verifica se um testador ativou alertas. Caso contrário, exibe uma caixa de diálogo predefinida que solicita que eles façam login no App Distribution com sua conta do Google.

A ativação de alertas é um processo único no dispositivo de teste e persiste durante as atualizações do seu aplicativo. Os alertas permanecem ativados no dispositivo de teste até que o aplicativo seja desinstalado ou até que o método signOutTester seja chamado. Consulte a documentação de referência do método ( Swift ou Objective-C ) para obter mais informações.

  1. Verifica se há compilações recentemente disponíveis para o testador instalar. Retorna um objeto de lançamento ou um erro .

Você pode incluir checkForUpdate em qualquer ponto do seu aplicativo. Por exemplo, você pode solicitar que seus testadores instalem compilações recém-disponíveis na inicialização, incluindo checkForUpdate no viewDidAppear do UIViewController .

Em seu arquivo AppDistributionViewController.swift , importe o Firebase na parte superior do arquivo

AppDistributionViewController.swift

import Firebase

Abra AppDistributionExample/AppDistributionViewController.swift e copie as linhas no método viewDidAppear assim:

AppDistributionViewController.swift

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

Agora vamos implementar o método 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. Crie e convide testadores para baixar seu aplicativo

Nesta etapa, você criará seu aplicativo e testará sua implementação distribuindo a versão aos testadores usando o console do Firebase.

Crie seu aplicativo

Quando estiver pronto para distribuir uma versão de pré-lançamento do seu aplicativo aos testadores, selecione "Qualquer dispositivo iOS (arm64)" como destino de compilação e Produto->Arquivo. Depois que o arquivo for criado, crie uma distribuição assinada com perfil de distribuição de Desenvolvimento.

98d8eb042c36a685.png

b2e9ccff91d761c1.png

8e815564f64d2d39.png

Quando a compilação for concluída, ele salvará um arquivo IPA e alguns arquivos de log na pasta especificada. Você distribui o arquivo IPA aos testadores nas etapas a seguir.

Se você tiver problemas ao criar seu aplicativo, consulte os documentos de design de código da Apple para obter etapas de solução de problemas.

Distribua seu aplicativo para testadores

Para distribuir seu aplicativo aos testadores, faça upload do arquivo IPA usando o Firebase console:

  1. Abra a página App Distribution do console do Firebase. Selecione seu projeto do Firebase quando solicitado.
  2. Pressione Começar

e4671bd304ecfe47.png

  1. Na página Lançamentos, selecione o aplicativo que deseja distribuir no menu suspenso.

8a3da2939b9746f4.png

  1. Arraste o arquivo IPA do seu aplicativo para o console para carregá-lo.
  2. Quando o upload for concluído, especifique os grupos de testadores e os testadores individuais que você deseja que recebam a compilação. (Adicione seu e-mail para receber o convite.) Em seguida, adicione notas de versão para a compilação. Consulte Gerenciar testadores para saber mais sobre como criar grupos de testadores.

de63e3c3c64f909e.png

  1. Clique em Distribuir para disponibilizar a compilação aos testadores.

b6e75dc216fc3731.png

Adicione-se como testador do lançamento

No console do Firebase, agora você pode ver os testadores adicionados na versão do seu aplicativo.

eb61c6be96ff3a11.png

Como você incluiu seu endereço de e-mail, receberá um e-mail do Firebase App Distribution convidando você para testar o aplicativo. Você agora é o primeiro testador! Continue a seção abaixo para configurar como testador em seu dispositivo de teste.

Registre seu dispositivo de teste

Você precisará primeiro registrar seu dispositivo de teste para baixar e testar uma versão Ad Hoc.

  1. No seu dispositivo de teste iOS, abra o e-mail enviado pelo Firebase App Distribution e toque no link Primeiros passos. Certifique-se de abrir o link no Safari.
  2. No aplicativo da web testador do Firebase App Distribution que aparece, faça login com sua conta do Google e toque em Aceitar convite.

4d1af345ef944620.png

Agora, você verá o lançamento para o qual foi convidado.

  1. Toque em Registrar dispositivo para compartilhar seu UDID com o Firebase e atualizar o perfil de provisionamento do seu aplicativo posteriormente.

fd141215e54a938d.png

  1. Siga as instruções e acesse as configurações para baixar o perfil e compartilhar seu UDID.

Agora, quando você voltar ao App Distribution, a versão estará marcada como "Dispositivo registrado":

fe93d649dfa25877.png

O UDID do testador agora foi compartilhado com o desenvolvedor. Agora cabe ao desenvolvedor construir para o testador uma nova versão do aplicativo.

Ver informações do testador no console

De volta à visualização do desenvolvedor no console do Firebase, o testador aparecerá como “Aceito” na versão:

1bef6f182c1c58f9.png

Você também receberá um e-mail como desenvolvedor se o dispositivo que ele está usando ainda não estiver incluído no perfil de provisionamento. Isso irá notificá-lo sobre o novo UDID que você precisa adicionar. Você também tem a opção de exportar todos os UDIDs como um arquivo de texto.

  1. Para exportar todos os UDIDs, abra a guia Testadores e Grupos.

2745d49a6abc47fe.png

  1. Clique em “Exportar UDIDs da Apple”.

cb45477f8cc436ba.png

O arquivo deve conter o UDID do seu dispositivo de teste.

Device ID            Device Name                            Device Platform
1234567890     tester.app.distribtuion@gmail.com - iPhone SE 2nd Gen        ios

Ao receber um desses e-mails, atualize seu perfil de provisionamento com o UDID e distribua uma nova compilação para seus testadores seguindo estas etapas:

  1. Adicione os dispositivos ao seu portal de desenvolvedores Apple.
  • Opção 1: importe os UDIDs do dispositivo como um arquivo CSV. Na guia Testers & Groups do painel App Distribution, selecione All testers e clique em Export Apple UDIDs para baixar um arquivo CSV. Em seguida, importe o arquivo para sua conta de desenvolvedor Apple usando a opção Registrar vários dispositivos. Consulte a documentação da Apple para saber mais. Observe que sua conta de desenvolvedor Apple só permite importar um número limitado de dispositivos por ano.
  • Opção 2: Colete e insira os UDIDs por e-mail. Na página Adicionar dispositivos do portal do desenvolvedor Apple, registre o novo UDID especificado no e-mail que você recebeu.

ffb74294e68ee1c8.png

  1. Adicione os dispositivos registrados ao seu perfil de provisionamento .
  2. Baixe o perfil de provisionamento e use-o para recriar seu aplicativo. Se você estiver reconstruindo apenas para atualizar os dispositivos registrados, não atualize o número ou a versão da compilação.
  3. Redistribua seu aplicativo no console do Firebase ou na CLI. Se você já distribuiu um build com o mesmo número e versão do build, apenas os usuários de dispositivos recém-registrados receberão e-mails de notificação.

Baixe a versão do dispositivo de teste

Agora a versão possui o UDID do dispositivo de teste, para que o dispositivo de teste possa baixar e instalar o aplicativo. O App Distribution envia um e-mail aos testadores quando seu UDID é adicionado a uma nova versão.

a4049260bae2850b.png

  1. No dispositivo de teste, retorne ao aplicativo web do testador do App Distribution usando o link no e-mail ou o ícone na tela inicial do dispositivo.

Ao navegar até o aplicativo codelab UDID, você verá que a versão está pronta para download.

dad6d03b6ad78746.png

  1. Se você estiver em um dispositivo físico, pressione download, instale e execute o aplicativo!
  2. Quando o aplicativo for iniciado, ele solicitará que você habilite novos alertas de compilação. Selecione "Ativar"

6e3540a2900734e6.png

  1. Em seguida, será solicitado que você faça login. Clique em "Continuar".

82d90d7935bfaea0.png

  1. Faça login com sua conta de testador.

13bee1d03fa94ebf.png

  1. Você será levado de volta ao aplicativo. Você não precisará fazer login ou aceitar alertas na próxima vez que executar o aplicativo.

815d6757eb5f6327.png

Distribua uma atualização para seus testadores

  1. Atualize seu número de compilação para "2".

861aa63ebbc6ec54.png

  1. Selecione "Qualquer dispositivo iOS (arm64)" como destino de compilação e Produto->Arquivo. Assim que o arquivo for gerado, crie uma distribuição assinada com perfil de distribuição de Desenvolvimento.
  2. Quando a compilação for concluída, ele salvará um arquivo IPA e alguns arquivos de log na pasta especificada. Faça upload deste novo IPA em seu console do Firebase, adicione seu e-mail como testador novamente e distribua.

b6e75dc216fc3731.png

Alertas de build de teste

  1. Certifique-se de fechar o aplicativo se ele estiver aberto. Reinicie o aplicativo.
  2. Quando o aplicativo for reiniciado, você receberá um alerta "Nova versão disponível".

3bd532992df458e6.png

  1. Clique em "Atualizar" para receber a versão mais recente.
  2. Clique em “Instalar” na próxima tela.

3a761d8fa4b79d33.png

  1. Parabéns! Você conseguiu atualizar seu aplicativo com os alertas integrados.

6. Personalize o login do testador

Os métodos signInTester/signOutTester e isTesterSignedIn oferecem mais flexibilidade para personalizar a experiência de login do seu testador, para que possa corresponder melhor à aparência do seu aplicativo.

O exemplo a seguir verifica se o testador já fez login na conta de testador do Firebase App Distribution. Assim, você pode optar por exibir sua IU de login apenas para testadores que ainda não fizeram login. chame checkForUpdate para verificar se o testador tem acesso a uma nova compilação.

Vamos desativar a verificação de atualizações automaticamente em viewDidAppea comentando a chamada checkForUpdate() .

AppDistributionViewController.swift

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

Em vez disso, vamos chamar checkForUpdate() em checkForUpdateButtonClicked( ).

 @objc func checkForUpdateButtonClicked() {
    checkForUpdate()
 }

Agora, vamos implementar nosso método signInOutButtonClicked() que fará login no usuário se ele estiver desconectado ou desconectará o usuário se ele já estiver conectado.

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)
        }
      })
    }
  }

Finalmente vamos implementar o método isTesterSignedI n.

AppDistributionViewController.swift

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

Crie e teste sua implementação

7. Parabéns!

Você incorporou o recurso "exibição de alertas no aplicativo" em um aplicativo usando o SDK do Firebase App Distribution para iOS.

O que cobrimos

  • Distribuição de aplicativos Firebase
  • Firebase App Distribution Novos alertas iOS SDK

Próximos passos

Saber mais

Ter uma questão?

Relatar problemas