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.