Configurar um build do iOS React Native no App Center
Importante
O Visual Studio App Center está programado para ser desativado em 31 de março de 2025. Embora você possa continuar a usar o Visual Studio App Center até que ele seja totalmente desativado, há várias alternativas recomendadas para as quais você pode considerar a migração.
O App Center pode criar React Native aplicativos escritos em React Native versão 0.34 ou mais recente.
Para criar um aplicativo React Native para iOS:
- Conecte-se à conta de serviço do repositório (por exemplo: Azure DevOps, Bitbucket, GitHub ou VSTS).
- Selecione um repositório e um branch onde seu aplicativo reside.
- Configure o projeto ou o workspace do build e o esquema que você deseja criar.
Observação
Para que o aplicativo seja executado em um dispositivo real, o build precisa ser assinado por código com um perfil de provisionamento válido e um certificado.
1. Vinculando seu repositório
Primeiro, conecte sua conta de serviço do repositório ao App Center. Depois que sua conta estiver conectada, selecione o repositório em que o projeto do iOS está localizado. Você deve ter permissão de administrador e pull para o repositório.
2. Selecionando uma ramificação
Depois de selecionar um repositório, selecione o branch que você deseja criar. Por padrão, todos os branches ativos serão listados.
3. Configurando seu primeiro build
Antes do primeiro build, o projeto React Native precisa ser configurado.
3.1. Project
Selecione o do package.json
projeto. O App Center detectará automaticamente o projeto/workspace do Xcode associado.
3.2. Versão Xcode
Selecione a versão do Xcode para executar o build na lista suspensa.
Se a alternância "Usar sistema de build herdado" for On
, o sistema de build herdado será usado independentemente das configurações do projeto ou do workspace.
Se a alternância "Usar sistema de build herdado" for Off
, a configuração do sistema de build das configurações do projeto ou do workspace será usada.
Observação
- A configuração do workspace deve ser confirmada no repositório
- Se a configuração do workspace não for confirmada, o sistema de build moderno será usado
3.3. Versão do Node.js
Selecione a versão Node.js a ser usada para o build. Saiba mais sobre como selecionar Node.js versão
3.4. Gatilhos de build
Por padrão, um novo build é disparado sempre que um desenvolvedor envia por push para um branch configurado. Se você preferir disparar um novo build manualmente, poderá alterar essa configuração no painel de configuração.
3.5. Incrementar número de build
Quando habilitado, o CFBundleVersion
no Info.plist do projeto do aplicativo é incrementado automaticamente para cada build. A alteração ocorre antes do build e não será confirmada em seu repositório.
3.6. Assinatura de código
Um build bem-sucedido produz um .ipa
arquivo. Para instalar o build em um dispositivo, o build deve ser assinado com um perfil de provisionamento e um certificado válidos. Para assinar os builds produzidos de um branch, habilite a assinatura de código no painel de configuração e carregue um perfil de provisionamento (.mobileprovision
arquivo) e um certificado válido (.p12), juntamente com a senha do certificado.
As configurações em seu projeto Xcode devem ser compatíveis com os arquivos que você está carregando. Leia mais sobre a assinatura de código do iOS do App Center e a documentação do Desenvolvedor da Apple.
Assinar aplicativos com extensões de aplicativo ou watchOS requer um perfil de provisionamento adicional por extensão.
3.7. Iniciar sua compilação bem-sucedida em um dispositivo real
Use o arquivo recém-produzido .ipa
para testar se seu aplicativo começa em um dispositivo real; o teste de inicialização adiciona cerca de 10 minutos a mais ao tempo total de compilação. Leia mais sobre como configurar testes de inicialização.
3.8. CocoaPods
O App Center examina o branch selecionado e, se encontrar um Podfile, ele executará automaticamente uma pod install
etapa no início de cada build. Isso garante que todas as dependências estejam instaladas.
3.9. Distribuir para um grupo de distribuição
Configure cada build bem-sucedido de um branch a ser distribuído para um grupo de distribuição criado anteriormente. Adicione um novo grupo de distribuição de dentro da seção Distribuir. Há sempre um grupo de distribuição padrão chamado "Colaboradores" que inclui todos os usuários que têm acesso ao aplicativo.
Depois de salvar a configuração, um novo build será iniciado automaticamente.
4. Resultados de build
Os builds podem estar em um dos seguintes estados:
- enfileirado – o build é enfileirado aguardando recursos disponíveis
- compilação – o build está executando e executando tarefas predefinidas
- bem-sucedido – o build foi concluído com êxito
- falha - o build foi concluído sem êxito; solucionar o que deu errado baixando e inspecionando o log de build
- cancelado – o build foi cancelado por meio da ação do usuário ou atingiu o tempo limite
4.1. Logs de build
Para um build concluído (bem-sucedido ou com falha), baixe os logs para entender mais sobre como o build foi. O App Center fornece um arquivo morto com os seguintes arquivos:
|-- 1_build.txt (this is the general build log)
|-- build (this folder contains a separate log file for each build step)
|-- <build-step-1> (e.g. 2_Get Sources.txt)
|-- <build-step-2> (e.g. 3_Pod install.txt)
|--
|-- <build-step-n> (e.g. n_Post Job Cleanup.txt)
Os logs de build (localizados no build/
diretório do arquivo morto) são úteis para solução de problemas e compreensão em qual etapa e por que o build falhou.
4.2. O aplicativo (.ipa)
O .ipa
arquivo é um arquivo morto de aplicativo do iPhone que contém o aplicativo iOS.
- Se o build tiver sido assinado corretamente, você poderá instalar o
.ipa
arquivo em um dispositivo real incluído no perfil de provisionamento usado ao assinar. Mais detalhes sobre assinatura e distribuição de código com o App Center podem ser encontrados na documentação de assinatura de código do iOS do App Center. - Se o build não estiver assinado durante o build, os desenvolvedores poderão assinar o
.ipa
arquivo (localmente usando codesign) ou usados para outras finalidades (por exemplo, carregar no serviço de teste para teste de interface do usuário em dispositivos reais ou executar no simulador). - Builds não assinados não produzirão um
.ipa
arquivo. O artefato de um build não assinado é o.xcarchive
arquivo, que pode ser usado para gerar um.ipa
arquivo com o organizador do Xcode Archives.
4.3. Os mapas de origem e os arquivos de símbolo
Ao criar um aplicativo iOS React Native, um mapa de origem javaScript e um ou vários .dsym
arquivos são gerados automaticamente com cada build e podem ser baixados assim que o build for concluído.
- se você já integrou o SDK do App Center em seu aplicativo com o módulo de relatório de falhas habilitado, o sinalizador de relatório de falha exigirá esse
.dsym
arquivo e o mapa de origem javaScript para um build para exibir relatórios de falha legívels (simbólicos) humanos. - se você já integrou outro SDK para fins de relatório de falhas em seu aplicativo, o serviço correspondente requer o
.dsym
arquivo e o mapa de origem javaScript para exibir relatórios de falha legívels (simbólicos) humanos.
Tenha em mente que o .dsym
arquivo não muda ao assinar o .ipa
código . Se você decidir assinar o build mais tarde, o gerado antes da .dsym
assinatura de código ainda será válido.
Se esse aplicativo tiver o SDK de falhas incluído, os símbolos do iOS e os mapas de origem serão enviados para o serviço Falhas do App Center. Os símbolos habilitarão relatórios de falha legívels por humanos (simbólicos) na pilha nativa e javaScript.
5. Dicas de build
5.1. Yarn
O Yarn é uma substituição mais rápida e determinística para npm
. Se um yarn.lock
arquivo estiver presente no repositório ao package.json
lado de , o App Center usará o Yarn, fazendo yarn install
isso no início do build. Caso contrário, ele fará npm install
.
5.2. Scripts de build personalizados
Há várias opções para executar scripts antes que os comandos de build padrão do App Center sejam executados.
Crie um script de pós-instalação no arquivo do
package.json
projeto. Isso é executado automaticamente depois que suas dependências são instaladas."scripts": { ... "postinstall" : "eslint ./" // other examples: "node ./postinstall.js" or "./postinstall.sh" },
Escreva um script de shell usando a funcionalidade de scripts de build personalizados do App Center.
#!/usr/bin/env bash # Example: Authenticate with private NPM registry echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc # Example: Create a file that's not in version control (from base64 encoded environment variable) base64 -d <<< "$MY_FILE_CONTENTS" > ios/SuperSecretFile.txt