Problemas após a atualização para o Xcode 10: arquivo de entrada de compilação não pode ser encontrado

105

Eu atualizei meu Xcode SDK para a versão 10 ontem à noite e então descobri que não consigo construir.

Estou recebendo este erro:

Arquivo de entrada de compilação não encontrado: '/Users/call01/Library/Developer/Xcode/DerivedData/Comp-Lite-Apps-gytvmossqptokeafrddvvmnlzadk/Build/Products/Debug-iphoneos/SG11.app/SG11

que não existia antes da minha atualização e estou tentado a reverter, mas gostaria de continuar com a versão 10 se puder resolver esse problema.

user616076
fonte

Respostas:

131

Tente voltar para o Legacy Build System( File > Project Settings > Workspace Settings > Legacy Build System)

schmidt9
fonte
2
Agradável. Mas ainda estou me perguntando o que vai acontecer depois? Precisamos consertar nosso projeto, mas como?
Teddy,
1
@Teddy Eu não encontrei nenhuma solução ainda, ainda usando esta solução alternativa
schmidt9
2
Tiremos o chapéu @ schmidt9, muito obrigado, você é um salva-vidas. em segundo lugar, NÃO CONSIGO acreditar que este novo sistema de compilação foi o problema. Venho lutando com isso há dias. após a atualização para iOS 12 e XCode 10, a assinatura automática foi interrompida. Tentei de tudo e até revoguei e recriei todos os certificados. e perfis. a assinatura foi corrigida, mas o perfil de provisionamento sempre foi NENHUM. PODERIA assinar manualmente o aplicativo e funcionou, mas o contêiner do iCloud e outros direitos estavam faltando no aplicativo publicado. de qualquer maneira, consertou meu problema. bom Deus como a apple me frustra a cada atualização. Felicidades!
Nexus
Isso corrigiu meu problema com assinatura automática e criação de perfil. mas ainda estou tendo problemas com os contêineres do iCloud. quando eu instalo o aplicativo diretamente no meu telefone, ele funciona bem. Eu tenho um contêiner do iCloud e uso documentos do iCloud para anexar arquivos do armazenamento do iCloud. mas quando eu lanço o aplicativo para TestFlight, ele não funciona. falha silenciosamente, como se o contêiner do iCloud nem estivesse presente no perfil do aplicativo distribuído. incrivelmente frustrante.
Nexus
1
@Nexus este problema com o novo sistema de compilação persiste desde que a Apple o lançou (xcode 8 ou 9). Desculpe, não lidamos com contêineres do iCloud, não posso dizer qual é o problema
schmidt9
91

Para arquivos Swift ou arquivos que pertencem ao projeto, como:

Build input file cannot be found: PATH/TO/FILE/FILE.swift

Esse problema pode ocorrer quando arquivos ou pastas foram removidos ou movidos no projeto.

Para fixar isso:

  1. Vá no navegador de projetos, selecione seu projeto

  2. Selecione a Build Phasesguia

  3. Na Compile Sourcesseção, verifique os arquivos dos quais o Xcode está reclamando

  4. Observe que os arquivos estão no caminho errado e exclua-os clicando no ícone de menos

  5. Adicione novamente o (s) arquivo (s) clicando no ícone de adição e pesquise no projeto.

  6. Produto> Limpar pasta de compilação

  7. Construir

Você geralmente encontra esses arquivos ausentes no Recovered References pasta do Xcode na árvore do projeto (procure a barra de pesquisa no canto inferior esquerdo do Xcode e procure seu arquivo de reclamação):

Excluí-los dessa pasta também pode solucionar o erro.

AnthonyR
fonte
1
Obrigado! Tínhamos referências a arquivos excluídos. Excluir essas referências sozinha resolveu o problema
Jason
Às vezes, quando eu renomeio de dentro do XCode, o arquivo no 'Finder' ainda mantém o nome antigo. Localize o arquivo em 'Finder' e renomeie-o com o novo nome.
Tony
58

Para mim, no Xcode 10, essa solução funcionou perfeitamente. Basta ir até a pasta Referências recuperadas e remover todos os arquivos em vermelho e adicioná-los novamente com a referência adequada.

insira a descrição da imagem aqui

