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
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
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 .