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"))]

из связанных изображений, хранящихся в образах.папка xcassets, я получаю следующие фатальные ошибки выполнения:

 SimpleAnimation[680:60b] Unsupported pixel format in CSI
 SimpleAnimation[680:60b] Unable to create unsliced image from csi bitmap data.

это, кажется, будет разрешено в бета-версии 4, однако оставит на месте немного, как иногда эти регресс

5 ответов


Это вызвано ошибкой в Xcode 6 (бета-версия 3 в это время). Это происходит только в том случае, если целью сборки является iOS 7.x

чтобы обойти эту проблему:

1) удалите файлы из изображений.контейнер xcassets.

2) Поместите изображения непосредственно в папку" Supporting Files".

Примечание: не требуется добавлять ".png " расширение в вашем коде, что делает это чистым обходным путем.

пожалуйста, создайте радар (ошибка report) в Apple.


XCode 6.0.1 все еще имеет эту проблему. Если добавить .jpg к изображениям.xcassets и попробуйте установить приложение на устройство iOS 7.

чтобы исправить это, просто конвертируйте .jpg to .формат PNG


ответ инженера Apple:

проблема в том, что приложения iOS 7 не могут иметь изображения JPEG в файле автомобиля. actool должен был скопировать JPEG как свободное изображение в папку вашего приложения. Чтобы обойти эту проблему, необходимо преобразовать изображение в PNG или включить JPEG в качестве ресурса вне каталога активов.


Я решил эту проблему через:

  1. запустить iOS Simulator
  2. сброс содержимого и настроек через меню" iOS Simulator > сброс содержимого и настроек".
  3. это работает.

в Xcode теперь у нас есть возможность сделать срез для ресурсов изображения. Если срез добавлен, соответствующий json для изображения в каталоге активов получает информацию об изменении размера. Это может выглядеть например так

"resizing" : {
    "mode" : "3-part-vertical",
    "center" : {
      "mode" : "fill",
      "height" : 6
    },
    "capInsets" : {
      "top" : 16,
      "bottom" : 6
    }
  }

iOS 7.0 не обрабатывает нарезку должным образом. Поэтому удаление информации о нарезке из json может помочь решить проблему (в моем случае это было решение).