Automatizamos a montagem de aplicativos iOS usando o Fastlane


Com que frequência os desenvolvedores do iOS precisam criar um aplicativo para fazer o download iTunes Connect App Store Connect ? Durante a fase de teste beta ativo do aplicativo, você precisa corrigir rapidamente os erros e fornecer um conjunto atualizado para teste. Também é necessário fazer o download de certificados, perfis de provisionamento, clicar em várias marcas de seleção e botões diferentes para cada nova compilação.


Felizmente, existe uma ferramenta tão maravilhosa como a fastlane que nos ajuda a automatizar as ações manuais de um desenvolvedor de dispositivos móveis.


Neste post, mostrarei o que é a fastlane e como começar a usá-la rapidamente em seus projetos iOS.


1. Introdução


O que é isso


O Fastlane é uma ferramenta para automatizar a montagem e definir processos de aplicativos móveis para iOS e Android , que também inclui gerar capturas de tela , executar testes de unidade / interface do usuário , enviar mensagens para o Slack , conectar-se ao Crashlytics e muitas outras coisas úteis que facilitam a vida.


Qual é o lucro?


Não levará mais de duas horas para configurar inicialmente os comandos básicos para automatizar o cálculo do aplicativo, por exemplo, para publicação na App Store ou no TestFlight; no entanto, isso economizará muito tempo no futuro. todo o processo será iniciado em uma chamada na linha de comando.


ATENÇÃO: Para concluir todas as etapas, é necessária uma assinatura do desenvolvedor Apple, pois o acesso ao App Store Connect não está disponível para contas gratuitas.


Instalação


Instale a própria fastlane


Para começar, instale / atualize para a versão mais recente do Xcode Command Tools:


$ xcode-select --install 

Instale gem fastlane:


 $ sudo gem install fastlane -NV #   brew $ brew cask install fastlane 

Adicionar ao projeto


No diretório raiz do projeto, execute:


 $ sudo fastlane init 

O Fastlane nos oferece opções para scripts pré-instalados, dependendo do que queremos:



Vamos escolher a opção 4, como iremos prescrever todos os comandos necessários para a nossa situação:



Feito! A pasta fastlane e o gemfile foram instalados com sucesso em nosso projeto.


Antes de continuarmos


Se o perfil do shell de localidade não for UTF-8 , haverá problemas com a construção e o carregamento de compilações. Entramos no arquivo do seu perfil de shell ( ~ / .bashrc , ~ / .bash_profile , ~ / .profile ou ~ / .zshrc ) e adicionamos as seguintes linhas:


 export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 

Agora você está pronto para escrever as etapas imediatas para automatizar a montagem.


Como isso funciona


Primeiro, descubra o que a fastlane faz: seus principais comandos e como descrevemos o que precisa ser feito.


Comandos (ações)


O Fastlane vem com muitos comandos úteis que facilitam a vida do desenvolvedor:


  • cert : baixa e instala automaticamente os certificados necessários (distribuição, desenvolvimento) para assinar os aplicativos coletados;
  • increment_build_number : aumenta o número da construção em 1 ou muda para o valor especificado no parâmetro build_number
  • suspiro : baixa e instala automaticamente todos os perfis de provisão necessários;
  • instantâneo : executa testes de interface do usuário e faz capturas de tela que podem ser usadas ao enviar para revisão na App Store;
  • academia : coleta o arquivo e, aqui, o ipa final da sua aplicação;
  • scan : tudo é simples - inicia um alvo de teste;
  • entregar : envia ipa, capturas de tela e metadados diretamente para a App Store;
  • pilot : carrega o novo ipa para o teste beta no TestFlight. Você também pode gerenciar testadores com este comando.
  • e muitos outros

Fastfile


A pasta fastlane contém Fastfile e Appfile . No Appfile, prescreveremos os valores necessários para montagem e publicação: IDs do pacote, ID do aplicativo, ID da equipe e outros. No Fastfile , descreveremos nossos scripts. Após a instalação inicial, fica assim:


 default_platform(:ios) platform :ios do desc "Description of what the lane does" lane :custom_lane do # add actions here: https://docs.fastlane.tools/actions end end 

  • default_platform (: ios) - defina a plataforma padrão para não especificá-la na linha de comando.
  • plataforma: ios do ... end - "faixas" para a plataforma iOS são descritas aqui.
  • desc "Descrição do que a pista faz" - uma breve descrição de "pista". A lista de todas as "faixas" com descrições pode ser exibida usando o $ fastlane lanes .
  • lane: custom_lane do ... end : Lane (caminho, faixa) é, mais simplesmente, um método. Tem um nome, parâmetros e corpo. No corpo, chamaremos os comandos que precisamos para criar, colocar em layout, executar testes etc. As faixas são chamadas na linha de comando chamando $ fastlane [lane_name] [parameters] . É com a chamada de uma das faixas que as etapas automatizadas começam.

