Ruby no desenvolvimento mobile: Fastlane, CI/CD e automação

Autor: IT Sectr Publicado: 2026-02-11 Tempo de leitura: 8 min

Ruby é uma linguagem dinâmica interpretada com sintaxe elegante, conhecida pelo framework Ruby on Rails. No desenvolvimento mobile, o Ruby é usado principalmente através do Fastlane — a ferramenta padrão para automatizar compilações, testes e implantação de aplicativos iOS e Android. De acordo com a documentação oficial do Fastlane, a ferramenta é usada em mais de 100.000 projetos em todo o mundo.

Principais pontos

  • Ruby — uma linguagem dinâmica usada no desenvolvimento mobile através do Fastlane para automação de compilações
  • Fastlane — o padrão de facto para CI/CD no desenvolvimento iOS e Android, escrito em Ruby
  • Fastfile — um arquivo de configuração usando um DSL semelhante ao Ruby que descreve o processo de compilação
  • Match e Deliver — ações do Fastlane para gerenciamento de certificados e publicação na App Store
  • Ruby Gems — um gerenciador de pacotes que permite estender o Fastlane com plugins

O que é Ruby?

Ruby é uma linguagem dinâmica interpretada de código aberto criada por Yukihiro Matsumoto em 1995. O princípio fundamental do Ruby é a "simplicidade ideal" (princípio da menor surpresa). A linguagem é conhecida por blocos (closures), abordagem puramente orientada a objetos (tudo é um objeto, incluindo números) e um poderoso sistema de metaprogramação.

O Ruby é executado no interpretador YARV (Yet Another Ruby VM) com compilação JIT desde a versão 3.1. A versão atual Ruby 3.4 (2025) inclui decoradores, um analisador Prism melhorado e suporte experimental a tipos via RBS. RubyGems — o gerenciador de pacotes — contém mais de 200.000 gems.

Ruby on Rails é o framework web mais famoso construído com Ruby, mas no desenvolvimento mobile o Ruby é usado de forma diferente. Seu principal nicho é o Fastlane: um ecossistema de scripts e gems Ruby para automatizar todas as etapas do ciclo de vida de um aplicativo mobile — desde a assinatura de código até a publicação nas lojas.

Fundamentos da sintaxe Ruby para Fastlane

Trabalhar com Fastlane requer apenas conhecimento básico de Ruby: métodos, blocos do-end, símbolos (:symbol) e sintaxe de hashes { key: value }. Ao contrário do Python, o Ruby usa end para fechar blocos em vez de indentação. Métodos podem ser chamados sem parênteses — isso é ativamente usado no DSL do Fastlane.

ruby
# Sintaxe básica do Ruby usada no Fastlane
def download_assets(version, platform: "ios")
  paths = {
    ios: "ios/Assets.car",
    android: "android/app/src/main/assets"
  }
  url = "https://cdn.example.com/assets/#{version}/#{paths[platform.to_sym]}"
  puts "Downloading from: #{url}"

  unless File.exist?("temp/assets")
    Dir.mkdir("temp/assets")
  end
  result = system("curl -o temp/assets.zip #{url}")
  raise "Download failed" unless result
end

download_assets("1.2.3", platform: "android")

No exemplo, o método download_assets recebe um argumento version e um parâmetro nomeado opcional platform (padrão "ios"). A interpolação de strings com #{...} insere valores diretamente nas strings. unless é o oposto de if — executa o código quando a condição é falsa.

Fastlane: automação de compilações mobile com Ruby

Fastlane é uma ferramenta de código aberto escrita em Ruby. Instalada via gem install fastlane, ela fornece um conjunto de comandos para automatizar as tarefas mais rotineiras do desenvolvedor mobile: criar capturas de tela, assinar código, publicar no TestFlight e no Google Play Console.

Fastlane consiste em ferramentas: sigh (gerenciamento de certificados), match (sincronização de certificados em equipes), gym (compilações iOS), gradle (compilações Android), deliver (publicação iOS), supply (publicação Android), snapshot (capturas de tela), scan (testes). Todas as ferramentas são acessíveis a partir de um único Fastfile.

Em projetos grandes, o Fastlane lida com mais de 50 ações em um único pipeline: incremento de versão, download de assets de CDN, compilação, assinatura, upload para App Store Connect, envio de notificações no Slack. Todo o pipeline é executado com um único comando: fastlane release.

Fastfile: configuração do pipeline de compilação