Krishna Thakur
fonte
10
Não consigo encontrar "Referências recuperadas" no meu projeto
david m lee
4
O que você quer dizer com "adicionar novamente com a referência adequada" depois de removermos os arquivos vermelhos?
PrimeTimeTran
@PrimeTimeTran Eu quis dizer que você pode adicionar essas referências de arquivo novamente em seu projeto, com arrastar e soltar ou copiar e colar. É como adicionar um novo arquivo ao projeto.
Krishna Thakur
3
@davidmlee Acho que o que esse cara quer dizer em outras palavras é: "abra todas as suas pastas no projeto, exclua o material vermelho e adicione novamente." Não precisa haver uma pasta de referências recuperada.
bearacuda13
17

Isso funcionou para mim no Xcode 10:

  • Clique no ícone / nome do projeto em seu projeto Xcode
  • Vá para a guia Geral
  • Clique em [Choose info.plist File] na seção Identity
  • Selecione o arquivo info.Plist
  • Verifique a guia Informações para ver se info.plist foi carregado com sucesso
  • Construir e executar
Mile Dev
fonte
15

Curiosamente, fechar o Xcode e reabri-lo também pode ser o suficiente.

danielhadar
fonte
Eu também excluí dados derivados, mas simplesmente fechar / reabrir pode ter sido o suficiente.
Adam Johns
Achei que essa era uma maneira do Visual Studio de consertar as coisas ... mas funcionou para mim.
SEG.Veenstra
14

A solução acima eventualmente funciona para mim; no entanto, preciso realizar mais algumas etapas extras para finalmente compilar com êxito. (Essas etapas extras foram necessárias mesmo no Xcode 9.)

  1. Xcode: Arquivo -> Configurações do espaço de trabalho -> Sistema de compilação: Sistema de compilação legado
  2. Xcode: Produto -> Limpar
  3. Gire para compilar por meio de diferentes tipos de emuladores, como "iPhone 8", "iPhone 8 Plus" etc. (Eles podem falhar ou não).
  4. Eventualmente compilar em "Dispositivo iOS genérico"
david m lee
fonte
Eu precisava seguir algumas dessas etapas para fazê-lo funcionar também.
Liwen Zhao
13

Basta verificar o caminho para o arquivo .plist nas configurações de compilação de seu destino

insira a descrição da imagem aqui

Alexandre Tikhonov
fonte
Sim - eu movi o plist para uma pasta separada. Acho que as pastas costumavam ser virtuais e agora são reais (a velha pasta azul / amarela). De qualquer maneira, sua resposta foi certeira :-)
Peter
10

Corrigi este problema desta forma: vá para as fases de construção do seu projeto (clique no ícone do projeto na parte superior e, a seguir, clique em fases de construção). Procure seu arquivo lá. Se estiver lá (ficará acinzentado), exclua-o. Em seguida, limpe (shift + alt + command + k) e execute! Espero que ajude.

Anastasiia Staiko
fonte
9

Se o erro disser que ele não pode encontrar Info.plist e está procurando no caminho errado , faça o seguinte:

  1. Selecione seu projeto no navegador e, em seguida, selecione seu destino
  2. Selecione "Build Settings" e pesquise "plist"
  3. Deve haver uma opção chamada Arquivo Info.plist. Mude o local para o correto.
Keverly
fonte
Essa resposta também é aplicável se você renomear a pasta / estrutura do aplicativo. Obrigado @keverly
Lorem
5

Nenhuma das opções acima funcionou para mim, mas isso fez:

  1. Abra o projeto no Finder, clique com o botão direito no seu arquivo .xcodeproj e mostre o conteúdo do pacote
  2. Abra project.pbxproj em um editor de texto
  3. Encontre a referência ao seu arquivo ausente
  4. Edite path = "path/to/file.swift"no local real no disco e salve o arquivo.
  5. Reconstrua o projeto
Ben Gomm
fonte
ISTO é o que corrige ... inacreditável
David Seek
O mesmo aqui. Como diabos você descobriu isso?
Peter Schorn
2

abra o painel de navegação direito onde estão seus arquivos de projeto OU JSUT clique em cmd + 1 Em seguida, procure por "Referências recuperadas" Pasta abra todos os arquivos vermelhos (exclua-os) e tudo funcionará tão bem.

Ahmed Samir
fonte
2

Eu fiz isso acontecer para construir meus testes de unidade. Isso pode ter acontecido porque excluí os testes de exemplo.

Eu removi o pacote de teste de unidade, em seguida, adicionei-o novamente como mostrado nas fotos abaixo e tudo estava bem novamente.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Declan McKenna
fonte
2

