Все хорошо при работе на iOS (устройстве или симуляторе). Однако ни один из альтернативных значков не доступен при работе на iPadOS (устройстве или симуляторе).
Проект настроен с установленным флажком Включить все ресурсы значков приложений в целевом приложении, и все наборы значков находятся в основном каталоге ресурсов и настроены как Единый размер для iOS. Основываясь на некоторых старых сообщениях StackOverflow, я также пытался переключить их на Все размеры и явно добавлять изображения для каждого варианта, но безрезультатно.
На всякий случай я также переключил параметр Включить все ресурсы значков приложений на Да на уровне проекта, что не дало никакого эффекта. Целью проекта и приложения является целевая версия iOS 16.0.
При использовании xcrun --sdk iphoneos assetsutil --info в файле Assets.car сборки iPad отображаются соответствующие записи для файлов значков. Например:
Код: Выделить всё
{
"AssetType" : "MultiSized Image",
"Idiom" : "pad",
"Name" : "BlackIcon",
"NameIdentifier" : 25144,
"Scale" : 1,
"SHA1Digest" : "3ADDEA1FD56367BF89B8931F5D01A583F6D8C6D47EAAB8F4BB5E7FE61D7D9596",
"SizeOnDisk" : 236,
"Sizes" : [
"1024x1024 index:0 idiom:pad"
]
}
И тем не менее, CFBundleAlternateIcons равен нулю при доступе к основному пакету при запуске приложения на iPadOS.
Даже попытка просто напрямую установить один из альтернативных значков по имени приводит к ошибке
Код: Выделить всё
UserInfo={_LSLine=198, NSUnderlyingError=0x60000290e400 {Error
Domain=LSApplicationWorkspaceErrorDomain Code=-105 "iconName not found in
CFBundleAlternateIcons entry" UserInfo={_LSLine=186, NSLocalizedDescription=iconName
not found in CFBundleAlternateIcons entry, _LSFunction=-[LSAltIconManager
_setAlternateIconName:forIdentifier:withIconsDictionary:error:]}}, _LSFunction=-
[LSAltIconManager _setAlternateIconName:forIdentifier:withIconsDictionary:error:]} The
file doesn’t exist.
Я не знаю, что попробовать/проверить на этом этапе. Использование Xcode 14.3 (14E222b).
Подробнее здесь: https://stackoverflow.com/questions/761 ... rnateicons
Мобильная версия