/ / Pomijanie kroku kompilacji „CompressResources” dla aplikacji iPhone XCode - iPhone, xcode, image, zasoby

Pomijanie kroku kompilacji "CompressResources" dla aplikacji iPhone'a XCode - iphone, kod xcode, obraz, zasoby

Czy można ustawić projekt iPhone XCode, aby pominąć krok kompilacji „CompressResources”?

W szczególności chcę pominąć etap, na którym działa pngcrush na wszystkich moich plikach .png, z których wiele nie przetrwa doświadczenia w formie, którą moja aplikacja może odczytać.

Edytować: w wersji pngcrush użyto plików pngktóre zawierają niestandardowy fragment „obowiązkowy, prywatny”, który wyraźnie zapobiega dekodowaniu. Zmodyfikowałem mój czytnik png, aby obsługiwał te pliki, ale nadal chciałbym, aby metoda pomijała ten krok. Jednym z innych skutków ubocznych pngcrush jest to, że nie zapisuje wartości koloru przezroczystych pikseli, więc tekstury alfa-ed pokazują frędzle na mniejszych poziomach mipów.

Format iphone png jest opisany tutaj: http://modmyi.com/wiki/index.php/Iphone_PNG_images. W skrócie,

  • Pomiń fragment CgBI
  • Pomiń nagłówki zlib
  • Zamień kolejność kanałów BGR na RGB

Edytować: Wygląda na to, że również poprzedza alfa, więc:

  • Podziel przez alfa

Odpowiedzi:

10 dla odpowiedzi № 1

Możesz dodać „IPHONE_OPTIMIZE_OPTIONS = -skip-PNG” do ustawień projektu, aby zapobiec zniekształceniu png, ale zachowaj ostrożność, możesz wtedy zoptymalizować ikonę i Default.png oddzielnie.


8 dla odpowiedzi № 2

Skrypt optymalizujący iphoneos konwertuje pliki PNGw niestandardowy format, który jest zoptymalizowany do wyświetlania na telefonie iPhone. Skrypt konwertuje wszystkie pliki z rozszerzeniem png, które znajduje się w pakiecie aplikacji.

Miałem podobny problem i rozwiązałem go, dającmój plik rozszerzenie _png (tj. poprzedzony podkreśleniem). iphoneos-optimize zignorował go i pozostawił zwykły plik PNG. Jeśli możesz sobie z tym poradzić w ten sposób, jest to prawdopodobnie o wiele bezpieczniejsze niż omijanie skryptów kompilacji.


5 dla odpowiedzi nr 3
  • Otwórz ustawienia kompilacji
  • W obszarze „opakowanie” wybierz opcję Kompresuj pliki PNG
  • Wybierz „NIE”

3 dla odpowiedzi № 4

Jeśli spojrzysz na wynik kompilacji, zobaczysz, że krok CompressResources uruchamia skrypt /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/iphoneos-optimize. Wygląda na to, że jest to tylko skrypt powłoki, który uruchamia pngcrush i kompiluje pli do formatu binarnego. Prawdopodobnie możesz zmodyfikować ten skrypt, aby nie uruchamiał pngcrush.

Zauważ, że ktoś w ten wątek zauważyłem, że jeśli nie uruchomili swojego pliku z ikonami poprzez pngcrush, nie pojawił się on w telefonie.

Co ciekawe, wersja pngcrush w katalogu skryptu ma argument -iphone. Czy ktoś wie, czy jest to standard, czy coś, co Apple wysyła tylko z ich kompilacją?


1 dla odpowiedzi nr 5

To może być kolejna kwestia. W wielu przypadkach problem dotyczy nazewnictwa i można go rozwiązać bardzo łatwo.

Przeczytaj to: http://cocoapi.wordpress.com/2009/03/22/iphone-images-not-appearing-in-real-iphone-this-is-why/