Encontrei este erro depois de renomear um arquivo. De alguma forma, o Xcode não renomeou corretamente o arquivo real no disco.

Portanto, não foi possível encontrar o arquivo. Às vezes, os arquivos são realçados com uma cor de texto vermelha. Em outras ocasiões, o ícone do Swift na frente do arquivo estava recebendo uma sobreposição cinza.

A solução era simples.

  • Verifique o erro e veja exatamente qual arquivo ele não conseguiu encontrar.
  • Selecione o arquivo que não pode ser encontrado.
  • Vá para o 'Inspetor de Arquivos'. Está no painel de navegação direito do Xcode.
  • Clique no ícone da pasta.
  • Selecione o arquivo correto.
  • Limpe a compilação e execute-a novamente.
Mel
fonte
1

Tive um problema semelhante depois de atualizar para uma nova versão do Swift recentemente. Mover arquivos fez com que meu projeto xcode fizesse referência a itens que não estavam mais no diretório do projeto, dando-me o arquivo de entrada de compilação de código de erro não encontrado.

Na minha situação, de alguma forma, eu tinha vários arquivos / imagens que estavam sendo referenciados conforme descrito abaixo:insira a descrição da imagem aqui

Na imagem acima.

  • Navegue até sua página de alvos.
  • Em seguida, clique na guia Build Phases na parte superior.
  • Role para baixo para copiar recursos de pacote
  • Encontre os arquivos afetados e remova-os. (aperte delete neles ou selecione-os e aperte o botão menos)

Foi aqui que, de alguma forma, eu tinha vários arquivos e imagens que estavam sendo referenciados de outras pastas e a compilação iria falhar porque eles não podiam mais encontrá-los. E também não consegui encontrar! ou como o Xcode ainda os fazia referência

Espero que isto ajude alguém !

Julian Silvestri
fonte
1

Eu tive o mesmo problema. O problema era que eu não tinha nenhum arquivo em Target> Build Phases> Compile Sources. O problema foi resolvido depois que eu adicionei pelo menos um arquivo ao Compile Sources.

egabor
fonte
1

Não que eu tenha feito algo errado, mas me deparei com esse problema por um motivo completamente diferente e meio que sei o que causou isso.

Eu usei o finder anteriormente e arrastei um arquivo para o diretório / pasta do meu projeto. Eu não arrastei para o Xcode . Para fazer o Xcode incluir esse arquivo no projeto, eu tive que arrastá-lo para o Xcode novamente mais tarde.

Mas quando mudei para um novo branch que não tinha esse arquivo (nem precisava), o Xcode estava me dando este erro:

Não foi possível encontrar o arquivo de entrada da compilação: '/ Users / honey / Documents / xp / xpios / powerup / Models Extensions / CGSize + Extension.swift'


Limpei a pasta de construção e apaguei meus dados derivados, mas não funcionou até que reiniciei meu Xcode.

Mel
fonte
1

Isso funcionou para mim

  1. tente deletar os arquivos de cor vermelha
  2. exclua os arquivos nos dados derivados
  3. limpe a pasta de construção
  4. em seguida, tente construir usando "novo sistema de construção" em arquivo-> configurações do espaço de trabalho
Aditya A.Rajan
fonte
1

No meu caso, o arquivo (e o diretório) que o XCode estava mencionando estavam incorretos, e o problema começou a ocorrer após uma fusão do Git com um branch relativamente grande. Para consertar o mesmo, executei as seguintes etapas:

  • Procurado pelo arquivo no sistema de diretório do XCode.
  • Encontrado o arquivo com erro destacado em vermelho (ou seja, estava faltando).
  • Clique com o botão direito no arquivo e o remove.
  • Tentei construir meu código novamente e pronto, foi bem-sucedido.

Espero que essas etapas ajudem alguém.

Arka Mukherjee
fonte
0
  1. Vá para Xcode-> Arquivo -> Configuração do Projeto
  2. Alterar Sistema de Compilação: - "Sistema de Compilação Legado".
  3. Limpe, construa e clique em Executar.
Abhimanyu Rathore
fonte
0

O que o Xcode estava reclamando era de um arquivo XIB que eu coloquei para funcionar indo em Projeto -> Fases de compilação -> Copiar recursos do pacote, removendo o XIB "problemático", limpando (CMD + Shift + K), compilando e adicionando-o novamente.

fredy
fonte
0

