SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
29.11.2024

Lição: 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.

  1. Selecione seu projeto no navegador de projetos do Xcode.
  2. Escolha seu alvo e vá para a aba "Geral".
  3. 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.

  1. Vá para as configurações do seu projeto no Xcode.
  2. 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!

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!