Compilar, testar e implementar aplicações Xcode
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Este guia de início rápido mostra como criar e implantar projetos Xcode com pipelines YAML no Azure Pipelines.
Pré-requisitos
- Uma organização e um projeto do Azure DevOps onde você tem permissão para criar pipelines e implantar aplicativos.
- Um projeto e aplicativo Xcode 9+ em um repositório GitHub. Para obter mais informações, consulte Criando um projeto Xcode para um aplicativo.
Criar o pipeline
Importante
Durante os procedimentos do GitHub, você pode ser solicitado a criar uma conexão de serviço do GitHub ou ser redirecionado para o GitHub para entrar, instalar o Azure Pipelines ou autorizar o Azure Pipelines. Siga as instruções na tela para concluir o processo. Para obter mais informações, consulte Acesso a repositórios do GitHub.
- Em seu projeto de DevOps do Azure, selecione Pipelines>New pipeline ou Create pipeline se esse pipeline for o primeiro do projeto.
- Selecione GitHub como o local do seu código-fonte.
- Na tela Selecione um repositório, selecione o repositório para seu projeto Xcode.
- Na tela Configurar seu pipeline, selecione Xcode.
O Azure Pipelines fornece um pipeline inicial com base no modelo Xcode . Revise o código no azure-pipelines.yml.
Ambiente de construção
O Xcode está pré-instalado nos agentes macOS hospedados pela Microsoft no Azure Pipelines, portanto, você não precisa configurar nenhuma infraestrutura. Para obter as versões exatas do Xcode que estão pré-instaladas, consulte Software de agentes hospedados pela Microsoft.
O pool
nó na parte superior do arquivo de azure-pipelines.yml seleciona o pool de agentes apropriado.
pool:
vmImage: 'macOS-latest'
Tarefa de compilação do Xcode
A tarefa Xcode cria, testa ou arquiva um espaço de trabalho Xcode no macOS e, opcionalmente, pode empacotar um aplicativo. A etapa Xcode no arquivo de azure-pipelines.yml inicial cria o projeto iOS usando seu esquema padrão, para o simulador e sem empacotamento. Você pode alterar valores e adicionar parâmetros para corresponder à configuração do seu projeto.
steps:
- task: Xcode@5
inputs:
actions: 'build'
scheme: ''
sdk: 'iphoneos'
configuration: 'Release'
xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace'
xcodeVersion: 'default' # Options: 10, 11, 12, 13, 14, default, specifyPath
Salve e execute o pipeline
Quando terminar de revisar o código no azure-pipelines.yml, selecione Salvar e executar.
Opcionalmente, edite a mensagem de confirmação e forneça uma descrição. Em seguida, selecione Salvar e executar novamente para confirmar o arquivo azure-pipelines.yml no repositório e iniciar uma compilação.
A página de execução da compilação mostra os detalhes e o progresso da compilação. Se quiser ver seu pipeline em ação, selecione Trabalho na parte inferior da página.
Agora você tem um pipeline YAML em funcionamento, azure-pipelines.yml, em seu repositório que está pronto para personalizar.
Personalizar o pipeline
Para fazer alterações no pipeline, selecione Editar na página do pipeline. As seções a seguir descrevem algumas maneiras comuns de personalizar seu pipeline do Xcode.
Adicionar tarefas de assinatura e provisionamento
Um aplicativo Xcode deve ser assinado e provisionado para poder ser executado em um dispositivo ou publicar na App Store. O processo de assinatura e provisionamento deve acessar seu certificado de assinatura P12 e um ou mais perfis de provisionamento. Para obter mais informações, consulte Assinar seu aplicativo móvel.
Para disponibilizar o certificado e o perfil para o Xcode durante uma compilação, adicione as tarefas Instalar Certificado Apple e Instalar Perfil de Provisionamento Apple ao seu pipeline.
Usar uma variável de ambiente Carthage
Se o seu projeto usa Carthage com um repositório Carthage privado, você pode configurar a autenticação usando uma variável de ambiente nomeada GITHUB_ACCESS_TOKEN
com um valor de um token que tem acesso ao repositório. Carthage deteta e usa automaticamente essa variável de ambiente.
Não adicione o token secreto diretamente ao seu pipeline YAML. Em vez disso, selecione Variáveis na página do pipeline para abrir o painel Variáveis e criar uma variável para esse token. Certifique-se de ativar o ícone de cadeado para criptografar o valor da variável. Para obter mais informações, consulte Definir variáveis secretas.
O código de pipeline a seguir usa uma variável secreta nomeada myGitHubAccessToken
para o valor da variável de GITHUB_ACCESS_TOKEN
ambiente.
- script: carthage update --platform iOS
env:
GITHUB_ACCESS_TOKEN: $(myGitHubAccessToken)
Teste em dispositivos hospedados pelo Azure
Para testar seu aplicativo em um laboratório hospedado de dispositivos iOS no Visual Studio App Center, adicione a tarefa App Center Test ao seu pipeline.
Essa tarefa requer uma conta de avaliação gratuita do App Center , que deve ser convertida em paga após 30 dias para continuar a usar o laboratório de teste. Inscreva-se para obter uma conta do App Center antes de usar esta tarefa.
O exemplo a seguir executa um conjunto de testes do App Center. A tarefa usa uma conexão de serviço que você deve configurar.
Para obter a sintaxe e a referência completas da tarefa, consulte Tarefa de teste do App Center. Para obter mais informações, consulte Usando o Azure DevOps para teste de interface do usuário.
- task: AppCenterTest@1
inputs:
appFile: path/myapp.ipa
artifactsDirectory: '$(Build.ArtifactStagingDirectory)/AppCenterTest'
frameworkOption: 'appium'
appiumBuildDirectory: test/upload
serverEndpoint: 'My App Center service connection'
appSlug: username/appIdentifier
devices: 'devicelist'
Manter artefatos com o registro de compilação
Para armazenar seu arquivo iOS AppStore Package (IPA) com o registro de compilação ou teste e implantá-lo em pipelines subsequentes, adicione as tarefas Copiar arquivos e Publicar artefatos de compilação ao seu pipeline. Para obter mais informações, consulte Publicar e baixar artefatos de pipeline.
- task: CopyFiles@2
inputs:
contents: '**/*.ipa'
targetFolder: '$(build.artifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
Implantar no App Center
Para distribuir uma aplicação a um grupo de testadores ou utilizadores beta ou promover a aplicação para o Intune ou para a Apple App Store, adicione a tarefa Distribuir do App Center. A tarefa requer uma conta gratuita do App Center que permanece gratuita.
O exemplo a seguir distribui um aplicativo para os usuários. Para obter a sintaxe e a referência completas da tarefa, consulte Distribuição do App Center. Para obter mais informações, consulte Implantar compilações do Azure DevOps com o App Center.
- task: AppCenterDistribute@3
inputs:
serverEndpoint: 'AppCenter'
appSlug: '$(APP_CENTER_SLUG)'
appFile: '$(APP_FILE)' # Relative path from the repo root to the IPA file you want to publish
symbolsOption: 'Apple'
releaseNotesOption: 'input'
releaseNotesInput: 'Here are the release notes for this version.'
destinationType: 'groups'
Instale a extensão Apple App Store e implante na Apple App Store
Para automatizar a interação com a Apple App Store, instale a extensão Apple App Store e use as seguintes tarefas no seu pipeline. Por predefinição, estas tarefas são autenticadas na Apple utilizando uma ligação de serviço que tem de configurar.
Para automatizar o lançamento de atualizações para aplicativos beta ou aplicativos de produção existentes do iOS TestFlight na App Store, adicione a tarefa Lançamento da App Store.
Há limitações de usar essa tarefa com a autenticação de dois fatores da Apple. A autenticação da Apple é específica da região e os tokens de sessão fastlane expiram rapidamente e devem ser recriados e reconfigurados.
- task: AppStoreRelease@1
displayName: 'Publish to the App Store TestFlight track'
inputs:
serviceEndpoint: 'My Apple App Store service connection'
appIdentifier: com.yourorganization.testapplication.etc
ipaPath: '$(build.artifactstagingdirectory)/**/*.ipa'
shouldSkipWaitingForProcessing: true
shouldSkipSubmission: true
Para automatizar a promoção de uma aplicação submetida anteriormente a partir do iTunes Connect para a App Store, adicione a tarefa Promover da App Store.
- task: AppStorePromote@1
displayName: 'Submit to the App Store for review'
inputs:
serviceEndpoint: 'My Apple App Store service connection'
appIdentifier: com.yourorganization.testapplication.etc
shouldAutoRelease: false
Extensões relacionadas
- Apple App Store da Microsoft
- Segurança codificada da segurança codificada
- MacinCloud da Moboware Inc.
- Tarefas de aplicativos móveis para iOS e Android de James Montemagno
- Laboratório de testes móveis da Perfecto Mobile
- Raygun de Raygun
- React Native da Microsoft
- Versão Setter de Tom Gilder