Tiago Aguiar

Como Criar Variações de Compilação (Build Variants) no iOS

avatar
Preview Image

A criação de variantes de compilação em um aplicativo iOS permite que os desenvolvedores criem diferentes versões do aplicativo com diferentes configurações, como diferentes endpoints, cores ou recursos de API.

Isso pode ser útil para testar e implantar diferentes versões do aplicativo em diferentes ambientes, como desenvolvimento, preparação (staging) e produção.

Aqui está um guia passo a passo sobre como criar variantes de compilação (build variants) em um aplicativo iOS.

apple evolution

Criando o arquivo de configuração .xcconfig

Um arquivo xcconfig é um arquivo de texto simples que contém configurações de compilação para um aplicativo iOS ou macOS. Ele pode ser usado para substituir as configurações padrão no Xcode e fornecer um local centralizado para gerenciar as configurações de compilação (útil para o nosso build variant).

Veja como criar um arquivo xcconfig no Xcode:

Primeiramente abra seu projeto Xcode e navegue até o “Project Navigator” na barra lateral esquerda.

Clique com o botão direito do mouse no projeto na parte superior do Project Navigator e selecione “New File”.

Na seção “iOS” ou “macOS”, selecione “Arquivo de configurações” e clique em “Avançar”.

xcconfig 01

Nomeie o arquivo com algo significativo, como “Dev.xcconfig” (ambiente de dev) e selecione o destino apropriado para o arquivo.

Clique em “Criar” para criar o arquivo xcconfig e adicioná-lo ao seu projeto.

Abra o arquivo xcconfig recém-criado no Xcode e adicione as configurações de compilação que deseja substituir. Cada linha do arquivo deve estar no formato “CHAVE = VALOR” sem as aspas.

Vamos usar as seguintes:

1
2
3
4
BASE_URL = dev.example.com
BUILD_TYPE = Debug
APP_NAME = MyApp (Dev)
APP_BUNDLE_ID = co.tiagoaguiar.codelab.BuildVariant.dev

Execute o mesmo passo para o arquivo de produção - Prod.xcconfig:

1
2
3
4
BASE_URL = prd.example.com
BUILD_TYPE = Release
APP_NAME = MyApp
APP_BUNDLE_ID = co.tiagoaguiar.codelab.BuildVariant

Para usar o arquivo xcconfig, navegue até o “Project Navigator” e selecione o projeto no topo da lista.

Na guia “Informações”, na seção “Settings”, você pode selecionar o arquivo xcconfig para cada configuração de compilação.

xcconfig 03

Ao compilar o projeto, o Xcode usará as configurações no arquivo xcconfig para substituir as configurações padrão no projeto.

Agora, acesse o “Build Settings” e substitua a propriedade “Product Name” e “Product Bundle Identifier” para que o Info.plist carregue os valores de nome e bundleID do nosso arquivo xcconfig.

xcconfig 04

product bundle identifier

Criando Propriedades no Info.plist

Ao criar novas propriedades no arquivo Info.plist, você pode armazenar informações específicas do aplicativo e configurar o comportamento do seu aplicativo iOS. Podem ser informações como chaves de API, URLs ou qualquer outra informação usada por seu aplicativo em tempo de execução como os valores do nosso .xcconfig.

Para criar uma nova propriedade que iremos carregar do xcconfig no arquivo Info.plist de um aplicativo iOS, você pode seguir estas etapas:

  1. Abra seu projeto Xcode e navegue até o “Info.plist”
  2. Clique no botão de adição (+) na seção das propriedades.
  3. No campo “Chave” digite o nome da propriedade que está no xcconfig,
  4. No campo “Valor”, digite o nome da propriedade que está no xcconfig entre ${} desta forma: ${BUILD_TYPE}.

Repita as etapas para quaisquer propriedades adicionais que deseja criar como BASE_URL por exemplo.

info.plist xcconfig

Desta maneira, o Info.plist irá carregar os valores do xcconfig e dentro do nosso código, iremos carregar os valores do Info.plist.

Swift < Info.plist < xcconfig < compilação

Como Carregar os Valores de Build no Swift

Para acessar valores do arquivo Info.plist em um aplicativo iOS Swift, você pode usar a classe Bundle para obter uma referência ao arquivo e acessar seus valores usando o método object(forInfoDictionaryKey:).

Aqui está um exemplo de como você pode acessar o valor de uma propriedade chamada “BASE_URL” no arquivo Info.plist:

1
let baseUrl = Bundle.main.object(forInfoDictionaryKey: "BASE_URL") as? String

Neste exemplo, Bundle.main obtém uma referência ao pacote principal do aplicativo, que inclui o arquivo Info.plist.

O método object(forInfoDictionaryKey:) é usado para obter o valor da propriedade “BASE_URL” do arquivo Info.plist.

O as? String é usado para converter o valor para um tipo String, caso o valor não seja um tipo string, ele retorna nil.

Você também pode usar o método string(forKey:) que funciona de forma semelhante ao exemplo acima, mas é mais apropriado quando você tem certeza de que o valor da chave é do tipo string.

1
let baseUrl = Bundle.main.string(forKey: "BASE_URL")

Algumas propriedades úteis como Nome do App ou BundleID são acessadas pela chave CFBundleName e CFBundleIdentifier respectivamente.

Se a propriedade for booleana você pode usar o método bool(forKey:), para números existe int(forKey:) e float(forKey:)

Depois de obter o valor da propriedade, você pode usá-la em seu código conforme necessário. Lembre-se de que essa abordagem só funciona se a propriedade que você está tentando acessar estiver definida no arquivo Info.plist e tiver um valor atribuído a ela.

Criando a Variação de Compilação (Build Variant)

Para criar a variação precisamos criar um scheme.

Um esquema no Xcode define uma coleção de destinos a serem construídos, uma configuração a ser usada durante a construção e um conjunto de testes a serem executados.

Os esquemas são usados para organizar e gerenciar diferentes configurações de compilação para seu aplicativo iOS.

Veja como criar um novo esquema no Xcode:

new scheme xcode

Selecione a opção new scheme conforme a imagem acima.

Nomeie o esquema com algo significativo, como “Prod”.

Na guia “Info”, na seção “Build Configuration”, selecione a configuração de compilação que deseja usar para o esquema (neste exemplo será Release).

new scheme release

Tudo pronto! Agora é só selecionar o novo scheme e rodar o app :)

Você pode criar vários esquemas para diferentes ambientes, como desenvolvimento, preparação (staging) e produção, e alternar facilmente entre eles para criar e testar diferentes versões do seu aplicativo.

Gostou? Então compartilhe com seus amigos!

Vou deixar a versão em video aqui caso queira ver como ficou nosso tutorial.

Maravilha! Em breve você receberá conteúdos exclusivos por e-mail. Continue lendo os artigos para aprender mais sobre programação.