Xcode: emissão "arquivo xxx.png está ausente da cópia de trabalho" na construção do projeto

265

Depois de excluir / adicionar alguns arquivos png ao projeto, recebi mensagens ao criar o projeto.

"o arquivo ProjectPath \ aaa \ xxx.png está ausente da cópia de trabalho."

Todos esses arquivos estão no projeto e o aplicativo está em execução. No entanto, essas mensagens são irritantes. Parecia arquivo .plist, mas não há menção a esses arquivos. O que devo fazer para remover essas mensagens?

Iban
fonte
Pode referir stackoverflow.com/questions/39711061/…
Shrawan 3/17/17

Respostas:

495

O aviso desaparecerá assim que você confirmar suas alterações (Xcode 8).

Alexander Vasenin
fonte
2
Constatou que eu apenas tinha que confirmar minhas alterações no git depois de mover alguns arquivos para um diretório diferente.
precisa saber é o seguinte
@LearnSwift Limpar Cmd + Shift + K, excluir ~ / Library / Developer / Xcode / DerivedData / *?
Alexander Vasenin
2
@AlexanderVasenin none
Aprenda Swift
7
Para mim, simplesmente organizar mudanças era suficiente. Bom saber.
charmingToad
13
Como você mencionou, certifique-se de confirmar e enviar minhas alterações mais recentes. Mas fazer exatamente isso não removeu os erros. Então, eu fiz o Xcode> Source Control> Rejeitar TODAS AS Alterações, e ele limpou todos os erros para mim.
EdwardM 24/01
97

Parece que esse problema pode ter causas diferentes, mas geralmente está relacionado ao software de controle de origem.

No meu caso, resolvi-o acessando o Git e adicionando os arquivos novamente. Quero dizer, executando o seguinte comando:

git add .
nbloqs
fonte
Depois de instalar o Xcode 8 e atualizar o código para o swift 3, acabei com mais de 300 problemas que precisavam de correções de sintaxe (projeto massivo). Em vez disso, restaurei a partir de um backup e atualizei para o Swift 2.3 ... tudo correu bem, exceto por várias dessas mensagens 'ausentes'. Esse comando funcionou como um encanto - estou de volta aos negócios!
Dan Ross
Isto é o que funcionou para mim. A questão começou quando eu removi o que eu costumava tinha em Pods em favor de Cartago
Sebastian Sastre
1
Isso funciona para mim também. Parece que o arquivo está sob controle de origem e o git precisa ser atualizado também.
Shardon 21/10
depois git commit o aviso desapareceu
carmen_munich
3
Para outros: você deve localizá-lo na pasta raiz do seu projeto do Xcode executando o 'git add'. comando: / MyXcodeProjects / AwesomeApp /
Philip Borges
59

Você também pode desativar o controle de origem desmarcando

Xcode -> Preferências -> Controle de Origem -> Ativar Controle de Origem

se você estiver gerenciando-o via linha de comando ou qualquer outro aplicativo.

emrekyv
fonte
isso fez isso por mim, meio chato de ver isso no IDE, eles devem oferecer suporte ao controle de origem bem ou nenhum
#
1
Eu realizei duas ações: 1) "desmarque", 2) "marque" para ativar o controle de origem. Os avisos desapareceram.
Viktor
58

No XCode -> SoureControl:

Update+ Refresh Statusfez isso por mim.

coyer
fonte
Eu estou pensando que isso pode ser devido a imagens com "@" no nome do arquivo, como a convenção "@ 2x" e "@ 3x". O SVN usa esse símbolo para a sintaxe da revisão (para escapá-lo ao trabalhar com o SVN na linha de comando, basta adicionar um "@" no final, pois a última ocorrência é a que ele usa para tentar determinar as informações da revisão). Simplesmente executando o Update funcionou para mim. Quando adicionei algumas novas imagens, tive que selecionar manualmente "adicionar" nas variantes 2x / 3x no painel do Inspetor de arquivos. Esquisito.
Android3000 24/03
1
Este! tão importante. O problema também ocorre se você renomear uma pasta contendo arquivos. Em outras palavras, o xcode nos avisa porque ainda não confirmamos nosso código! clap clap clap
Warpzit
4
Isso funcionou para mim. Eu tive que fechar o Xcode e abrir o projeto novamente e executar.
Jaytrixz # 20/16
44

