在Swift Package Bundle的资产目录中未找到图像

46scxncf  于 2023-04-04  发布在  Swift
关注(0)|答案(1)|浏览(116)

我的应用程序由许多模块组成,每个模块都是一个Swift Package。我有一个案例,我想显示另一个模块提供的图像。这意味着PackageA是某种UI库;它从另一个模块PackageB获取一些资产,PackageB有一个Assets.xcassets目录。PackageB为这些资产提供API,如name: Stringbundle: 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文件已正确加载。
我错过了什么?是否有限制这样的使用?
谢谢你

9vw9lbht

9vw9lbht1#

我的错误是通过filename+extension模式引用图像,而不仅仅是它的资产标签。
因此,当我创建SwiftUI.Image时,就像我在问题中提到的那样,我使用了这个:Image(iconData.asset.imageName, bundle: iconData.asset.bundle)iconData.asset.imageName是用"\(fileName).\(fileExtension)"构建的。删除扩展并只使用fileName解决了我的问题。
也许这可以帮助别人!

相关问题