Aula 171: Gerenciando Versões e Lançamentos de App
Gerenciar versões e lançamentos de aplicativos é um aspecto crucial do desenvolvimento iOS. Este processo envolve a definição de números de versão, a criação de configurações de build e a utilização de ferramentas para gerenciar o ciclo de vida do seu aplicativo de maneira eficiente. Nesta aula, abordaremos os elementos essenciais de versionamento e lançamento de suas aplicações em Swift.
Estratégia de Versionamento
O versionamento permite que você comunique as mudanças em seu aplicativo aos usuários. Uma convenção comum para versionamento é o Versionamento Semântico (SemVer), que consiste em três componentes:
- Versão maior: Incrementa quando você faz mudanças incompatíveis na API.
- Versão menor: Incrementa quando você adiciona funcionalidades de forma retrocompatível.
- Versão de correção: Incrementa quando você faz correções de bugs retrocompatíveis.
Por exemplo, o versionamento pode ser representado assim: 1.0.0
, 1.1.0
, 2.0.0
, etc.
Definindo o Número da Versão e do Build
No Xcode, você pode definir o número da versão e o número do build nas configurações do seu projeto.
- Selecione seu projeto no navegador de projetos do Xcode.
- Escolha seu alvo e vá para a aba "Geral".
- Na seção "Identidade", você encontrará campos para "Versão" e "Build".
Você pode recuperar e exibir programaticamente a versão e o número do build do aplicativo da seguinte forma:
import UIKit
class VersionViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String,
let build = Bundle.main.infoDictionary?["CFBundleVersion"] as? String {
print("Versão: \(version), Build: \(build)")
}
}
}
Configurações de Build
Configure diferentes configurações de build para ambientes de desenvolvimento, teste e produção. Isso permite que você ajuste o comportamento do aplicativo com base na fase de desenvolvimento.
- Vá para as configurações do seu projeto no Xcode.
- Na aba "Info", você pode duplicar as configurações "Debug" e "Release" para criar configurações personalizadas (por exemplo, "Staging").
Depois de definir suas configurações, você pode acessá-las no seu código usando a compilação condicional:
#if DEBUG
// Código específico para desenvolvimento
let apiEndpoint = "https://dev.api.exemplo.com"
#elseif STAGING
// Código específico para staging
let apiEndpoint = "https://staging.api.exemplo.com"
#else
// Código específico para produção
let apiEndpoint = "https://api.exemplo.com"
#endif
Gerenciando Lançamentos com Git
Usar Git para controle de versão é essencial para gerenciar os lançamentos do seu aplicativo. Considere marcar os lançamentos no Git para identificar estados específicos do seu código.
Para marcar um lançamento:
git tag -a v1.0.0 -m "Lançamento da versão 1.0.0"
git push origin v1.0.0
Você pode automatizar o processo de marcação usando ferramentas como Fastlane, que ajuda a gerenciar eficientemente o processo de lançamento do aplicativo. O Fastlane permite que você execute comandos do seu terminal que automatizam a construção, teste e lançamento do aplicativo na App Store.
Integração Contínua / Entrega Contínua (CI/CD)
Implementar CI/CD pode agilizar significativamente o processo de lançamento. Ferramentas como GitHub Actions, CircleCI ou Bitrise podem ajudá-lo a construir e testar automaticamente seu aplicativo sempre que você enviar alterações.
Uma configuração básica do GitHub Actions pode parecer assim:
name: iOS CI
on:
push:
branches:
- main
jobs:
build:
runs-on: macos-latest
steps:
- name: Checkout do código
uses: actions/checkout@v2
- name: Configurar o Xcode
uses: macosxdev/Xcode-build@v2
- name: Construir o aplicativo
run: xcodebuild -scheme SeuAppScheme -sdk iphonesimulator
- name: Executar testes
run: xcodebuild test -scheme SeuAppScheme -sdk iphonesimulator
Conclusão
Gerenciar versões e lançamentos de aplicativos de forma eficaz é fundamental para o sucesso de uma aplicação iOS. Ao seguir as melhores práticas de versionamento, utilizar configurações de build, aproveitar o Git para controle de versão e implementar pipelines de CI/CD, você estabelece uma base sólida para manter seu aplicativo ao longo de seu ciclo de vida. Ser organizado na sua abordagem a lançamentos resultará em implantações mais suaves e usuários mais satisfeitos. Boa codificação!