No meu caso, o arquivo estava ausente no controle de origem.
Para corrigir, tive que descartar este arquivo (tenha cuidado apenas descartar o arquivo ausente, nem todo o seu projeto):

  1. Xcode-> Controle de Origem-> confirmar
  2. Clique com o botão direito do mouse no arquivo ausente
  3. Escolha Descartar alterações
Ronen
fonte
Ele funciona para mim, eu fiz remover a pasta DerivedData e avisos foram para arquivos como "db.xcindexdb"
tontonCD
1
Primeiro, certifiquei-me de confirmar e enviar minhas alterações mais recentes. Então eu fiz o Xcode> Source Control> Descartar todas as alterações, e ele limpou todos os erros para mim.
EdwardM
19

Desative o controle de origem, limpe a pasta de compilação ( Alt+Shift+Cmd+K) e ative o controle de origem novamente.

Xcode -> Preferências -> Controle de Origem -> Ativar Controle de Origem

George
fonte
1
resposta correta ... mas a resposta exata @emrekyv postou 3 meses antes ... Ele obtém a votação
eric
@ Eric ele sugeriu apenas para desativar o controle de origem, eu mostrei como fazê-lo funcionar corretamente.
George
18

No meu caso, o Xcode de alguma forma encontrou .svndiretórios antigos que faziam referência aos arquivos ausentes. Eu tive que subir um nível acima da pasta do meu projeto para encontrar esses arquivos .svn. Uma vez excluído, reiniciei o Xcode e estava tudo bem.

kubi
fonte
Sim, isso acontece quando você exclui algo de um projeto sob controle de versão quando ele ainda é referenciado pelo controle de versão (no meu caso, svn). Usar "svn update" para restaurar os arquivos ausentes e excluí-los da maneira correta usando "svn delete" fez com que o problema desaparecesse.
ChrisB
12

Eu tive um problema semelhante com um punhado de arquivos que haviam sido excluídos há muito tempo do meu projeto do Xcode enquanto eu ainda estava usando o Xcode 7.

