Загрузка NSImage с imageNamed из xcassets вылетает в старых версиях osx
Итак, у меня есть xcassets, который используется многими приложениями. Я занимаюсь разработкой Xcode8 на Mac Mini с установленным MacOs Sierra. Если я скомпилирую и запущу на машине разработки, это вообще не проблема. Однако, когда я пытаюсь запустить его на устройстве с OSX Mavericks, у меня происходит сбой. Вот след в отчете
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff887dc866 __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff87a3935c pthread_kill + 92
2 libsystem_c.dylib 0x00007fff88614bba abort + 125
3 libsystem_c.dylib 0x00007fff885dea5f __assert_rtn + 321
4 com.apple.coreui 0x00007fff875aa1a7 CUIRenditionKeySetValueForAttribute + 307
5 com.apple.coreui 0x00007fff875a9004 -[CUIStructuredThemeStore _canGetRenditionWithKey:isFPO:lookForSubstitutions:] + 200
6 com.apple.coreui 0x00007fff875a8f1b -[CUIStructuredThemeStore canGetRenditionWithKey:] + 22
7 com.apple.coreui 0x00007fff875c4eab -[CUICatalog _resolvedRenditionKeyForName:scaleFactor:deviceIdiom:deviceSubtype:] + 291
8 com.apple.coreui 0x00007fff875c4c53 -[CUICatalog imageWithName:scaleFactor:deviceIdiom:deviceSubtype:] + 29
9 com.apple.AppKit 0x00007fff88820b1b +[NSImage _catalogImageWithName:bundle:] + 132
10 com.apple.AppKit 0x00007fff8881aefd +[NSImage imageNamed:] + 261
Если я удаляю изображение из набора xcassets и включаю его "индивидуально" в комплект приложения - перетаскивая его в навигатор проекта приложения - оно загружается просто отлично. Но я бы хотел этого избежать, если это возможно, так как чистое использование общих изображений только в одном xcassets.
Есть мысли или идеи? Заранее спасибо.
1 ответ
Я мог бы обойти эту ошибку, следуя этому обходному пути, предоставленному Apple для устройств iOS 7:
Чтобы обойти эту проблему, обновите цель развертывания до iOS 8.0 или выше или добавьте одно изображение в каталог ресурсов, которое содержит не менее пяти атрибутов, указанных в наборе изображений, таких как: scale (1x, 2x, 3x) idiom (добавить iPad,iPhone и универсальный ресурс) направление (слева направо, справа налево) класс ширины / высоты (любой, компактный и т. д.) графика (добавить ресурс 1 ГБ) (добавить ресурс Metal 1v2) Нет необходимости использовать изображение в вашем коде или добавлять все эти атрибуты. (27852391)
Вот как выглядит этот фиктивный набор изображений: