Crea app con Xcode 4: mostra sempre qualche errore sull'immagine PNG


88

Quando creo la mia app con Xcode 4, viene sempre visualizzato questo messaggio di errore:

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

Durante il controllo degli alpha in /Volumes/WORK/Works/iMusicBox/Images/list_cell.png pngcrush ha rilevato l'errore libpng: dati immagine insufficienti

ma va bene con Xcode 3.2 - perché?

Risposte:


191

Trovato!!

Devi salvare i tuoi file PNG come NON INTERLACCIATI . Prova ad aprire il file in Photoshop (o simile), salva con nome e seleziona "Non interlacciato".

Funziona nel mio caso

spero che questo ti aiuti


Eva, hai ragione, grazie! Esporto dal web in pixelmator e va bene.
Michael Chen

6
uomo! Grazie Dio! e tu! Stavo per andare sul tetto a lanciare il mio stupido laptop da lì quando ho visto questa risposta e ha funzionato. Molte grazie. Immagino sia ora di dormire adesso.
Sahil Chaudhary

7
Nel mio caso si è scoperto che avevo diversi riferimenti allo stesso file in Xcode (questo probabilmente significava che aveva tentato di elaborare il file più di una volta?) La rimozione del riferimento duplicato ha rimosso il problema.
Peter Johnson,

Ho salvato il mio png come NON INTERLACCATO, ho ancora ricevuto questo errore durante la costruzione per la prima volta, ma la seconda volta che ho compilato, questo errore è sparito ...
Jing

23

Ciò accade quando hai più voci per il file immagine nel file di progetto. Non ho idea del perché, ma ho semplicemente rimosso tutte le voci, ricaricato il progetto e aggiunto di nuovo il file.


Hmm, sei sicuro di aver ricevuto lo stesso messaggio dal compilatore avendo doppiette?
brainray

8
Questo era anche il mio problema. Le mie immagini di avvio causano problemi. Per impostazione predefinita, XCode aveva aggiunto immagini nere nella mia cartella File di supporto, quindi ne ho aggiunte altre, ma quelle nere non sono andate via. Se il supporto dell'immagine di avvio è nero, significa che nel tuo progetto è presente un'immagine. Rimuovi le immagini nere e inserisci quelle corrette. L'ho fatto e ora va di nuovo tutto bene!
dbDev

15

Verifica di non avere voci duplicate nella "Fase di creazione" del target -> "Copia risorse bundle"


per chiunque altro non avesse nemmeno immagini nel proprio progetto ... questa soluzione è stata l'unica di tutte le risposte che ha funzionato. Non ho immagini, ma sto usando l'SDK di Facebook e ho dovuto eliminare tutto ciò che era rosso in Build Phases-> Copy Bundle Resources.
Jeff Grimes

9

Potrebbe essere l'impostazione "Comprimi file PNG" (dalla sezione Packaging di Impostazioni build).

Ho risolto questo errore impostandolo su "No".


6

Nel mio caso ho scoperto che il mio png danneggiato non si apriva in Photoshop. L'ho aperto in anteprima, salvato come psd e poi salvato di nuovo da Photoshop (salva con nome -> png -> non interlacciato). Si compila bene ora in xcode 4.


5

Prova a trovare e salvare nuovamente questi file * .PNG usando "Anteprima" , per essere esatti: File - Esporta ... - "salva come PNG" . Mi sembra che succeda quando salvi un'immagine in Photoshop con la modalità "Salva per Web" e dopo questa immagine verrà salvata con una compressione speciale (LZW) . È tutto, buona fortuna!


3

Sembra che il tuo file PNG list_cell.pngsia corrotto. Xcode 4 esegue più controlli di Xcode 3 in molte aree e rivela problemi che sono sempre stati in agguato nel tuo progetto.

Hai provato ad aprire il tuo file PNG in un editor di immagini e salvarlo di nuovo?


1
Sì, l'ho già aperto in Anteprima, va bene. e provo a salvarlo di nuovo ma l'errore continua a essere visualizzato.
Michael Chen

Non aprirlo semplicemente in Anteprima. Potrebbe anche provare a aggirare gli errori nell'immagine. Aprilo con un'applicazione in grado di modificare le immagini e memorizzare una nuova versione dell'immagine.
Codo

3

