Como Criar Variações de Compilação (Build Variants) no iOS
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.
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”.
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.
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.
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:
- Abra seu projeto Xcode e navegue até o “Info.plist”
- Clique no botão de adição (+) na seção das propriedades.
- No campo “Chave” digite o nome da propriedade que está no xcconfig,
- 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.
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:
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).
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.