将 xib 文件添加到 Swift 包

use*_*510 2 xcode swift swift-package-manager

我想开始使用模块化代码以及与 Xcode 11 的新 Swift Package Manager 集成。

问题是我似乎无法向我的新包添加任何类型的 UI 文件。我只需要添加一个xib文件。

这是如何实现的?

Mar*_*zyk 7

当前 Swift 包仅支持源代码,因此您无法向包中添加 xib 文件。阅读缺少什么?以下文章中的部分:

在 Xcode 中创建 Swift 包

更新

Xcode 12 允许您将不是源代码文件的文件添加到 Swift 包中。我尚未创建 Swift 包,因此无法提供有关如何将 xib 文件添加到 Swift 包的详细说明。但正如@ffritz 在对此答案的评论中提到的那样,Apple 的文档中有一篇关于在 Swift 包中捆绑资源的文章。

使用 Swift 包捆绑资源

  • 这已经过时了。现在可以捆绑“xib”文件等资源,请参阅https://developer.apple.com/documentation/swift_packages/bundling_resources_with_a_swift_package。 (2认同)

Har*_*oom 6

感谢上面的 Marks 回答和他分享的 Apple 文档,我能够解决在 Swift 包中加载 .xib 文件的问题。我将在这里为未来的旁观者解释我的步骤。

  1. 将新 Swift 包中的所有 .xib 文件移至名为 Resources 的文件夹中(位于 location /Sources/PackageName/Resources

  2. 更改我以编程方式加载这些 .xib 文件的任何代码以包含模块包。例如:

     super.init(nibName: "MyViewController", bundle: nil) //Old way of initialising
    
     super.init(nibName: "MyViewController", bundle: Bundle.module) //New way of initialising
    
    Run Code Online (Sandbox Code Playgroud)