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 à integração do SDK do Firebase App Distribution no codelab do seu aplicativo iOS. Neste codelab, você adicionará o SDK do App Distribution ao seu aplicativo para exibir alertas no aplicativo para seus testadores quando novas compilações estiverem disponíveis para download. Você aprenderá a usar uma configuração básica e uma configuração personalizada para fazer com que seus testadores entrem para receber atualizações. Em seguida, você enviará uma nova versão para o App Distribution e acionará um novo alerta de compilação diretamente no aplicativo.

O que você vai 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 iOS ao seu aplicativo
  • Como alertar um testador quando houver uma nova compilaçã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á

Como você vai usar este tutorial?

Leia-o apenas Leia e complete os exercícios

Como classificaria 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.<your_name>" como o ID do pacote iOS.

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

3. Obtenha o Projeto de Amostra

Baixe o Código

Comece clonando o projeto de amostra.

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

Caso não tenha o git instalado, você também pode baixar o projeto de exemplo 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 a pod update no diretório do projeto e abra o projeto no Xcode.

pod install --repo-update
xed .

Atualize o identificador de pacote para corresponder ao seu aplicativo Firebase

No menu à esquerda, 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.<your_name>"

Adicionar 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 este arquivo a qualquer momento na página de configurações do seu projeto.

3cf9290805e7fdab.png

No 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 novos alertas de compilação no aplicativo com o SDK do App Distribution

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, verifique se você ativou 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é-criada para exibir aos testadores, e uma configuração de alerta avançada, que permite que você personalize sua própria interface de usuário (UI).

Começaremos com a configuração básica de alerta. Você pode usar checkForUpdate para exibir uma caixa de diálogo de alertas de habilitação pré-criada para testadores que ainda não habilitaram alertas e, em seguida, verificar se uma nova compilação está disponível. Os testadores habilitam alertas entrando 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 pré-criada que solicita que eles façam login no App Distribution com a conta do Google.

A ativação de alertas é um processo único no dispositivo de teste e persiste nas atualizações do seu aplicativo. Os alertas permanecem habilitados 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 as compilações recém-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 .

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

AppDistributionViewController.swift

import Firebase

Abra AppDistributionExample/AppDistributionViewController.swift e copie as linhas para o 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 para testadores usando o console do Firebase.

Crie seu aplicativo

Quando estiver pronto para distribuir uma versão de pré-lançamento do seu aplicativo para 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 o perfil de distribuição de desenvolvimento.

98d8eb042c36a685.png

b2e9ccff91d761c1.png

8e815564f64d2d39.png

Quando a compilação for concluída, ela salvará um arquivo IPA e alguns arquivos de log na pasta que você especificar. Você distribui o arquivo IPA para seus testadores nas etapas a seguir.

Se você tiver problemas ao criar seu aplicativo, consulte os documentos de codesign da Apple para obter as 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 console do Firebase:

  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 Releases, selecione o aplicativo que você 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 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 para os testadores.

b6e75dc216fc3731.png

Adicione-se como um testador à versão

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

eb61c6be96ff3a11.png

Como você incluiu seu endereço de e-mail, receberá um e-mail do Firebase App Distribution convidando-o a 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 dispositivo de teste iOS, abra o e-mail enviado do Firebase App Distribution e toque no link Primeiros passos. Certifique-se de abrir o link no Safari.
  2. No app da Web do 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 vá para configurações para baixar o perfil e compartilhar seu UDID.

Agora, quando você volta ao App Distribution, a versão agora está marcada como "Dispositivo registrado":

fe93d649dfa25877.png

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

Exibir 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 estiver 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 Testers & Groups.

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 desenvolvedor da Apple.
  • Opção 1: Importe os UDIDs do dispositivo como um arquivo CSV. Na guia Testadores e grupos do painel do App Distribution, selecione Todos os testadores e clique em Exportar UDIDs da Apple para baixar um arquivo CSV. Em seguida, importe o arquivo para sua conta de desenvolvedor da Apple usando a opção Register Multiple Devices. Consulte a documentação da Apple para saber mais. Observe que sua conta de desenvolvedor da Apple pode permitir que você importe apenas 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 da 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 reconstruir seu aplicativo. Se você estiver reconstruindo apenas para atualizar os dispositivos registrados, não atualize o número de compilação ou a versão.
  3. Redistribua seu aplicativo do Firebase console ou CLI. Se você já distribuiu uma compilação com o mesmo número de compilação e versão, 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 tem 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 o UDID deles é 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ê pode 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ê ative novos alertas de compilação. Selecione "Ativar"

6e3540a2900734e6.png

  1. Em seguida, ele solicitará 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

Distribuir 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. Depois que o arquivo for gerado, crie uma distribuição assinada com o perfil de distribuição de desenvolvimento.
  2. Quando a compilação for concluída, ela salvará um arquivo IPA e alguns arquivos de log na pasta que você especificar. Faça upload deste novo IPA em seu console do Firebase, adicione seu e-mail como testador novamente e distribua.

b6e75dc216fc3731.png

Alertas de compilação de teste

  1. Certifique-se de fechar o aplicativo se ele estiver aberto. Reinicie o aplicativo.
  2. Quando o aplicativo for reiniciado, você deverá 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, para que você possa optar por exibir sua IU de login apenas para testadores que ainda não fizeram login. Depois que o testador fizer login, você poderá chame checkForUpdate para verificar se o testador tem acesso a uma nova compilação.

Vamos desabilitar a verificação de atualizações automaticamente em viewDidAppea r 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á o login do 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ê criou 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 do Firebase
  • SDK do iOS de novos alertas do Firebase App Distribution

Próximos passos

Saber mais

Ter uma questão?

Relatar problemas