iOS - несоответствие pngcrush - PullRequest
       15

iOS - несоответствие pngcrush

0 голосов
/ 05 августа 2011

Кажется, у меня проблемы с репликацией оптимизаций png для iOS, которые делает xcode. Наше приложение позволяет пользователям обновлять контент через сервер ресурсов, сравнивая контрольные суммы файлов, хранящихся в пакете, с файлами на сервере. Перед загрузкой любых png-файлов на сервер они подвергаются скрипту iphoneos-optimize в каталоге разработчика xcode ( Сообщение переполнения стека ). Проблема в том, что контрольная сумма, выполняемая (как сервером, так и устройством) для png, дает разные результаты.

Стоит отметить, что это тестируется на устройстве, а не на симуляторе (который не разрушает pngs). Кроме того, видимые результаты одинаковы, это просто контрольная сумма, которая отличается.

Ответы [ 2 ]

1 голос
/ 08 августа 2011

Я создал тест, в котором я загрузил пакет .png с устройства на наш сервер, чтобы мы могли более тщательно проанализировать изображение. Когда я открыл файл .png, я на самом деле мог видеть изображение, из которого можно предположить, что оно не было искажено процессом сборки XCode (поскольку оно переставляет байты и т. Д.). Затем я отключил сжатие png в настройках сборки в XCode и попытался снова. Изображение, отправленное на сервер на этот раз, было pngcrussed, и контрольная сумма файла соответствовала изображению, которое я раздавил вручную. Это предполагает, что настройка сборки для XCode 3.2.6 может быть обратной. Затем я проверил на компьютере коллеги, работающем под XCode 3.2.5, и настройки работали как положено; получение сжатого изображения, когда был установлен флаг сжатия.

Я попытался найти эту проблему, но не смог найти ни одного сообщения об ошибке / проблеме. Однако данные свидетельствуют о том, что это проблема XCode. Было бы хорошо получить подтверждение об этом от другой стороны.

1 голос
/ 05 августа 2011

Я предполагаю, что вы используете контрольные суммы, чтобы убедиться, что у вас нет дубликатов.

Если посмотреть на параметры pngcrush, кажется, что фактический результат процедуры не предсказуем.Поскольку pngcrush вызывается Xcode, мы не знаем, какие опции он использует.

Мой совет - просто найти другую схему для уникальной идентификации активов.Это может быть схема именования, вы можете работать с URL-адресами сервера или их комбинацией.

...