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 Integrando o Firebase App Distribution SDK no seu aplicativo iOS. Neste codelab, você adicionará o SDK do App Distribution ao seu app para exibir alertas no app aos testadores quando novos builds estiverem disponíveis para download. Você aprenderá como usar uma configuração básica e uma configuração personalizada para fazer com que seus testadores se conectem 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ê aprenderá

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

O que você precisará

Como você usará este tutorial?

Leia apenas Leia-o 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 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 pode baixar o projeto de amostra em sua 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 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>"

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 este 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 novos alertas de 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 novos builds 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 Console do Google Cloud). 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 do alerta. Você pode usar checkForUpdate para exibir uma caixa de diálogo de alertas de ativação pré-criada para testadores que ainda não ativaram alertas e, em seguida, verificar se uma nova compilação está disponível. Os testadores habilitam alertas entrando em uma conta que tem acesso ao aplicativo no App Distribution. Quando chamado, o método executa a seguinte sequência:

  1. Verifica se um testador habilitou alertas. Caso contrário, exibe uma caixa de diálogo pré-criada 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 nas 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á novas compilações disponíveis para o testador instalar. Retorna um objeto de liberação ou um erro .

Você pode incluir checkForUpdate a qualquer momento em 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 para o método viewDidAppear desta forma:

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 compilação para testadores usando o Firebase console.

Crie seu aplicativo

Quando estiver pronto para distribuir uma versão de pré-lançamento de 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 especificada. 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 app para testadores

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

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

e4671bd304ecfe47.png

  1. Na página Releases, 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 o build. (Adicione seu e-mail para receber o convite.) Em seguida, adicione notas de versão para o build. 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 para o 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-o a testar o aplicativo. Agora você é o primeiro testador! Continue na seção abaixo para se configurar como um 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. Em seu dispositivo iOS de teste, abra o e-mail enviado pelo Firebase App Distribution e toque no link Get Started. Certifique-se de abrir o link no Safari.
  2. No aplicativo da Web do testador do Firebase App Distribution exibido, 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 para que você possa 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ê voltar para o App Distribution, o lançamento agora está marcado como "Dispositivo registrado":

fe93d649dfa25877.png

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

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 o notificará 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 portal do desenvolvedor da 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 da Apple usando a opção Registrar vários dispositivos. 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 recriar seu aplicativo. Se você estiver reconstruindo apenas para atualizar os dispositivos registrados, não atualize o número da compilação ou a versão.
  3. Redistribua seu app a partir do Firebase console ou da CLI. Se você já distribuiu uma compilação com o mesmo número e versão de compilação, apenas usuários de dispositivos recém-registrados receberão e-mails de notificação.

Baixe a versão do dispositivo de teste

Agora o lançamento 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 seu UDID é adicionado a uma nova versão.

a4049260bae2850b.png

  1. No dispositivo de teste, retorne ao aplicativo da 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 de codelab UDID, você verá que a versão está pronta para download.

pai6d03b6ad78746.png

  1. Se você estiver em um dispositivo físico, clique em 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, ele solicitará que você faça login. Clique em "Continuar.

82d90d7935bfaea0.png

  1. Entre 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. 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 especificada. Carregue este 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 entrada do testador, para que ela corresponda melhor à aparência do seu aplicativo.

O exemplo a seguir verifica se o testador já fez login em sua 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 viewDidAppear 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 irá conectar o 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)
        }
      })
    }
  }

Por fim, 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 Firebase App Distribution iOS SDK.

O que cobrimos

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

Próximos passos

Saber mais

Ter uma questão?

Relatar problemas