我有一个包含一些 xib 的静态库。这些在项目中基本上是相同的。我想将 xibs 作为库的一部分。我可以包含他们的 veiwcontrollers,在调用项目中引用这些控制器,但是没有要加载的 xib。当我右键单击库项目中的 xib 时,它不能成为目标的一部分。
我想过创建一个 CFPluginBundle ,但这会创建一个新项目。我会放弃我所有的 IBOutlet 和 IBAction 引用。重用对特定控制器也有出口和操作的 xib 的最佳方法是什么?
我有一个包含一些 xib 的静态库。这些在项目中基本上是相同的。我想将 xibs 作为库的一部分。我可以包含他们的 veiwcontrollers,在调用项目中引用这些控制器,但是没有要加载的 xib。当我右键单击库项目中的 xib 时,它不能成为目标的一部分。
我想过创建一个 CFPluginBundle ,但这会创建一个新项目。我会放弃我所有的 IBOutlet 和 IBAction 引用。重用对特定控制器也有出口和操作的 xib 的最佳方法是什么?
这里有更多关于它的讨论:你能从 iPhone 上的静态库中引用 Xib 文件吗?
当我想将我的项目导出为库供其他开发人员使用时,我遇到了同样的问题。我找到了我观点的完美解决方案,它似乎也会回答你的观点。
有一个 xcode 插件可让您将项目构建为包含资源的库。
https://github.com/kstenerud/iOS-Universal-Framework
我不知道构建这个插件的人,但它就像一个魅力
我不确定您所说的“将 xibs 作为库的一部分”是什么意思,因为静态库没有资源——但它们也不是独立发布的,所以它们不需要。如果您只想将代码重用于自己的项目,则可以将 xibs 保留在您保留静态库的任何位置,并且只需将 xibs 包含在使用该库的任何项目中。
如果你走 CFPluginBundle 路线,你可以在现有项目中创建新的捆绑目标;模板没有什么神奇之处,它们只是负责制作虚拟文件并打开正确的构建设置。您可以将它们复制到现有项目中的新目标中,它会正常工作。也就是说,我不确定丢失 IBOutlet 和 IBAction 引用是什么意思,因为该信息是 xib 的一部分(以及您在 xib 中使用的类),而不是项目。