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?

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, 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.


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”


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”.


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.


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!


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?


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ś.


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.


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.


2

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


1

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


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.


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.


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.

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.


0

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


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.


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


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


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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.