从 XCFramework 创建 Swift 包:.bundle 应该成为 xcframework 的一部分吗?

hzx*_*zxu 5 xcode bundle ios swift-package-manager xcframework

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

MyPackage.xcframework
MyPackage.bundle
Run Code Online (Sandbox Code Playgroud)

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

MyPackage.xcframework
MyPackage.bundle
Run Code Online (Sandbox Code Playgroud)

我可以将 Swift 包添加到我的项目中并使用它,但在运行时它找不到该.bundle文件。

我发现有人遇到同样的问题: https://devforum.zoom.us/t/bundling-the-zoom-sdk-within-a-swift-package/48400

即使将 .bundle 文件作为 .bundle 文件的依赖项Package.swift,它也不起作用,除非将捆绑文件手动复制到项目中。

所以我的问题是,这个捆绑包应该是 .xcframework 文件的一部分,而不是与 .xcframework 文件一起作为独立的 .bundle 文件吗?或者还有什么我可以做的吗?

谢谢!

Sou*_*unt 0

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

目前支持两种规则:处理规则和复制规则,处理规则根据您的资源文件是否为xib、storyboard等应用特定的处理规则。

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