Xcode16无法通过Image显示App Icon问题
Xcode16无法通过Image显示App Icon问题

Xcode16无法通过Image显示App Icon问题

问题描述

在使用Xcode15制作图标界面时,我通过Image显示图标:

Image(uiImage: UIImage(named: "AppIcon \(index)") ?? UIImage())

这个代码在Xcode 15中,是可以加载Assets中iOS App Icon图标的。

但是当我在Xcode16中打开项目时,发现无法通过Image获取到iOS App Icon,即使安装到iOS上也是无法显示的。

问题原因

当我下载App Store中的应用,Image仍然可以获取到iOS App Icon。

当我从Git Hub中下载App Store版本,并安装到手机上时,仍然是无法获取iOS App Icon的。

因此,我认为问题可能是Xcode 16 对资源加载机制的更改以及 App Icon 不再作为普通资源提供访问有关。

在 Xcode 15 以前,这种方式可能恰好能加载到一些 AppIcon(如果它们被打包在了 Assets.xcassets 中),但 从 iOS 15 起其实就不推荐这样访问 App Icon,而且:

Xcode 16 进一步加强资源访问控制,App Icon 被编译后只作为图标用途,不再是 UIImage 可访问的资源;

AppIcon 是通过 .appiconset 设置的,不等同于普通 Image Asset,不能用 UIImage(named:) 获取;

UIImage(named:) 只能访问普通的 .imageset 资源,或明确存在于 bundle 中的图片文件。

解决方案

将图标资源作为普通图片拷贝一份。

在 Assets.xcassets 中手动添加一份图标图像。

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注