我目前正在构建多个共享相同CoreData堆栈的应用程序。这包括模型,网络请求等。基本上所有业务逻辑都保存在此存储库中(让我们将其称为DataKit)。 DataKit项目生成一个名为DataKit.a
的静态库现在我有两个应用程序,App A和App B.它们都需要在DataKit中包含.xcdatamodeld。我以前如何做到这一点,就是从DataKit复制.xcdatamodeld文件并将其放入App A或App B项目中。这真的很难看,我试图找出一种更简洁的方法来包含.xcdatamodeld文件,而不必将其复制到App项目中。
我尝试将.xcdatamodeld文件添加到DataModel.a的Build Phases中的Copy Files阶段,但它没有用。
任何人都有任何建议/提示吗?
答案 0 :(得分:3)
.xcdatamodeld
文件是编译到.momd
文件中的托管对象模型的抽象表示。 .momd
文件是Core Data打开的文件。对于您的项目,您需要在编译源阶段具有.xcdatamodeld
,或者在依赖于的目标的复制文件阶段中具有.momd
文件图书馆。显然,在尝试将代码作为库分发时,这非常麻烦。框架允许您包含资源(例如momd
文件),并且通常比库更灵活。 iOS 8允许动态框架,previous versions of iOS allow static frameworks即使工具不完全支持它。
答案 1 :(得分:-1)
您可以在框架中包含一个返回正确数据模型的方法。没有必要将其作为单独的文件/目录存储在包中。