Получите изображение значка в высоком разрешении как UIImage в iOS 18.IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Получите изображение значка в высоком разрешении как UIImage в iOS 18.

Сообщение Anonymous »

До iOS 18 у меня был следующий код, который работал хорошо:

Код: Выделить всё

    let icons = Bundle.main.infoDictionary!["CFBundleIcons"] as! [String: Any]
let primaryIcon = icons["CFBundlePrimaryIcon"] as! [String: Any]
let iconName = primaryIcon["CFBundleIconName"] as! String
return UIImage(named: iconName)!
Имя значка — «AppIcon», и он возвращает изображение размером 1024x1024. Теперь, используя базовый SDK iOS 18, UIImage(named: iconName) равен нулю, что приводит к сбою в моем приложении.
Подробнее:
< ul>
[*]Если я собираю с использованием базового SDK iOS 17, он отлично работает как на iOS 17, так и на iOS 18.
[*]Если я собираю с использованием базового SDK iOS 18 (с цель развертывания iOS 17), происходит сбой как на iOS 17, так и на iOS 18.

Я пробовал ответы из раздела «Как получить UIImage of AppIcon?», но результат не так хорош. В частности, следующий код, который использует CFBundleIconFiles вместо CFBundleIconName:

Код: Выделить всё

    let icons = Bundle.main.infoDictionary!["CFBundleIcons"] as! [String: Any]
let primaryIcon = icons["CFBundlePrimaryIcon"] as! [String: Any]
let iconFiles = primaryIcon["CFBundleIconFiles"] as! [String]
return UIImage(named: iconFiles[0])!
IconFiles[0] возвращает AppIcon60x60, который использует [email protected] в основном пакете, размер которого составляет 120x120, что намного ниже, чем 1024x1024. .
Я провел следующее исследование:
  • В настройке приложения я использую каталог активов (

    Код: Выделить всё

    Assets.xcassets -> AppIcon
    ), с файлом изображения с именем icon1024.png и размером 1024x1024.
  • Общие сведения вкладке целевой настройки я устанавливаю AppIcon в качестве значка приложения.
  • в полученном продукте (), я вижу 3 связанных файла:
  • AppIcon60x60@2x .png
  • AppIcon76x76@2x~ipad.png
  • Assets.car
Затем я использую приложение «Asset Catelog Tinker» для проверки Assets.car, я получил один файл icon1024.png.
Я попробовал построить с помощью как iOS 17, так и iOS 18, и имеют одинаковую структуру папок .app.
Это означает, что при сборке с использованием базового SDK iOS 17 при вызове UIImage(named: "AppIcon "), он каким-то волшебным образом загружает файл Assets.car/icon1024.png. Однако, если я выполню UIImage(named: "icon1024"), или UIImage(named: "icon1024.png"), или UIImage(named: "Assets.car/icon1024.png")< /code> или UIImage(named: "Assets.car/icon1024.png"), он возвращает ноль.
Я не знаю, почему я работал раньше (кто-нибудь знает ?), но это больше не работает при сборке для iOS 18. Что мне делать?

Подробнее здесь: https://stackoverflow.com/questions/786 ... -in-ios-18
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»