Partilhar via


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.

Saiba mais sobre linhas do tempo e alternativas de suporte.

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:

  1. Conecte-se à conta de serviço do repositório (por exemplo: Azure DevOps, Bitbucket, GitHub ou VSTS).
  2. Selecione um repositório e um branch onde seu aplicativo reside.
  3. 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.jsonprojeto. 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 .ipacó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.jsonlado 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