Solução de problemas de build do iOS

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 migrar.

Saiba mais sobre linhas do tempo e alternativas de suporte.

Nenhum esquema Xcode foi encontrado

Criar um xcworkspace ou um xcproject requer um esquema Xcode compartilhado. Esquemas Xcode são salvos localmente para que o Xcode possa acessá-los. Por padrão, os esquemas não são compartilhados com outras pessoas ou incluídos no controle do código-fonte.

Para compartilhar um esquema no Xcode, use as seguintes etapas:

  1. Selecione Esquema de > Produto > Gerenciar esquemas.
  2. Defina o esquema para o xcproject/xcworkspace como compartilhado.
  3. O contêiner do esquema deve ser definido como o projeto Xcode ou workspace que você deseja criar.
  4. Adicione o arquivo ao controle do .xcscheme código-fonte e enviado por push ao repositório remote para que o App Center possa acessá-lo.

Marcar esquema como compartilhado

Aviso

Verifique se a xcshareddata/xcschemes/ pasta não está no .gitignore arquivo. É aqui que os .xcscheme arquivos são armazenados pelo Xcode. O App Center depende desses arquivos para compilar o projeto corretamente. Simplesmente exportar o .xcscheme para uma pasta diferente não funcionará.

Meus builds do iOS falham com "clang: error: o comando do vinculador falhou com o código de saída 1"

O erro pode ser causado pela compilação do App Center com o xcodeproj em vez do workspace. Ao adicionar CocoaPods ao seu projeto, alterne para o uso do workspace ao criar no App Center.

Indicador: procure esta linha no log de build:

ld: library not found for -lPods-GarageController
clang: error: linker command failed with exit code 1 (use -v to see invocation)

** ARCHIVE FAILED **

Para corrigir esse erro, abra a configuração de Build do projeto e clique em Salvar. O App Center escolherá automaticamente o workspace corretamente para builds futuros.

Problemas de assinatura do iOS explicados

Observação

Não há suporte para identidades de assinatura que usam caracteres não ascii no Build.

Lidar com perfis e certificados de provisionamento pode ser um processo desafiador. As dicas a seguir devem ajudá-lo a assinar com êxito seus aplicativos iOS:

  1. Salve a configuração de build no App Center depois de enviar por push as alterações de assinatura para seu projeto. No App Center, a configuração de build de qualquer branch armazena dois valores do seu projeto Xcode: e CODE_SIGN_STYLEDEVELOPMENT_TEAM (definidos project.pbxproj no arquivo em sua .xcodeproj pasta). Sempre que você alterar entre a assinatura manual e automática ou alternar a equipe de desenvolvimento, salve a configuração de build no App Center depois de enviar as alterações por push. Se você não salvar após o envio por push, o build poderá falhar com um erro de assinatura.

  2. Arraste e solte o perfil de provisionamento correto ao usar a assinatura automática. No Xcode, na guia Geral do seu destino em Assinatura, clique no ícone de informações ao lado de Perfil Gerenciado do Xcode. Em seguida, você verá um popover com informações de perfil. Clique e arraste o ícone PROV na parte superior esquerda para o local desejado (conforme mostrado abaixo).

  3. Anote as opções atualmente com suporte do App Center ao usar a assinatura manual e automática. O App Center dá suporte total à assinatura manual do aplicativo iOS, para que você possa usar qualquer tipo de perfil ou certificado. Verifique se o perfil de provisionamento e o certificado carregados no App Center correspondem ao que você especificou em seu projeto. Se você tiver habilitado Gerenciar Automaticamente a Assinatura no Xcode, o App Center oferecerá suporte à assinatura de aplicativos com certificados e perfis de desenvolvedor (não com distribuição). Ao carregar no App Center, você precisará usar o perfil de provisionamento gerado automaticamente do Xcode.

Ainda está com problemas?

Para solucionar problemas e obter a inscrição e a execução do build, sugerimos as seguintes etapas:

  1. Configure a entrada manual em seu projeto Xcode e verifique se ele está funcionando localmente.
  2. Depois que isso for verificado, confirme e envie por push as alterações para o repositório.
  3. Prepare o perfil de provisionamento e o certificado selecionados no destino Xcode e carregue-os na configuração de build do App Center.
  4. Mais importante: verifique se você efetuou push do estado mais recente do projeto antes de salvar o novo certificado e o perfil na configuração de build.

Onde está meu arquivo .ipa?

O Xcodebuild, ao contrário do xcrun, não permite gerar um .ipa arquivo se o build não estiver assinado. Builds não assinados produzem um .xcarchive em vez disso. Se você quiser gerar um .ipa arquivo com os artefatos de um build não assinado, poderá usar o .xcarchive arquivo para fazer isso.

Exportar arquivo xcarchive usando xcode

Meu aplicativo iOS usando Xcode falha com erro de versão de bitcode inválido

Se os builds falharem com error: Invalid bitcode version (Producer: '802.0.38.0_0' Reader: '800.0.42.1_0'), você está usando uma biblioteca ou pod que foi criado por uma versão mais recente do Xcode do que o projeto. Você pode atualizar o projeto e a configuração de build no App Center para usar uma versão mais recente do Xcode ou alternar para uma versão alternativa da biblioteca problemática, que é compilada com uma versão correspondente do Xcode.

Meu aplicativo iOS falha ao executar um teste

Um motivo comum para os testes falharem é quando os comandos do vinculador atingem um erro semelhante ao seguinte:

 ld: directory not found for option iPhoneSimulator10.3.sdk/Developer/Library/Frameworks 
  ❌ ld: embedded dylibs/frameworks are only supported on iOS 8.0 and later (@rpath/XCTest.framework/XCTest) for architecture x86_64 
  ❌ clang: error: linker command failed with exit code 1 (use -v to see invocation)  

A causa provável desse erro é que o tipo de vinculação do Apple Mach-O Linker não está definido como biblioteca estática. Para compilar e testar seu aplicativo com êxito, verifique se o tipo de vinculação do Apple Mach-O Linker em seu destino de teste está definido como biblioteca estática.

Apple Mach-O Linker

Meus builds do iOS usando CocoaPods no Xcode 9 continuam falhando, o que devo fazer?

Pode ser porque a configuração de assinatura no projeto pods difere daquela do projeto Principal. Os pods estão com check-in no repositório? Nesse caso, seu projeto pods deve usar o mesmo método de assinatura que o projeto Main.

Se os Pods não estiverem com check-in, poderá haver problemas diferentes. Há algumas soluções alternativas que você pode usar neste Problema do GitHub com scripts de pré-compilação.

Como atualizei meu projeto para o Xcode 10 beta, meu aplicativo falha ao compilar com o erro Ciclo de dependências entre destinos

O novo sistema de build do Xcode 10 detecta ciclos de dependência em seu build e falha na compilação se houver algum.

Para obter mais informações sobre como corrigir o build, consulte a documentação da Apple sobre como resolver tipos comuns de ciclos de dependência.