Ответ 1
Вы можете добавить "IPHONE_OPTIMIZE_OPTIONS = -skip-PNGs" в свои настройки проекта, чтобы предотвратить переключение png, но будьте осторожны с ним, вам может понадобиться оптимизировать значок и Default.png отдельно.
Можно ли настроить проект iPhone XCode, чтобы пропустить шаг сборки "CompressResources"?
В частности, я хочу пропустить этап, на котором он запускает pngcrush на всех моих .png файлах, многие из которых не выдерживают опыта в форме, которую может читать мое приложение.
Изменить: используемая версия pngcrush создает файлы png, которые содержат нестандартный "обязательный, закрытый" фрагмент, который явно запрещает декодирование. Я изменил свой png-ридер, чтобы обрабатывать эти файлы, но мне все равно понравится метод каждого прогона пропуска этого шага. Один из других побочных эффектов pngcrush заключается в том, что он не сохраняет цветовое значение прозрачных пикселей, поэтому альфа-текстуры показывают окантовку при меньших уровнях mip.
Формат iphone png описан здесь: http://modmyi.com/wiki/index.php/Iphone_PNG_images. Короче говоря,
Изменить: Похоже, он также преумтирует альфу, поэтому:
Вы можете добавить "IPHONE_OPTIMIZE_OPTIONS = -skip-PNGs" в свои настройки проекта, чтобы предотвратить переключение png, но будьте осторожны с ним, вам может понадобиться оптимизировать значок и Default.png отдельно.
Оптимизация iphoneos script преобразует PNG файлы в нестандартный формат, оптимизированный для отображения на iPhone. script преобразует любые файлы с расширением png, которое оно найдет в вашем приложении.
У меня была аналогичная проблема, и я решил ее, предоставив моему файлу расширение _png (т.е. префикс подчеркивания). iphoneos-optimize проигнорировал его и оставил ему обычный PNG файл. Если вы можете справиться с этим, это, вероятно, намного безопаснее, чем сбрасывать скрипты сборки.
Если вы посмотрите на вывод сборки, вы увидите, что на шаге CompressResources выполняется script /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/iphoneos-optimize
. Кажется, это всего лишь оболочка script, которая запускает pngcrush и компилирует plists в двоичный формат. Возможно, вы можете изменить этот script, чтобы не запускать pngcrush.
Обратите внимание, что кто-то из этот поток заметил, что если они не запускали свой файл значков через pngcrush, он не появлялся на телефоне.
Интересно, что версия pngcrush в каталоге script имеет аргумент -iphone. Кто-нибудь знает, является ли это стандартом или что-то Apple просто отправляет с его сборкой?
Это может быть другая проблема. Во многих случаях проблема связана с наименованием и может быть решена очень легко.
читайте это: http://cocoapi.wordpress.com/2009/03/22/iphone-images-not-appearing-in-real-iphone-this-is-why/