我目前正在开发 XCFramework 格式的 SDK,但我遇到显示图像的问题。可以在here找到示例存储库。
Example
目标是SDK,包含一个Assets.xcassets
文件夹。在 Assets.xcassets
中,有一个名为 neko.png
的图像,我正在尝试将其显示在 MyImage.swift
中。
这是来自
MyImage.swift
的相关代码片段:
public var body: some View {
HStack {
Image("neko")
.resizable()
.frame(width: 100, height: 100)
Image("neko", bundle: Bundle(identifier: "com.example.Example"))
.resizable()
.frame(width: 100, height: 100)
Image("neko", bundle: Bundle(for: Dummy.self))
.resizable()
.frame(width: 100, height: 100)
}
}
ExampleApp
目标是一个模拟SDK集成的iOS应用程序。我通过“框架、库和嵌入式内容”链接了 Example.framework
。在ContentView.swift
,我打电话给MyImage()
:
var body: some View {
VStack {
MyImage()
Image(systemName: "globe")
.imageScale(.large)
.foregroundStyle(.tint)
Text("Hello, world!")
}
.padding()
}
但是,运行
ExampleApp
时,遇到以下错误,并且图像不显示:
No image named 'neko' found in asset catalog for /Users/xxxxx/Library/Developer/CoreSimulator/Devices/xxxxx/data/Containers/Bundle/Application/xxxxx/ExampleApp.app
将
neko.png
添加到 ExampleApp
的 Assets.xcassets
可以解决该问题。
看来我在
bundle
中调用Image()
时没有正确传递MyImage.swift
。此外,当我在 print(Bundle.allFrameworks)
内运行 ExampleApp
时,Example.framework
似乎不包含在内。
我还尝试将使用 .xcframework
构建的 xcodebuild
添加到“框架、库和嵌入式内容”而不是 Example.framework
,但它没有解决问题。
如果有人对如何解决此问题有见解,我将不胜感激!