Usando o auto-update do Fastlane

Por paulo, Seg 14 Novembro 2016, na categoria Integração, ios

auto, fastlane, ios, update, upgrade

Olá pessoal,

Recentemente tivemos um necessidade de fazer com que o Fastlane (ferramenta para deploy contínuo - http://fastlane.io/) fizesse a atualização de suas dependências automaticamente, isso inclui todos esses caras:

cert, credentials_manager, deliver, fastlane, fastlane_core, frameit, gym, match, pem, pilot, produce, scan, screengrab, sigh, snapshot, spaceship, supply

Toda vez que vamos usar o Fastlane para subir as aplicações tem atualizações novas de suas dependências e que muitas das vezes gera algum erro no envio e não conseguimos subir os aplicativos até que atualizemos manualmente as dependências necessárias com o comando "gem update ..." e depois começamos o processo novamente de deploy.

Isso é bem chato, então a primeira coisa que pensei foi em adicionar o "gem update" em nossa ferramenta de integração contínua, GoCI (http://github.com/paulo-coutinho/goci), antes de fazer as chamadas ao Fastlane.

A segunda opção era buscar na documentação para saber se existe alguma coisa pronta para este problema, e foi ai que achei o comando "update_fastlane". Após olhar a documentação e realizar alguns testes, resolvi escrever o passo-a-passo para implementar isso. Vamos à prática:

  1. Adicione no início do seu arquivo Fastfile, antes de qualquer coisa, esta linha:

    update_fastlane

  2. Adicione as seguintes linhas ao seu arquivo ".bash_profile" ou ".bashrc", que fica na pasta do seu usuário, ex (nano \~/.bash_profile):

    export GEM_HOME=\~/.gems
    export GEM_SPEC_CACHE=\$GEM_HOME/specs
    export PATH=\$PATH:\~/.gems/bin

  3. Execute o arquivo modificado com o comando "source", ex:

    source \~/.bash_profile

  4. Atualize o rubygems e o gem:

    gem install rubygems-update
    sudo gem update --system

  5. Instale suas gems novamente, as que você usa. No meu caso era o fastlane e cocoapods, então fiz assim:

    gem install cocoapods fastlane --no-ri --no-rdoc

Com tudo isso feito, você já preparou o seu ambiente e atualizou tudo o que é necessário para que o auto-update do fastlane funcione. Agora basta você executar suas tarefas do fastlane que ele vai executar o auto-update antes de tudo.

Obs: Nós definimos uma novo diretório para as "gems" do ruby porque sem isso o fastlane irá reclamar que a pasta de "gems" é do usuário root (sendo necessário fazer um sudo + comand) e não sua.

Espero ter ajudado com este artigo.

Obrigado e até o próximo post pessoal.

Outros conteúdos relacionados

Seg 23 Novembro 2015
Mac OSX - Desabilitando o ganho automático do microfone no Skype
Ter 23 Setembro 2014
PHP - Configurando o PHPStorm 7/8 para reconhecer o YiiFramework
Sex 26 Fevereiro 2016
Golang - Ferramenta para upload do arquivo DSYM para o Fabric/Crashlytics
Qua 20 Maio 2015
Mobile - Formatos suportados de áudio e vídeo no Android, iOS e Windows Phone
Sáb 13 Setembro 2014
Mobile - Últimos aplicativos mobile que criei
Ter 14 Outubro 2014
PHP - Atualizando o PHP no Mac - OSX