You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS 18中如何获取高分辨率AppIcon(UIImage)?

iOS 18下获取1024x1024高分辨率AppIcon的问题

在iOS 18之前,以下代码可正常获取1024x1024的AppIcon:

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)!

其中iconName为"AppIcon",可返回1024x1024的图片。但使用iOS 18基础SDK时,UIImage(named: iconName)返回nil,导致应用崩溃。

问题细节

  • 使用iOS 17基础SDK构建时,在iOS 17和iOS 18上均可正常运行;
  • 使用iOS 18基础SDK构建(部署目标为iOS 17)时,在iOS 17和iOS 18上均会崩溃。

已尝试的方案

改用CFBundleIconFiles的代码如下:

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",对应的是120x120的低分辨率图片,无法满足需求。

排查情况

  • 应用使用资源目录Assets.xcassets -> AppIcon,其中包含1024x1024的icon1024.png;
  • 目标设置的General标签中已将AppIcon设为应用图标;
  • 生成的.app产物中包含AppIcon60x60@2x.png、AppIcon76x76@2x~ipad.png和Assets.car,用Asset Catelog Tinker查看Assets.car可见icon1024.png;
  • 用iOS17和iOS18 SDK构建的.app结构一致,但iOS18 SDK下调用UIImage(named: "AppIcon")无法加载Assets.car中的icon1024.png,直接调用UIImage(named: "icon1024")等也返回nil。

现寻求iOS 18下获取1024x1024高分辨率AppIcon的解决方案。

内容的提问来源于stack exchange,提问作者OMGPOP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 14:02:15