我的应用程序由许多模块组成,每个模块都是一个Swift Package。我有一个案例,我想显示另一个模块提供的图像。这意味着PackageA是某种UI库;它从另一个模块PackageB获取一些资产,PackageB有一个Assets.xcassets
目录。PackageB为这些资产提供API,如name: String
和bundle: Bundle
(即Bundle.module
)。
我这样使用资产:Image(iconData.asset.imageName, bundle: iconData.asset.bundle)
当我构建并尝试访问资源时,我得到错误:No image named 'myImage.png' found in asset catalog for <Bundle url>
。捆绑包URL有效。
提供资产的模块在其Package
文件中有以下声明:
.target(
name: "PackageName",
dependencies: [],
resources: [
.process("Resources")
]),
旁注:捕获屏幕中显示的json文件已正确加载。
我错过了什么?是否有限制这样的使用?
谢谢你
1条答案
按热度按时间9vw9lbht1#
我的错误是通过
filename+extension
模式引用图像,而不仅仅是它的资产标签。因此,当我创建SwiftUI.Image时,就像我在问题中提到的那样,我使用了这个:
Image(iconData.asset.imageName, bundle: iconData.asset.bundle)
。iconData.asset.imageName
是用"\(fileName).\(fileExtension)"
构建的。删除扩展并只使用fileName
解决了我的问题。也许这可以帮助别人!