CI/CD (Continuous Integration / Continuous Delivery) é a prática de compilar, testar e entregar automaticamente um aplicativo a cada alteração de código. De acordo com a Statista (2025), 80% das equipes de desenvolvimento móvel usam CI/CD em seu trabalho. Este artigo aborda ferramentas CI populares, Fastlane para automação de builds móveis, bem como Canary Release e Feature Flags.
Principais conclusões
Continuous Integration é a base da automação CI/CD para aplicativos móveis. É uma prática onde cada desenvolvedor mescla seu código em um repositório compartilhado várias vezes ao dia. Após cada push, o servidor CI compila automaticamente o projeto e executa testes. Se os testes falharem, a compilação é considerada quebrada e a equipe corrige o problema imediatamente. O CI evita a situação de «funciona na minha máquina», onde o código de um desenvolvedor quebra o de outro.
Build Pipeline — uma sequência de etapas executadas a cada push: linting de código → testes unitários → compilação debug APK/IPA → testes de integração → compilação release. Cada etapa é executada somente após a anterior ter sucesso. Os artefatos de compilação — APK, IPA, AAB, relatórios de teste — são salvos e disponíveis para download.
Continuous Delivery — o código é compilado e testado automaticamente, mas uma pessoa decide se deve lançar em produção. Continuous Deployment — toda compilação bem-sucedida é lançada automaticamente em produção. Para aplicativos móveis, o CD (entrega para lojas) via TestFlight ou Internal Testing é mais comum, pois a decisão final de publicação é do desenvolvedor ou gerente. Staging — ambiente o mais próximo possível da produção, usado para testar a compilação antes do lançamento.
GitHub Actions é um sistema CI/CD integrado para automatizar aplicativos móveis no GitHub. O Actions usa configuração YAML (.github/workflows) para definir pipelines. Ações prontas estão disponíveis para desenvolvimento móvel: actions/setup-java, gradle-build-action para Android, xcodebuild-action para iOS. O GitHub Actions oferece 2000 minutos gratuitos por mês para repositórios privados.
Exemplo: um workflow Android inclui checkout de código, configuração JDK 17, cache de dependências Gradle, execução de lint e testes unitários, compilação APK e upload de artefatos. Para iOS — checkout, configuração Xcode, pod install, execução XCTest, arquivamento e exportação IPA. O GitHub Actions integra-se com GitHub Releases, Slack e Telegram para notificações.
GitLab CI é um sistema CI/CD integrado no GitLab, configurado via .gitlab-ci.yml. O GitLab CI usa runners — agentes que executam tarefas. Para desenvolvimento móvel, você pode usar runners compartilhados (Linux para Android) ou seus próprios runners (macOS para iOS). O GitLab CI suporta trabalhos paralelos, artefatos, ambientes e aprovação manual para lançamentos de produção.
Bitrise é uma plataforma CI/CD especializada em automação de aplicativos móveis. A Bitrise oferece Steps prontos para Android, iOS, Flutter e React Native: Gradle Runner, Xcode Archive, Flutter Test, CocoaPods Install. A Bitrise configura automaticamente a assinatura de código para iOS (via Codesigndoc) e fornece máquinas virtuais com Xcode, Android SDK, Flutter e outras ferramentas pré-instaladas.
Vantagens da Bitrise: configuração simples através do editor visual de Workflow, suporte para compilações paralelas, integração com Firebase Test Lab, App Store Connect e Google Play Console. A Bitrise oferece 90 minutos gratuitos por mês para projetos pessoais. Na IT Sectr usamos Bitrise para todos os projetos móveis — ele simplifica significativamente o CI/CD em comparação com a configuração manual do GitHub Actions.
| Critério | GitHub Actions | GitLab CI | Bitrise | CircleCI |
|---|---|---|---|---|
| Especialização | Geral | Geral | Móvel | Geral |
| macOS para iOS | Sim (macOS runner) | Runner próprio | Sim (integrado) | Sim (macOS) |
| Limite gratuito | 2000 min/mês | 400 min/mês | 90 min/mês | 6000 min/mês |
| Integração Fastlane | Via run script | Via run script | Step pronto | Via run script |
| Code Signing | Configuração manual | Configuração manual | Automática | Via Fastlane |
| Compilações paralelas | Sim | Sim | Sim | Sim |
Fastlane é uma ferramenta de automação de aplicativos móveis para iOS e Android, escrita em Ruby. O Fastlane consiste em um sistema de ações prontas (mais de 200) e um DSL para descrever cenários através do Fastfile. O Fastlane resolve tarefas que todo desenvolvedor móvel faz manualmente: assinatura de código, geração de capturas de tela, upload para TestFlight e Google Play, gerenciamento de certificados e perfis de provisionamento.
Lane — um cenário nomeado no Fastfile. Exemplo: lane :release do — uma cadeia de ações para lançar uma versão. Match — uma ferramenta para armazenar e sincronizar com segurança certificados e perfis de provisionamento através de um repositório Git criptografado. Gym — compilação e arquivamento de aplicativos iOS (um wrapper sobre xcodebuild). Pilot — upload e gerenciamento de compilações no TestFlight. Deliver — upload de aplicativos e metadados para o App Store Connect. Snapshot — geração automática de capturas de tela em todos os idiomas. Screengrab — geração automática de capturas de tela para Android.
Exemplo de Fastfile para Android: lane :beta chama gradle (assembleRelease), depois firebase_app_distribution para distribuição a testadores. Para iOS: lane :beta chama match (download de certificados), gym (arquivamento) e pilot (upload para TestFlight). O Fastlane pode ser executado localmente e em um servidor CI — tornando-o uma ferramenta universal em qualquer projeto móvel.
Canary Release é uma estratégia de automação CI/CD para lançar uma nova versão do aplicativo para uma pequena porcentagem de usuários (1–5%) antes do lançamento completo. No Google Play Console, isso é implementado via Staged Rollout: você lança uma atualização para 5% do seu público, monitora crashes e métricas, e aumenta a porcentagem se não houver problemas. No App Store Connect — via Phased Release for Automatic Updates.
A/B Testing — comparação de duas versões de um recurso em grupos aleatórios de usuários. No desenvolvimento móvel, os testes A/B são realizados através de Feature Flags, Firebase Remote Config ou lógica do servidor. Canary Release e testes A/B minimizam os riscos ao lançar novos recursos.
Feature Flag (Feature Toggle) — ativação condicional de funcionalidade sem implantar novo código. Uma Feature Flag é uma verificação no código: if (featureFlag.isEnabled()) { /* novo código */ } else { /* código antigo */ }. Os flags são gerenciados através de serviços: LaunchDarkly, Split.io, Firebase Remote Config. As Feature Flags permitem que os desenvolvedores mesclem código no main mesmo que o recurso ainda não esteja pronto para os usuários.
LaunchDarkly — a plataforma de gerenciamento de Feature Flags mais popular. A LaunchDarkly fornece SDKs para iOS, Android, Flutter e React Native. Você pode ativar recursos para usuários específicos, segmentos, regiões ou uma porcentagem do público. As Feature Flags também são usadas como kill switch — desativação instantânea de um recurso problemático sem lançar uma nova versão do aplicativo.
Perguntas frequentes
Comece com GitHub Actions — se seu código estiver no GitHub. O Actions é gratuito para repositórios públicos, tem suporte integrado para Android e iOS (macOS runners) e um enorme ecossistema de ações prontas. Para especialização móvel — Bitrise.
Não, os serviços CI (GitHub Actions, Bitrise, CircleCI) fornecem macOS runners. Você paga por minutos de uso. Para depuração local do Fastlane você precisa de um Mac, mas o CI pode funcionar na nuvem.
Canary Release — lançamento de uma nova versão para um subconjunto de usuários para verificar a estabilidade. Teste A/B — comparação de duas variantes de um recurso para escolher a melhor. Canary é sobre confiabilidade, A/B é sobre conversão.
O Fastlane não é obrigatório, mas altamente recomendado. Sem o Fastlane, você teria que executar xcodebuild manualmente, gerenciar certificados e enviar compilações através de uma interface web. O Fastlane automatiza todas essas tarefas com um único comando.
Match é uma ferramenta do Fastlane para gerenciar certificados de Code Signing do iOS. O Match armazena certificados e perfis de provisionamento em um repositório Git criptografado e os sincroniza entre todos os desenvolvedores e o servidor CI.
Resumo
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.