Construir aplicativo com Xcode 4 - sempre mostra algum erro sobre a imagem PNG

88

Quando eu construo meu aplicativo com o Xcode 4, ele sempre mostra esta mensagem de erro:

CopyPNGFile /Users/michaelchen/Library/Developer/Xcode/DerivedData/iMusicBox-boeawugacmhacbdtyymnprzfobyq/ArchiveIntermediates/iMusicBox/InstallationBuildProductsLocation/Applications/iMusicBox.app/list_cell.png Images/list_cell.png
    cd /Volumes/WORK/Works/iMusicBox
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    "/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/PrivatePlugIns/iPhoneOS Build System Support.xcplugin/Contents/Resources/copypng" -compress "" /Volumes/WORK/Works/iMusicBox/Images/list_cell.png /Users/michaelchen/Library/Developer/Xcode/DerivedData/iMusicBox-boeawugacmhacbdtyymnprzfobyq/ArchiveIntermediates/iMusicBox/InstallationBuildProductsLocation/Applications/iMusicBox.app/list_cell.png

Ao verificar alfas em /Volumes/WORK/Works/iMusicBox/Images/list_cell.png, pngcrush detectou um erro de libpng: Dados de imagem insuficientes

mas está tudo bem com o Xcode 3.2 - por quê?

Michael Chen
fonte

Respostas:

191

Encontrei!!

Você deve salvar seus arquivos PNG como NOT INTERLACED . Tente abrir o arquivo no photoshop (ou similar), salve como e selecione "Não entrelaçado".

Está funcionando no meu caso

espero que isto ajude

Eva Madrazo
fonte
Eva, você está certa, obrigado! Eu exporto da web no pixelmator e está tudo bem.
Michael Chen
6
homem! graças a Deus! e você! Eu estava prestes a ir para o telhado para jogar meu laptop estúpido de lá quando vi essa resposta e funcionou. Muito obrigado. Eu acho que é hora de dormir agora.
Sahil Chaudhary de
7
No meu caso, descobri que eu tinha várias referências ao mesmo arquivo no Xcode (isso provavelmente significa que ele tentou processar o arquivo mais de uma vez?) A remoção da referência duplicada removeu o problema.
Peter Johnson
Salvei meu png como NÃO INTERLACED, ainda recebo este erro ao construir pela primeira vez, mas na segunda vez que eu construí, este erro desapareceu ...
Jing
23

Isso acontece quando você tem várias entradas para o arquivo de imagem em seu arquivo de projeto. Não tenho ideia do porquê, mas apenas removi todas as entradas, recarreguei o projeto e adicionei o arquivo novamente.

banane
fonte
Hmm, você tem certeza que recebeu a mesma mensagem do compilador por ter dupletas?
brainray
8
Esse era o meu problema também. Minhas imagens de lançamento estavam causando problemas. Por padrão, o XCode adicionou imagens pretas em minha pasta Supporting Files, então eu adicionei mais, mas as pretas não foram embora. Se o suporte de imagem de inicialização for preto, isso significa que há uma imagem em seu projeto para ele. Remova as imagens pretas e coloque as corretas. Fiz isso e agora está tudo bem de novo!
dbDev
15

Verifique se você não tem entradas duplicadas na "Fase de construção" do destino -> "Copiar recursos do pacote"

Yohann T.
fonte
para quem não tem nem imagens no projeto ... essa solução foi a única de todas as respostas que funcionou. Não tenho imagens, mas estou usando o SDK do Facebook e tive que excluir tudo o que estava vermelho em Build Phases-> Copy Bundle Resources.
Jeff Grimes
9

Pode ser a configuração "Compactar arquivos PNG" (na seção Empacotamento das Configurações de compilação).

Resolvi esse erro mudando para "Não".

pôr do sol
fonte
6

No meu caso, descobri que meu png corrompido não abria no photoshop. Abri na visualização, salvei como psd e depois salvei novamente do photoshop (salvar como -> png -> não entrelaçado). Compila bem agora no xcode 4.

jaime
fonte
5

Tente encontrar e salvar novamente esses arquivos * .PNG usando "Visualizar" , para ser exato: Arquivo - Exportar ... - "salvar como PNG" . Parece-me que isso acontece quando você salva a imagem no Photoshop com o modo "Salvar para a Web" e depois essa imagem será salva com compressão especial (LZW) . Isso é tudo, boa sorte!

Resty
fonte
3

Parece que seu arquivo PNG list_cell.pngestá corrompido. O Xcode 4 faz mais verificações do que o Xcode 3 em muitas áreas e revela problemas que estão à espreita em seu projeto o tempo todo.

Você tentou abrir seu arquivo PNG em um editor de imagens e salvá-lo novamente?

