iOS WidgetKit无法加载Assets.xcassets中部分图片问题咨询
问题描述
将图片存放在Assets.xcassets资源目录中,尝试在Widget视图内加载对应图片。为保障小组件可正常调用资源,已为所有相关图片设置了小组件扩展的目标成员资格。
当前异常表现为:HalloweenOne、HalloweenTwo、HalloweenThree等部分图片无法正常加载,所有图片大小均在10kb以下,且该批次所有图片在主App中均可正常加载。
相关加载代码:
Image("HalloweenOne") .resizable() .aspectRatio(contentMode: .fit) .frame(maxWidth: 50)
异常场景截图:
解决方案
- 显式指定小组件的资源包加载。小组件的资源包与主App相互独立,默认
Image初始化查找资源时可能出现上下文偏差,修改代码如下即可:
// 替换参数为你小组件中任意一个属于小组件扩展Target的类即可,通常用TimelineProvider类 Image("HalloweenOne", bundle: .init(for: WidgetProvider.self)) .resizable() .aspectRatio(contentMode: .fit) .frame(maxWidth: 50)
- 检查资源渲染模式设置。在Xcode的
Assets.xcassets面板选中加载失败的图片,右侧属性栏将「Render As」属性修改为Original Image,避免图片被当作模板图跟随Tint色显示导致异常。 - 清理Xcode构建缓存后重新编译。增量编译偶尔会出现资源打包遗漏的情况,按住
Option点击顶部菜单栏「Product」→「Clean Build Folder」,删除测试设备上的旧应用后重新运行即可。
内容的提问来源于stack exchange,提问作者naljin
相关产品推荐
相关产品推荐

