Zbuduj aplikację za pomocą Xcode 4 - zawsze wyświetla błąd dotyczący obrazu PNG

88

Kiedy tworzę aplikację w Xcode 4, zawsze wyświetla ten komunikat o błędzie:

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

Podczas sprawdzania alfabetu w /Volumes/WORK/Works/iMusicBox/Images/list_cell.png pngcrush złapany błąd libpng: za mało danych obrazu

ale jest OK z Xcode 3.2 - dlaczego?

Michael Chen
źródło

Odpowiedzi:

191

Znalazłem to !!

Musisz zapisać swoje pliki PNG jako BEZ INTERLACU . Spróbuj otworzyć plik w Photoshopie (lub podobnym), zapisz jako i wybierz „Bez przeplotu”.

To działa w moim przypadku

mam nadzieję że to pomoże

Eva Madrazo
źródło
Eva, masz rację, dzięki! Eksportuję z sieci w pixelmatorze i jest OK.
Michael Chen
6
człowiek! dzięki Bogu! a ty! Już miałem iść na dach, żeby rzucić stamtąd mój głupi laptop, kiedy zobaczyłem tę odpowiedź i zadziałało. Wielkie dzięki. Chyba czas już spać.
Sahil Chaudhary,
7
W moim przypadku okazało się, że mam kilka odwołań do tego samego pliku w Xcode (prawdopodobnie oznaczało to, że próbowałem przetworzyć plik więcej niż raz?) Usunięcie zduplikowanego odwołania usunęło problem.
Peter Johnson,
Zapisałem plik png jako BEZ PRZESZKÓD, nadal mam ten błąd podczas budowania po raz pierwszy, ale przy drugim budowaniu ten błąd zniknął ...
Jing,
23

Dzieje się tak, gdy w pliku projektu masz wiele wpisów dotyczących pliku obrazu. Nie mam pojęcia dlaczego, ale właśnie usunąłem wszystkie wpisy, ponownie załadowałem projekt i ponownie dodałem plik.

banan
źródło
Hmm, czy na pewno otrzymałeś ten sam komunikat kompilatora z posiadania dubletów?
brainray
8
To też był mój problem. Moje obrazy startowe powodowały problemy. Domyślnie XCode dodał czarne obrazy w moim folderze Supporting Files, potem dodałem więcej, ale czarne nie zniknęły. Jeśli uchwyt obrazu startowego jest czarny, oznacza to, że w Twoim projekcie jest odpowiedni obraz. Usuń czarne obrazy i wprowadź prawidłowe. Zrobiłem to i teraz wszystko jest dobrze!
dbDev
15

Sprawdź, czy nie masz zduplikowanych wpisów w „fazie budowy” celu -> „Kopiuj zasoby pakietu”

Yohann T.
źródło
dla każdego, kto nie ma nawet zdjęć w swoim projekcie ... to rozwiązanie było jedyną ze wszystkich odpowiedzi, które się sprawdziły. Nie mam obrazów, ale używam Facebook SDK i musiałem usunąć wszystko, co było czerwone w fazie kompilacji-> Kopiuj zasoby pakietu.
Jeff Grimes
9

Może to być ustawienie „Kompresuj pliki PNG” (z sekcji Pakowanie w Ustawieniach kompilacji).

Rozwiązałem ten błąd, przełączając go na „Nie”.

zachód słońca
źródło
6

W moim przypadku odkryłem, że mój uszkodzony plik png nie otwiera się w Photoshopie. Otworzyłem w podglądzie, zapisałem jako psd, a następnie ponownie zapisałem z Photoshopa (save-as -> png -> not-interlaced). Kompiluje się teraz w xcode 4.

jaime
źródło
5

Spróbuj znaleźć i ponownie zapisać te pliki * .PNG używając "Podgląd" , a dokładniej: Plik - Eksportuj ... - "zapisz jako PNG" . Wydaje mi się, że dzieje się tak, gdy zapisujesz obraz w Photoshopie w trybie „Save for Web” i po tym obraz zostanie zapisany specjalną kompresją (LZW) . To wszystko, powodzenia!

Resty
źródło
3

Wygląda na to, że plik PNG list_cell.pngjest uszkodzony. Xcode 4 przeprowadza więcej kontroli niż Xcode 3 w wielu obszarach i ujawnia problemy, które czają się w Twoim projekcie przez cały czas.

Czy próbowałeś otworzyć plik PNG w edytorze obrazów i zapisać go ponownie?

Codo
źródło
1
Tak, już to otwieram w podglądzie, wszystko w porządku. i ponownie próbuję go zapisać, ale błąd nadal się wyświetla.
Michael Chen
Nie otwieraj go tylko w podglądzie. Może również spróbować obejść błędy w obrazie. Otwórz go za pomocą aplikacji, która może edytować obrazy i przechowywać nową wersję obrazu.
Codo
3

W moim przypadku rozwiązałem problem, usuwając pusty „klawisz spacji” w folderze / nazwie pliku.