Nel mio caso ho risolto il problema rimuovendo la "spazio-chiave" vuota nella cartella / nome file.

Spero che funzioni anche per qualcuno.


2

I miei non erano interlacciati ma continuavo a ricevere strani errori da pngcrush. Alla fine ho cancellato i file non solo su disco ma tramite XCode. Li ho aggiunti di nuovo uno per uno di drang-and-drop in XCode, costruendo dopo ciascuno, aspettandomi di colpirne uno che avesse un problema. Non l'ho mai fatto. La mia conclusione è che devi davvero manipolare i file da XCode e non il filesystem.


2

nel mio caso con xcode 4.5 il problema è risolto dando il permesso con il terminale

chmod -R + rw / yourprojectpath / yourprojectfolder

questa forse non è la soluzione migliore a causa del blocco dei file con la condivisione di file. Ma andrà bene se hai fretta.


2

Ho dovuto rimuovere i riferimenti ai PNG e aggiungerli di nuovo al progetto. Qualcuno ha una soluzione migliore?


1

Ho dovuto rimuovere i file png e poi andare su Targets -> AppName -> Build Phases -> Bundle Resources e rimuovere anche i file da lì.


1

Ho ricevuto lo stesso errore. Si è scoperto che i miei png erano in realtà jpeg. XCode li ha mostrati correttamente ma un dispositivo iOS no. Risolto salvando il jpg come png.


1

Questo errore si verifica perché hai un'immagine nelle risorse che è inferiore a 5 pixel in larghezza o altezza e stai tentando di ridimensionare quell'immagine. Imposta tutte le immagini su un minimo di 5 pixel e l'errore scompare.


Questo è quello che è successo a me, questo lo ha risolto.
Acciaio riciclato

1

Segui i passi:

 1. Take an image. 

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

 3. Drag it back to the Xcode.

rispondere dovrebbe essere più descrittivo
Nimit Dudani

0

Nel mio caso, ho dovuto rimuovere tutti i file PNG dalla cartella e quindi aggiungere nuovamente i file senza trascinare e rilasciare le immagini nell'interfaccia utente di Xcode (in Avvia immagini). Quest'ultimo è stato fondamentale nel mio caso, prima aggiungendo i file alla cartella e poi trascinandoli nell'interfaccia utente in qualche modo causando un duplicato che ha rovinato tutto. Provalo se nient'altro funziona per te.


0

Ho avuto lo stesso problema. L'ho risolto rimuovendo le immagini duplicate. Controlla in cartelle diverse. Questo era il mio problema.


0

Ho risolto questo errore, viene visualizzato quando rinomini le immagini dopo averle inserite nel progetto, quindi per risolvere questo problema devi prima eliminare le immagini correnti, rinominare i file dal Finder e successivamente copiare queste immagini nel progetto.


0

Può esserti d'aiuto. Controlla la Alpha Channelproprietà come mostrato nello screenshot allegato. Dovrebbe essere YESse è NO.

inserisci qui la descrizione dell'immagine


0

Può esserti d'aiuto. Controlla la Alpha Channelproprietà come mostrato nello screenshot allegato. Dovrebbe essere YESse è NO.

inserisci qui la descrizione dell'immagine


0

Eva Madrazo ha pubblicato la risposta giusta (almeno per problemi con PNG interlacciati), ma per coloro che hanno questo problema con un mucchio di immagini come ho fatto io, puoi usare mogrify in modo ricorsivo per de-Interlace ogni file in una volta.

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

La modifica del metodo di interlacciamento non sembra influire sulla qualità dell'immagine, ma influisce sulla dimensione dell'immagine, nessuno ti darà un'immagine più piccola.

Mogrify viene fornito con ImageMagick e puoi installarlo con homebrew.


0

Errore:

Durante la lettura di / Volumes / Mac OS / RDC / Workpot / RestApp / RestApp / default1024_768.png pngcrush ha rilevato un errore libpng: non è un file PNG ..

Soluzione:

  1. Ho aperto il file "default1024_768" nello strumento PaintBrush e ho salvato come file PNG con lo stesso nome.
  2. Sostituito il file Icon nel progetto Xcode.
  3. Pulisci -> Costruisci

È tutto il suo lavoro come fascino

Spero che questo possa aiutare qualcuno.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.