Minha solução foi:

  1. Crie arquivos com os nomes dos quais o Xcode estava reclamando (eles não precisam de nenhum conteúdo)
  2. Adicione os arquivos ao meu projeto Xcode (no Xcode, clique com o botão direito do mouse no diretório principal do projeto, clique em Adicionar arquivos ao nome_do_projeto e selecione os arquivos que foram criados
  3. Selecione os arquivos adicionados recentemente e exclua-os - selecione Mover para a lixeira.

Isso se livrou dos avisos para mim.

Gabrielle Earnshaw
fonte
Isso funcionou para mim também. Eu tive o problema depois de copiar um projeto existente para criar uma derivada, mas com funcionalidade reduzida ⇒ menos arquivos de origem.
Stefan
9

Para adicionar à resposta de Alexander Vasenin ...

Primeiro eu cometi e empurrei minhas alterações

Menu principal do Xcode> Controle de origem> Confirmar

Então eu descartei todas as alterações para se livrar dos erros

Menu principal do Xcode> Controle de origem> Descartar todas as alterações

Depois disso, os erros informando "arquivo xxx.png está ausente da cópia de trabalho" desapareceram.

EdwardM
fonte
E se o projeto não usar o controle de versão ou um sistema de controle de versão não suportado pelo XCode.
Martin
8

Isso ocorreu quando você excluiu um arquivo no Xcode, mas não contou a ele ao servidor svn.

Vá para a ferramenta de linha de comando e exclua o arquivo diretamente.

svn delete missingFile.m 

e cometer

svn commit -m "Deleting file"

note que se você excluir a pasta .svn, o aviso desaparecerá, mas você perderá a comunicação com o servidor svn.

Kang Byul
fonte
5

Eu resolvi isso.

basta abrir sua ferramenta SVN de terceiros, encontrar os arquivos perdidos, Reverter; Isso é tudo.

traximus
fonte
5

Eu tive o mesmo problema e resolvi-o adicionando git. Abrir ferramenta de linha de comando

cd "project folder path"
git add .

Mais tarde, reinicie o projeto Xcode e abra-o novamente.

Ugur Atci
fonte
E se você não usar git?
Martin
4

Mostrar no alvo-> fases de construção -> copiar Recursos do Pacote. e comando da pasta de compilação limpa + shift + alt + k

BHASKAR
fonte
3
Obrigado, mas eles não estão nas fases de construção, e a limpeza da pasta de construção também não ajuda.
Iban
4

Eu tive que entrar manualmente no Terminal e remover os arquivos com git rm ProjectPath\aaa\xxx.pnge depois confirmar. Depois disso tudo funcionou bem.

yesthisisjoe
fonte
3

Consegui isso para todos os projetos depois de passar para o XCode 8. Isso resolveu:

Com a tecla Opção pressionada, Produto (no menu de título) -> Limpar pasta de compilação.

TomV
fonte
2

No meu caso, eu tinha dados errados dos meus projetos antigos no simulador. Resolvido redefinindo o conteúdo e as configurações no simulador:

Simulador -> Redefinir conteúdo e configurações ...

Canal
fonte
1

Para mim, o seguinte funcionou:

Como não usei e nunca usei o Git, criei um novo projeto (XCode 8, não consegui ver o "uso Git" usual ou, no entanto, a marca de seleção estava marcada). Em seguida, apaguei sem rodeios todos os arquivos deste novo projeto; foi para o antigo projeto bagunçado, copiou tudo na pasta do projeto, voltou para o projeto recém-criado, colou o material antigo, abriu isso - todos os avisos sobre arquivos que não existem há meses se foram. Dedos cruzados.

TommyTheCat
fonte
1

Eu tive o mesmo problema e resolvi-o simplesmente arrastando os arquivos especificados do localizador para o navegador do projeto (garantindo que "copiar arquivos" seja selecionado na caixa de diálogo) e enviando os arquivos.

user2698617
fonte
1

Esses avisos não são avisos de construção, são sobre o seu repositório SVN.

É correto que os diretórios mostrados não existam mais, o CocoaPods armazena os cabeçalhos Pods/Headers/{Private,Public}agora. Você precisa atualizar sua cópia de trabalho para refletir essas alterações.

Mutawe
fonte
Eu não uso o controle de versão dentro do XCode e ainda tenho o problema.
Martin
1

No meu caso, arrasto e soltei vários arquivos na janela do projeto Xcode para adicioná-los. Ele fez cópias no meu diretório de origem, mas não as colocou onde eu queria que elas fossem (as colocou na raiz do meu diretório, eu as queria em um subdiretório). Sem pensar, peguei-os no Finder e os movi para o diretório em que os queria. Depois de voltar à janela do projeto, é claro que não consegui encontrá-los, então os apaguei na janela e os adicionei novamente. Depois de compilar, comecei a receber esses erros.

Eu pensei, como algumas menções acima, que era um problema do git, mas quando eu executei "git ls-tree - full-tree -r HEAD" eu não vi os arquivos?

De qualquer forma, para corrigir tudo o que fiz, usei o comando de menu "Adicionar arquivo ..." para adicionar cada um dos arquivos ao local padrão, fazer uma compilação limpa e excluí-los da janela do projeto (usando mover para a lixeira) e se livrou de todos os erros.

KevinR
fonte
1

Eu recebi os avisos e também não pude confirmar alterações no XCode (usando svn). Tudo o que eu precisava fazer era reiniciar o XCode e o problema desapareceu.

Hugh Jeffner
fonte
1

Isso funciona para mim: Xcode -> ("opção + clique") Produto -> Limpar pasta de compilação ...
Do que reiniciar o xCode

Mykyta Savchuk
fonte
0

No meu caso, houve um problema com o git e um sistema de arquivos que não diferencia maiúsculas de minúsculas.

Inadvertidamente, enviei o mesmo arquivo duas vezes, usando caminhos de arquivo que diferiam apenas no caso de:

MyProject/Resources/foo.png
MyProject/resources/foo.png

O Xcode estava reclamando de um dos arquivos ausentes.

Corrigido excluindo os arquivos incorretos e adicionando novamente.

cd MyProject
mv Resources/foo.png /tmp
git rm Resources/foo.png
git rm resources/foo.png
git commit
mv /tmp/foo.png Resources
git add Resources/foo.png
git commit
Darren
fonte
0

Definitivamente, isso está relacionado ao controle de origem. Renomeei e movi alguns arquivos plist não confirmados e obtive esse erro. Eu estou usando svn. Consegui consertar isso Source Control - Commitremovendo os arquivos referenciados antigos.

Hahnemann
fonte
Estou com o problema e não uso o controle de versão que o XCode conhece. Todo o controle de versão feito fora do XCode.
Martin