Codo
fonte
1
Sim, já abri no Preview, está OK. e tento salvá-lo novamente, mas o erro ainda aparece.
Michael Chen
Não abra apenas na visualização. Ele também pode tentar contornar os erros na imagem. Abra-o com um aplicativo que pode editar imagens e armazenar uma nova versão da imagem.
Codo
3

No meu caso, resolvi o problema removendo a "tecla de espaço" em branco na pasta / nome do arquivo.

Espero que isso funcione para alguém também.

inox
fonte
2

Os meus não estavam entrelaçados, mas continuava recebendo erros estranhos do pngcrush. Eventualmente, eu apaguei os arquivos não apenas do disco, mas através do XCode. Eu os adicionei de volta um a um, arrastando e soltando no XCode, construindo após cada um, esperando encontrar um que tivesse um problema. Eu nunca fiz. Minha conclusão é que você realmente precisa manipular os arquivos do XCode e não o sistema de arquivos.

hofo
fonte
2

no meu caso com o xcode 4.5 o problema é resolvido dando permissão com o terminal

chmod -R + rw / yourprojectpath / yourprojectfolder

esta talvez não seja a melhor solução por causa do bloqueio de arquivos com compartilhamento de arquivos. Mas servirá se você estiver com pressa.

Balázs Csordás
fonte
2

Tive que remover as referências a PNGs e adicioná-las ao projeto novamente. Alguém tem uma solução melhor?

Alex L
fonte
1

Tive que remover os arquivos png e ir para Targets -> AppName -> Build Phases -> Bundle Resources e remover os arquivos de lá também.

zirinisp
fonte
1

Eu tenho o mesmo erro. Acabou meus pngs onde realmente jpeg. O XCode os mostrou corretamente, mas um dispositivo iOS não. Resolvido salvando o jpg como png.

OnTwoWheels
fonte
1

Este erro ocorre porque você tem uma imagem nos recursos com menos de 5 pixels de largura ou altura e está tentando redimensionar essa imagem. Defina todas as imagens com um mínimo de 5 pixels e o erro desaparecerá.

ancajico
fonte
Isso é o que aconteceu comigo, isso consertou.
Aço Reciclado de
1

Siga os passos:

 1. Take an image. 

 2. Rename it to the showing error png's name. 

 3. Drag it back to the Xcode.
tasnim ahmed
fonte
A resposta deve ser mais descritiva
Nimit Dudani
0

No meu caso, tive que remover todos os arquivos PNG da pasta e, em seguida, adicionar os arquivos novamente sem arrastar e soltar as imagens na IU do Xcode (em Launch Images). O último foi fundamental no meu caso, primeiro adicionar os arquivos à pasta e, em seguida, arrastá-los para a IU de alguma forma, causaria uma duplicata que estragou tudo. Tente fazer isso se nada mais estiver funcionando para você.

Jonathan
fonte
0

Eu tive o mesmo problema. Resolvi removendo as fotos duplicadas. Verifique em pastas diferentes. Esse foi o meu problema.

Javier Roberto
fonte
0

Resolvi esse erro, ele aparece quando você renomeia as imagens após colocar no projeto, então para resolver esse problema primeiro deve deletar as imagens atuais, renomear os arquivos do finder e depois copiar essas imagens para o projeto.

kakashy
fonte
0

Pode ser te ajudar. Verifique a Alpha Channelpropriedade conforme mostrado na captura de tela anexada. Deveria ser YESse for NO.

insira a descrição da imagem aqui

Ashvin Ajadiya
fonte
0

Pode ser te ajudar. Verifique a Alpha Channelpropriedade conforme mostrado na captura de tela anexada. Deveria ser YESse for NO.

insira a descrição da imagem aqui

Ashvin Ajadiya
fonte
0

Eva Madrazo postou a resposta certa (pelo menos para problemas com PNGs entrelaçados), mas para aqueles que têm esse problema com um monte de imagens como eu, você pode usar o mogrify recursivamente para desentrelaçar cada arquivo de uma vez.

find ./ -name "*.png" -exec mogrify -interlace none {} \;

A alteração do método de entrelaçamento não parece afetar a qualidade da imagem, mas afeta o tamanho da imagem, nenhum resultará em uma imagem menor.

O Mogrify vem com o ImageMagick e você pode instalá-lo com o homebrew.

Douglas Schmidt
fonte
0

Erro:

Durante a leitura de / Volumes / Mac OS / RDC / Workpot / RestApp / RestApp / default1024_768.png, pngcrush detectou um erro de libpng: Não é um arquivo PNG ..

Solução:

  1. Abri o arquivo "default1024_768" no PaintBrush ferramenta e arquivo saveAs PNG com o mesmo nome.
  2. Substituído o arquivo Icon no projeto Xcode.
  3. Limpar -> Construir

Isso é todo o seu trabalho como charme

Espero que isso ajude alguém.

SwiftBoy
fonte