Xcode 6 (beta 3): Неподдерживаемый формат пикселей в CSI или Невозможно создать непрозрачное изображение из csi растровых данных
При загрузке UIImages с png-изображениями в Xcode 6 beta 3 в Swift следующим образом:
PipsImg = (UIImage(named: "Die-1"))
или
PipsImg = [(UIImage(named: "Die-1")),(UIImage(named: "Die-2"))]
из связанных изображений, хранящихся в папке Images.xcassets, я получаю следующие фатальные ошибки времени выполнения:
SimpleAnimation[680:60b] Unsupported pixel format in CSI
SimpleAnimation[680:60b] Unable to create unsliced image from csi bitmap data.
это, по-видимому, разрешено в бета-версии 4, однако они останутся на месте немного, как иногда эти регрессии
Ответы
Ответ 1
Это вызвано ошибкой в Xcode 6 (бета 3 в это время). Кажется, это происходит только в том случае, если целью сборки является iOS 7.x
Чтобы обойти эту проблему:
1) удалите файлы из контейнера Images.xcassets.
2) поместите изображения непосредственно в папку "Поддерживаемые файлы".
Примечание. Не требуется добавлять расширение ".png" внутри вашего кода, что делает это обходным путем.
Создайте RADAR (отчет об ошибке) для Apple.
Ответ 2
XCode 6.0.1 все еще имеет эту проблему.
Если вы добавили .jpg в Images.xcassets и попытаетесь установить приложение на устройство iOS 7.
Чтобы исправить это, просто конвертируйте .jpg в .png
Ответ 3
Ответ инженера Apple:
Проблема в том, что приложения iOS 7 не могут иметь изображения JPEG в файле CAR. actool должен был скопировать JPEG как свободное изображение в папку приложения. Чтобы обойти эту проблему, вы должны либо преобразовать изображение в PNG, либо включить JPEG в качестве ресурса за пределами каталога активов.
Ответ 4
Я решил эту проблему через:
- Запустить iOS Simulator
- Reset содержимое и настройки с помощью меню "iOS Simulator > Reset Содержание и настройки".
- Он работает.
Ответ 5
В Xcode теперь у нас есть возможность сделать срез для ресурсов изображения. Если добавлена резка, соответствующий json для изображения в каталоге активов получает информацию об изменении размера. Это может выглядеть, например, так:
"resizing" : {
"mode" : "3-part-vertical",
"center" : {
"mode" : "fill",
"height" : 6
},
"capInsets" : {
"top" : 16,
"bottom" : 6
}
}
iOS 7.0 не обрабатывает правильную нарезку. Поэтому удаление информации обрезки из json может помочь устранить проблему (в моем случае это было решение).