Mam nadzieję, że to zadziała również dla kogoś.

inox
źródło
2

Moje nie były z przeplotem, ale ciągle otrzymywałem dziwne błędy z pngcrush. Ostatecznie usunąłem pliki nie tylko z dysku, ale przez XCode. Dodawałem je z powrotem jeden po drugim przez drang-and-drop do XCode, budując po każdym, spodziewając się trafienia jednego, który miał problem. Nigdy nie zrobiłem. Mój wniosek jest taki, że naprawdę musisz manipulować plikami z XCode, a nie systemem plików.

hofo
źródło
2

w moim przypadku z xcode 4.5 problem jest rozwiązywany przez udzielenie pozwolenia z terminalem

chmod -R + rw / yourprojectpath / yourprojectfolder

to może nie jest najlepsze rozwiązanie ze względu na blokowanie plików poprzez udostępnianie plików. Ale zrobi, jeśli się spieszysz.

Balázs Csordás
źródło
2

Musiałem usunąć odniesienia do plików PNG i ponownie dodać je do projektu. Czy ktoś ma lepsze rozwiązanie?

Alex L.
źródło
1

Musiałem usunąć pliki png, a następnie przejść do Targets -> AppName -> Build Phases -> Bundle Resources i stamtąd również usunąć pliki.

zirinisp
źródło
1

Mam ten sam błąd. Okazało się, że moje pliki png, w rzeczywistości jpeg. XCode pokazało je poprawnie, ale urządzenie iOS nie. Rozwiązano to, zapisując plik jpg jako png.

OnTwoWheels
źródło
1

Ten błąd występuje, ponieważ masz obraz w zasobach, który ma mniej niż 5 pikseli szerokości lub wysokości i próbujesz zmienić jego rozmiar. Ustaw wszystkie obrazy na minimum 5 pikseli, a błąd zniknie.

ancajic
źródło
To właśnie mi się przydarzyło, to naprawiło.
Recycled Steel
1

Wykonaj kroki:

 1. Take an image. 

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

 3. Drag it back to the Xcode.
tasnim ahmed
źródło
odpowiedź powinna być bardziej opisowa
Nimit Dudani
0

W moim przypadku musiałem usunąć wszystkie pliki PNG z folderu, a następnie ponownie dodać pliki bez przeciągania i upuszczania obrazów do interfejsu użytkownika Xcode (w obszarze Uruchom obrazy). To ostatnie było kluczowe w moim przypadku, najpierw dodanie plików do folderu, a następnie przeciągnięcie ich do interfejsu użytkownika w jakiś sposób spowodowało duplikat, który wszystko schrzanił. Wypróbuj to, jeśli nic innego nie działa dla Ciebie.

Jonathan
źródło
0

Miałem ten sam problem. Rozwiązałem to, usuwając duplikaty zdjęć. Sprawdź w różnych folderach. To był mój problem.

Javier Roberto
źródło
0

Rozwiązałem ten błąd, pojawia się, gdy zmieniasz nazwy obrazów po umieszczeniu w projekcie, więc aby rozwiązać ten problem, najpierw należy usunąć bieżące obrazy, zmienić nazwy plików z wyszukiwarki, a później skopiować te obrazy do projektu.

kakashy
źródło
0

Może ci pomóc. Sprawdź Alpha Channelwłaściwość, jak pokazano na załączonym zrzucie ekranu. Powinno być, YESjeśli jest NO.

wprowadź opis obrazu tutaj

Ashvin Ajadiya
źródło
0

Może ci pomóc. Sprawdź Alpha Channelwłaściwość, jak pokazano na załączonym zrzucie ekranu. Powinno być, YESjeśli jest NO.

wprowadź opis obrazu tutaj

Ashvin Ajadiya
źródło
0

Eva Madrazo opublikowała poprawną odpowiedź (przynajmniej w przypadku problemów z plikami PNG z przeplotem), ale dla tych, którzy mają ten problem z kilkoma obrazami, tak jak ja, możesz użyć rekursywnej mogrify, aby usunąć przeplot z każdego pliku naraz.

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

Zmiana metody przeplotu nie wydaje się wpływać na jakość obrazu, ale wpływa na rozmiar obrazu, żadna nie zapewni mniejszego obrazu.

Mogrify jest dostarczany z ImageMagick i możesz go zainstalować za pomocą homebrew.

Douglas Schmidt
źródło
0

Błąd:

Podczas odczytu / Volumes / Mac OS / RDC / Workpot / RestApp / RestApp / default1024_768.png pngcrush złapany błąd libpng: To nie jest plik PNG.

Rozwiązanie:

  1. Otworzyłem „default1024_768” plik w pędzel narzędzia i plik saveas PNG z tej samej nazwie.
  2. Zastąpiono plik Icon w projekcie Xcode.
  3. Wyczyść -> Kompiluj

To wszystko działa jak urok

Mam nadzieję, że to komuś pomoże.

swiftBoy
źródło