Fastfile é um arquivo DSL semelhante ao Ruby que descreve uma sequência de ações (lanes). Cada lane é uma tarefa separada: beta (compilação de teste), release, screenshots. Lanes podem chamar outras lanes com parâmetros passados.

ruby
# Fastfile — configuração do pipeline de compilação do aplicativo iOS
fastlane_version "2.220.0"

default_platform :ios

platform :ios do
  desc "Compilação e implantação do build do TestFlight"
  lane :beta do |options|
    increment_build_number(
      build_number: options[:build]
    )
    match(type: :appstore)
    gym(
      scheme: "MyApp",
      export_method: "app-store",
      configuration: "Release"
    )
    upload_to_testflight(
      app_identifier: "com.example.myapp"
    )
    slack(
      message: "Build #{options[:build]} enviado para o TestFlight"
    )
  end
end

A lane beta executa sequencialmente: incrementar número da compilação (increment_build_number), sincronizar certificados (match), compilar arquivo (gym), enviar para TestFlight (upload_to_testflight) e enviar notificação no Slack. O parâmetro :build é passado para a lane como um argumento nomeado.

Configuração Android no Fastfile

Fastlane suporta ambas as plataformas em um único Fastfile. Para Android, use uma lane dentro de platform :android com as ações gradle, supply e google_play_track_version_codes.

ruby
platform :android do
  desc "Compilação de APK e publicação no Google Play Internal Testing"
  lane :beta do
    gradle(
      task: "assemble",
      build_type: "Release",
      flavor: "Production"
    )
    supply(
      track: "internal",
      apk_paths: ["app/build/outputs/apk/release/app-release.apk"]
    )
  end
end

Ações principais do Fastlane para iOS e Android

Fastlane inclui mais de 200 ações integradas. Abaixo estão as mais importantes para o desenvolvimento mobile, organizadas por categoria.

AçãoPlataformaFinalidade
matchiOSSincronizar certificados e perfis de provisionamento via Git
gymiOSCompilar arquivos .app e .ipa
scaniOSExecutar testes de UI no simulador
snapshotiOSGeração automática de capturas de tela em diferentes dispositivos
deliveriOSEnviar compilação, capturas e metadados para App Store Connect
pilotiOSGerenciamento do TestFlight: enviar compilações, adicionar testers
gradleAndroidExecutar tarefas do Gradle: assemble, test, bundle
supplyAndroidEnviar APK/AAB e metadados para Google Play Console
screengrabAndroidCapturas de tela automáticas para Google Play
firebase_app_distributionAmbasEnviar compilação para Firebase App Distribution

Match: gerenciamento seguro de certificados

match é uma gem do Fastlane para sincronizar certificados iOS e perfis de provisionamento entre desenvolvedores. Todos os segredos são armazenados em um repositório Git criptografado ou S3. O Match gera automaticamente certificados se estiverem faltando e os renova no vencimento.

ruby
# Inicializando match para um novo projeto
$ fastlane match init

# Criação e sincronização de certificados da App Store
$ fastlane match appstore

# Criação de certificados de Development para a equipe
$ fastlane match development

# Renovação de todos os certificados no vencimento
$ fastlane match --force

O Match armazena chaves privadas com uma frase secreta conhecida apenas pelos desenvolvedores. Cada desenvolvedor clona o repositório de certificados e executa match para instalar os perfis atuais. Os certificados da Apple são válidos por 1 ano; o Match os renova automaticamente.

Integração do Fastlane com sistemas CI/CD

Fastlane integra-se com qualquer plataforma CI/CD: GitHub Actions, GitLab CI, CircleCI, Bitrise, Jenkins e Xcode Cloud (via xcode-build). O Fastlane é executado no CI usando fastlane <lane_name> e retorna um código de erro se alguma etapa falhar.

A configuração para GitHub Actions inclui instalar Ruby, fastlane e executar a lane via bundle exec fastlane. Compilações iOS exigem um runner macOS. Compilações Android podem usar ubuntu-latest, que é mais barato.

yaml
# .github/workflows/deploy.yml — CI/CD com Fastlane
name: Deploy Mobile App
on:
  push:
    branches: [main]

jobs:
  ios-deploy:
    runs-on: macos-14
    steps:
      - uses: actions/checkout@v4
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: "3.3"
      - run: bundle install
      - run: bundle exec fastlane beta
      - env:
          MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}

