Automatizando builds e submissões com Fastlane

Mateus De Sousa
Mobills
Published in
4 min readMar 21, 2020

--

Essa ferramenta incrível que vêm ganhando muitos adeptos têm facilitado bastante a vida dos desenvolvedores. Com ela, é possível deixar toda a parte "chata" na hora de publicar seu app ou disponibilizar para testes.

Venho nesse post mostrar um pouco do que você pode fazer com essa ferramenta para automatizar processos manuais de envio e submissão para a App Store e TestFlight.

Instalando o Fastlane no macOS 💻

Para começar, é necessário instalá-lo da seguinte forma:

  • Instalando via homebrew:
brew install fastlane
  • Instalando via RubyGem:
sudo gem install fastlane -NV

Configurando ferramenta de linha de comando para o xcode

Agora, precisamos instalar as ferramentas de linha de comando mais recente do xcode, para que o fastlane consiga realizar builds e outros processos:

xcode-select --install

OBS: Se durante a configuração do fastlane haja algum erro de que não conseguiu localizar o Xcode, talvez o comando abaixo possa lhe ajudar:

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

Inicializando configuração do Fastlane

Agora que começa a parte mais interessante. iremos configurar o fastlane para o seu projeto; para isso execute o comando:

fastlane init

OBS: é importante que esse comando seja executado dentro da pasta onde se encontra o seu xcodeproj ou xcworkspace.

Ao executar o comando acima você verá uma tela como essa:

ao escolher da opção 1 a 3, o Fastlane irá montar um template de código em um arquivo chamado Fastfile, isso ajuda a poupar tempo durante a configuração, mas como irei detalhar cada opção dessa, selecione o número 4 para que possamos montar nosso arquivo Fastfile manualmente.

Configurando Fastfile manualmente

Independente da escolha durante a execução do fastlane init, será criado uma pasta fastlane, e um arquivo Gemfile. Acesse a pasta fastlane e verá dois arquivo que são:

"Appfile" => Arquivo onde ficará o bundle identifier do app, assim como o seu appleID

"Fastfile" => Arquivo que ficará seu script de automatização.

Primeiro abra o arquivo Appfile com um editor de texto de sua preferência, e coloque as informações necessárias.

Agora iremos codificar o script de automação. Irei repartir em 3 principais configurações: automatização de compilação para o testFlight, compilação para a AppStore e automatização de screenshots.

  • Script para o testFlight

O arquivo é composto por esse código base escrito em Ruby. Nele definimos algumas coisas como plataforma default e as nossas funções de automatização. Veja abaixo como é nosso arquivo base.

A palavra reservada "desc", serve para descrever o que a função, que está logo abaixo, irá fazer. Toda função do Fastlane irá iniciar com a palavra reservada "lane" como exemplo no snippet abaixo, onde a função "beta" executa duas ações(que por sinal são actions do próprio Fastlane).

E assim podemos ir criando diversas ações dentro de uma função lane, como essa abaixo chamado beta, que executa a incrementação do build number da versão atual, compila o app e envia para o Testflight.

  • Script para a App Store

Existem duas formas de enviar seu app para a loja: a primeira é caso sua compilação já tenha passado por upload para a App Store. E a outra é quando se deseja subir uma compilação nova que vá direto para a loja.

Abaixo eu criei um snippet onde existem as condições expostas acima. Dependendo da resposta do usuário(yes/no), o fluxo segue.

A função submit_review que se encontra no script acima, foi uma função criada para submeter seu App para revisão. Isso significa fazer todo aquele processo de colocar screenshots na loja, descrever texto promocional, e todas as informações necessárias para submeter para revisão da Apple.

Abaixo segue a função mencionada:

Para executar qualquer dessas funções que você criou do Fastfile, execute o comando no terminal seguido do nome da função, ex:

fastlane release

Simples não é! Agora é só dedicar seu tempo a outra atividade ou tomar aquele cafezinho sem se preocupar se esqueceu de algo ou subiu algo errado( A menos que tenha feito o script de forma errada e não tenha testado o mesmo rsrsrs).

Bom, deu pra sentir um gostinho de como o Fastlane pode ajudar você.

Qualquer outra dúvida, manda um comentário no Gist, deixei no link logo abaixo. Ficarei feliz em ajuda-lo, pois sua dúvida pode ser de muitos!✌🏼

  • Fastlane actions(lá você encontra as actions disponíveis no Fastlane)

https://docs.fastlane.tools/actions/

  • Todos os snippets expostos nesse post e uns plus👌🏽😉

https://gist.github.com/MateusDeSousa/bbb4801ba043ef6bfb9df4259d487cc2

Leia mais sobre o assunto

--

--

Mateus De Sousa
Mobills
Editor for

IOS developer and lover of mobile technology, I love to travel and listen to good music and that’s it, there’s not much to describe.