从XCFramework创建Swift Package:.bundle应该包含在xcframework中吗?

5

我正在尝试从xcframework创建Swift软件包,问题是如果该框架需要从.bundle文件中加载某些资源,则该bundle是否应该成为框架的一部分,即xcframework? 我在单个zip文件中有以下文件:

MyPackage.xcframework
MyPackage.bundle

我将其上传到主机服务器,在我的Package.swift中:

targets: [
        .binaryTarget(name: "MyPackage", url: "HOST/MyPackage.xcframework.zip", checksum: "CHECKSUM")
    ]

我可以将Swift Package添加到我的项目中并使用它,但在运行时它无法找到.bundle文件。
我发现有人遇到了同样的问题: https://devforum.zoom.us/t/bundling-the-zoom-sdk-within-a-swift-package/48400 即使在Package.swift中将.bundle文件设置为依赖项,也不起作用,除非将bundle文件手动复制到项目中。
所以我的问题是,这个bundle文件应该成为.xcframework文件的一部分,而不是与.xcframework文件一起作为独立的.bundle文件吗?或者我还能做些什么?
谢谢!
1个回答

0

您可以使用 Swift 5.3 中引入的新方法将资源包与 Swift package 捆绑在一起,方法描述 在此处

目前,支持两个规则:process rule 和 copy rule,process rule 根据您的资源文件类型(xib、storyboard 等)应用特定的处理规则。

在您的情况下,您需要使用 copy rule 将 .bundle 资源复制到您的应用程序中。默认情况下,copy rule 将文件复制到您的应用程序根目录,如果您想要将文件复制到具有特定文件夹结构的文件夹中,您可以决定提供文件夹路径。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接