Também existe a possibilidade de que, às vezes, quando você move seus arquivos para uma pasta diferente e especialmente quando você move info.plistpara outra pasta, você precisa definir a localização desse arquivo. Para resolver este problema, basta clicar no ícone azul do seu projeto no topo, e você verá um botão no lugar do nome do projeto e id do pacote, clique nele e localize o info.plistarquivo lá, limpe e compile com alegria.

Syed Azeem Ahmed
fonte
0

Tive esse problema logo após a atualização para o Xcode 10, mas esse não era o problema.

Tentei mudar o sistema de compilação, mas isso me deu um erro separado que significava a mesma coisa. Geralmente dizendo "Arquivo X não pode ser encontrado".

Existem várias coisas a verificar quando um arquivo não pode ser encontrado.

  1. Pasta de referências recuperadas A Apple faz essa coisa legal em que se detectar uma referência a um arquivo que não existe, ela adicionará essa referência a um grupo chamado "Referências recuperadas"

Isso é legal da Apple, mas nem sempre funciona.

  1. Fases de construção Compilar fontes Nesta lista, pode haver metadados para um arquivo que o projeto deve compilar, mas o arquivo não existe de fato e está tentando encontrar o arquivo no caminho fornecido. Nesta lista, ele ficará esmaecido, exclua-os e adicione-os novamente alternando as dependências de destino do arquivo ou removendo-o manualmente e arrastando-o para dentro.

  2. Caminho do arquivo Verifique novamente o caminho do arquivo que o erro está imprimindo e o caminho para o arquivo no Finder. Você pode ver isso facilmente clicando no arquivo no Xcode e marcando a guia "Mostrar o inspetor de arquivos" (a guia mais à esquerda). Se esses caminhos estiverem corretos, você está bem!

  3. Arquivos apagados em seu projeto que não estão nas referências recuperadas ou em vermelho Este me irritou porque não é óbvio sobre o que aconteceu, mas basicamente se você entrar no Finder e mover um arquivo para um local diferente sem atualizar a referência no projeto ele gerará o erro, pois o arquivo não existe mais lá. A única indicação que encontrei para isso é que o arquivo na guia "Project Navigator" (guia mais à esquerda) está ligeiramente esmaecido, mas quando você vai excluir este arquivo, o Xcode não solicita que você exclua a referência ou envie para Lixo. Você pode corrigir isso excluindo o arquivo e adicionando-o novamente ao projeto ou indo até a guia "Inspetor de arquivos" e clicando no ícone da pasta ao lado do caminho e alterando-o para o local apropriado.

De qualquer forma, o erro indica que não é possível encontrar um arquivo, mudar para o sistema de compilação antigo é um bandaid para um problema mais concreto. Nós, como desenvolvedores, entendemos que um compilador deseja apenas que um artefato seja listado no final de um caminho de arquivo. Em algum lugar o caminho não está correto! Temos que descobrir onde fica!

Meu problema foi resolvido com o item 4 listado acima. Espero que isso ajude alguém.

A'sa Dickens
fonte
0

Arquivo> Configurações do projeto> Alterar sistemas de compilação para sistemas de compilação legados

Apurva Aggarwal
fonte
3
Uma pequena explicação seria útil
vik_78
0

No meu caso, apaguei acidentalmente uma pasta xcodeproj de terceiros que usei em meu aplicativo.

Sabilândia
fonte
0

Se você tentou criar perfis e não funcionou e agora não consegue construir, vá para o painel Destino (por meio do Ícone do Projeto), mude para a guia Configurações de Construção, procure PROFILE - e defina CLANG_USE_OPTIMIZATION_PROFILE como "Não".

Konchog
fonte
0

No meu caso, criei um novo destino de teste e excluí o arquivo swift padrão, ficando apenas com o info.plist. Adicionar um novo arquivo corrigiu isso.

Kwaku Eshun
fonte
0

No meu caso, eu tinha um script de construção que gerou o binário .app (Buck). O script de construção Buck foi executado em paralelo com a etapa de construção Swift Embed. Como o binário .app ainda não foi gerado, a etapa do Swift falhará.

No meu script de construção, adicionei "$BUILD_PRODUCTS_DIR/$EXECUTABLE_PATH"em"Output Files" .

Isso informa ao novo sistema de compilação do Xcode que esse script produzirá o binário do aplicativo e, por sua vez, o Xcode se certificará de sincronizar todas as etapas de compilação que dependem desse artefato.

insira a descrição da imagem aqui

Vlad
fonte