从 XCFramework 创建 Swift 包:.bundle 应该是 xcframework 的一部分吗?
Creating Swift Package from XCFramework: should .bundle be part of xcframework?
我正在尝试从 xcframework 创建一个 swift 包,问题是如果框架需要从 .bundle 文件加载某些资源,bundle 是否应该是框架的一部分,即。 xc框架?我在单个 zip 文件中有以下文件:
MyPackage.xcframework
MyPackage.bundle
并将其上传到主机服务器,在我的 Package.swift
:
targets: [
.binaryTarget(name: "MyPackage", url: "HOST/MyPackage.xcframework.zip", checksum: "CHECKSUM")
]
我可以将 Swift 包添加到我的项目中并使用它,但在运行时它找不到 .bundle
文件。
我发现有人遇到同样的问题:
https://devforum.zoom.us/t/bundling-the-zoom-sdk-within-a-swift-package/48400
即使将 .bundle 文件作为 Package.swift
中的依赖项,它也不起作用,除非将 bundle 文件手动复制到项目中。
所以我的问题是,这个包是否应该成为 .xcframework 文件的一部分,而不是与 .xcframework 文件一起作为独立的 .bundle 文件?或者如果我还有什么可以做的?
谢谢!
您可以使用 Swift 5.3 中引入的新方法将资源与 swift 程序包捆绑在一起,如 here 所述。
目前支持两种规则:process rule和copy rule,process rule会根据你的资源文件是xib,storyboard等应用特定的处理规则
在您的情况下,您需要使用复制规则来复制应用中的 .bundle
资源。默认情况下,复制规则会将您的文件复制到应用程序的根目录,如果您想复制具有特定文件夹结构的文件,您可以决定提供文件夹路径。
我正在尝试从 xcframework 创建一个 swift 包,问题是如果框架需要从 .bundle 文件加载某些资源,bundle 是否应该是框架的一部分,即。 xc框架?我在单个 zip 文件中有以下文件:
MyPackage.xcframework
MyPackage.bundle
并将其上传到主机服务器,在我的 Package.swift
:
targets: [
.binaryTarget(name: "MyPackage", url: "HOST/MyPackage.xcframework.zip", checksum: "CHECKSUM")
]
我可以将 Swift 包添加到我的项目中并使用它,但在运行时它找不到 .bundle
文件。
我发现有人遇到同样的问题: https://devforum.zoom.us/t/bundling-the-zoom-sdk-within-a-swift-package/48400
即使将 .bundle 文件作为 Package.swift
中的依赖项,它也不起作用,除非将 bundle 文件手动复制到项目中。
所以我的问题是,这个包是否应该成为 .xcframework 文件的一部分,而不是与 .xcframework 文件一起作为独立的 .bundle 文件?或者如果我还有什么可以做的?
谢谢!
您可以使用 Swift 5.3 中引入的新方法将资源与 swift 程序包捆绑在一起,如 here 所述。
目前支持两种规则:process rule和copy rule,process rule会根据你的资源文件是xib,storyboard等应用特定的处理规则
在您的情况下,您需要使用复制规则来复制应用中的 .bundle
资源。默认情况下,复制规则会将您的文件复制到应用程序的根目录,如果您想复制具有特定文件夹结构的文件,您可以决定提供文件夹路径。