O workflow é executado ao fazer push para main. O runner macOS executa bundle exec fastlane beta do Fastfile. MATCH_PASSWORD é passada através de GitHub Secrets para descriptografia de certificados. Após a conclusão da lane, uma ação do Slack envia uma notificação.

Ruby Gems e plugins do Fastlane

RubyGems é o gerenciador de pacotes do Ruby. O Fastlane é estendido através de plugins — gems que adicionam novas ações. O plugin fastlane-plugin-versioning gerencia versões, fastlane-plugin-firebase_app_distribution envia compilações para o Firebase. Existem mais de 500 plugins Fastlane no GitHub.

O Gemfile na raiz do projeto fixa as versões de todas as dependências para compilações reproduzíveis. bundle install instala gems a partir do Gemfile.lock. As gems essenciais para desenvolvimento mobile incluem: fastlane, cocoapods (dependências iOS), xcodeproj (manipulação de .xcodeproj).

ruby
# Gemfile para um projeto mobile
source "https://rubygems.org"

gem "fastlane", "~> 2.220"

plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)

Fastlane vs alternativas: comparação de abordagens

Fastlane não é a única ferramenta de automação. Vamos compará-la com as principais alternativas com base em critérios importantes para uma equipe mobile.

CritérioFastlane (Ruby)Bitrise (web)Xcode Cloud (Apple)GitHub Actions (YAML)
FlexibilidadeMáxima (código)Média (etapas)Baixa (limitado)Alta
iOSSuporte completoCompletoCompleto (integrado)Via macOS auto-hospedado
AndroidSuporte completoCompletoNãoCompleto
Certificados (match)IntegradoVia Code SigningAutomáticoVia fastlane
Execução localSimNão (apenas CI)NãoVia act
Plugins500+200+ integraçõesNenhum20.000+ ações

Fastlane continua sendo a ferramenta mais flexível para pipelines complexos. Bitrise é conveniente para equipes sem um desenvolvedor Ruby. Xcode Cloud funciona para projetos iOS simples. GitHub Actions é ideal se a equipe já usa GitHub.

Perguntas frequentes

Por que usar Ruby no desenvolvimento mobile se existem Kotlin e Swift?

Ruby não é usado para escrever aplicativos móveis, mas para automatizar processos de compilação, teste e implantação através do Fastlane. Fastlane é o padrão de facto para CI/CD no desenvolvimento iOS e Android.

Fastlane funciona apenas no macOS?

Fastlane funciona no macOS, Linux e Windows, mas compilações iOS exigem Xcode e macOS. Compilações Android podem ser executadas em qualquer plataforma. Desenvolvedores usam macOS localmente e, no CI — macOS para iOS e Linux para Android.

Preciso aprender Ruby para trabalhar com Fastlane?

Um conhecimento básico de Ruby é suficiente para trabalhar com Fastlane. Fastlane usa um DSL semelhante ao Ruby no Fastfile. Para tarefas típicas, basta conhecer gems, blocos do-end e sintaxe básica. Conhecimento profundo de Ruby não é necessário.

Quais alternativas ao Fastlane existem?

Alternativas: Gradle para Android (integrado), Xcode Cloud (Apple), Bitrise (interface web), GitHub Actions (YAML). Fastlane continua sendo a ferramenta mais flexível graças ao seu rico ecossistema de ações e plugins.

Fastlane é adequado para grandes equipes?

Sim, Fastlane é usado por grandes empresas. Todas as ações e arquivos de configuração são versionados no repositório, e o match garante o armazenamento seguro de certificados em um repositório ou S3.

Resumo

  • Ruby — uma linguagem dinâmica usada no desenvolvimento mobile através do ecossistema Fastlane para automação de compilações
  • Fastlane — o padrão CI/CD para iOS e Android: mais de 200 ações, mais de 500 plugins, mais de 100.000 projetos
  • Fastfile — um DSL semelhante ao Ruby com lanes: beta, release, screenshots para diferentes cenários de compilação
  • Match resolve o problema de sincronização de certificados iOS e perfis de provisionamento entre desenvolvedores
  • Deliver e Supply — ações para publicar na App Store e Google Play com metadados e capturas de tela
  • Integração CI/CD — Fastlane funciona com GitHub Actions, GitLab CI, CircleCI e Bitrise
  • Flexibilidade — Fastlane supera Bitrise e Xcode Cloud graças a um pipeline programável em Ruby

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também