Automatize o upload para o TestFlight


Vamos começar definindo um nome amigável para nossa pista. Renomeie custom_lane para testflight_lane . Agora está claro que o resultado da execução desse script será uma nova montagem carregada no TestFlight .


 default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do # Actions end end 

Configurar Appfile


Para não inserir o pacote de aplicativos e o ID da Apple toda vez que você executar o script, escreva-os no Appfile :


 app_identifier "ru.ee.shishko.TheHatGame" apple_id "ee.shishko@gmail.com" 

Certificados e perfis de provisão


Adicione os comandos cert e sigh para instalar os certificados e os perfis de provisão, respectivamente:
( Atenção : se seu aplicativo não estiver na App Store Connect, será necessário adicionar o comando produzir com o parâmetro app_name )


 default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do #      App Store Connect: # produce ( # app_name: "MyAppName" # ) cert sigh end end 

Execute nosso script usando o comando $ fastlane testflight_lane


Ao iniciar o Fastlane, solicitaremos que digite a senha da conta, insira-a. Isso será necessário apenas uma vez - a fastlane lembrará e você não precisará inserir nada nos próximos lançamentos.
É assim que a saída se parece quando a fastlane conclui com êxito o script:




Agora, os perfis de certificado e fornecimento são baixados e instalados. Resta definir a meta desejada na contribuição geral:




Criar aplicativo


Inclua o comando increment_build_number para aumentar o número da construção. Se o seu arquivo .xcodeproj principal não estiver na pasta raiz, especifique o caminho para ele no parâmetro xcodeproj :


 default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do cert sigh increment_build_number #   .xcodeproj     , : # # increment_build_number( # xcodeproj: "./path/to/MyApp.xcodeproj" # ) end end 

Para aumentar o número da compilação, vá para Configurações / versão da compilação e defina o sistema de versões na versão genérica e atual do projeto da Apple como 1 :




Adicione o comando gym , que coleta o arquivo ipa do nosso aplicativo:




Entre os parâmetros, você pode especificar onde o ipa ( diretório_de_saída ), o nome ipa ( nome_da_saída ), o esquema ( esquema ) será colocado, se será feito o Clean ( clean ) e outros. Não especificaremos nada nos parâmetros - o fastlane definirá os parâmetros por padrão, coletará e assinará o ipa, mas novamente: se desejado e necessário, tudo pode ser especificado em detalhes:


 default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do cert sigh increment_build_number gym #    : # # gym( # workspace: "TheHatGame.xcworkspace", # scheme: "TheHatGame", # configuration: "Release", # clean: true, # output_directory: "./build", # output_name: "TheHatGame.ipa", # codesigning_identity: "iPhone Distribution: Evgeny Shishko" # ) end end 

Carregar no TestFlight


Para carregar o ipa no TestFlight , usaremos o Pilot :



Com o Pilot, você pode:


  • Baixe e distribua assemblies
  • adicione e remova testadores beta;
  • receber informações sobre testadores e os dispositivos que eles usam;
  • exporte as informações dos testadores para .csv para importá-las para outro projeto.

Usaremos sua principal função: enviar montagens para o Apple Store Connect .


Adicione test_light uploadl para chamar upload_to_testflight com os parâmetros skip_submission (nós o usaremos apenas para fazer upload do arquivo ipa) e skip_waiting_for_build_processing (não esperamos que o processamento termine):


 default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do cert sigh increment_build_number gym upload_to_testflight( skip_submission: true, skip_waiting_for_build_processing: true ) end end 

Execute o script final


Salvamos nossas alterações e corremos a partir do console:


 $ fastlane testflight_lane 

No estágio de envio para o testflight, você precisará digitar a senha específica do aplicativo no console (necessária para a autorização no Application Loader ). Você pode encontrá-lo em sua conta Apple ID , gerando-o clicando em "Gerar senha":



Após digitar a senha, a nova montagem será carregada com sucesso no TestFlight e a fastlane terminará aí:




O status da nova versão pode ser exibido na App Store Connect:




Conclusão


Isso é tudo! Gostaria de chamar a atenção para o fato de que, neste artigo, no caso mais geral, tentamos os recursos do fastlane. A esse respeito, estou anexando uma pesquisa: vocês, Khabrovites, estarão interessados ​​em posts sobre o uso detalhado dos comandos mencionados e outros comandos úteis na via rápida e recursos avançados na configuração de scripts?


O aplicativo com a configuração de pista rápida apresentada pode ser encontrada aqui .

Source: https://habr.com/ru/post/pt424023/


All Articles