作为iPhone项目构建过程的一部分,如何预加载核心数据数据库?

作为iPhone项目构建过程的一部分,如何预加载核心数据数据库?,iphone,xcode,core-data,Iphone,Xcode,Core Data,这是我的情况,这可能是相当普遍的,但我还没有找到一个令人满意的方法来做到这一点 我正在开发一个iPhone应用程序,它将在应用程序包中存储一个只读、预加载的核心数据数据库。我完全理解如何部署这样的东西。那不是我的问题 我的问题是如何在构建过程中预加载核心数据数据库?我可以想象有几种方法可以做到这一点,但我正在寻找一种与Xcode集成最好、黑客攻击最少的解决方案 到目前为止,我的第一个选择是为命令行工具创建一个项目,该工具与iPhone项目共享核心数据模型。然后,该工具可以作为iPhone项目构建

这是我的情况,这可能是相当普遍的,但我还没有找到一个令人满意的方法来做到这一点

我正在开发一个iPhone应用程序,它将在应用程序包中存储一个只读、预加载的核心数据数据库。我完全理解如何部署这样的东西。那不是我的问题

我的问题是如何在构建过程中预加载核心数据数据库?我可以想象有几种方法可以做到这一点,但我正在寻找一种与Xcode集成最好、黑客攻击最少的解决方案

到目前为止,我的第一个选择是为命令行工具创建一个项目,该工具与iPhone项目共享核心数据模型。然后,该工具可以作为iPhone项目构建过程中shell脚本阶段的一部分运行。糟糕的是,因为一个是iPhone项目,另一个是OSX命令行工具,它们不能共享同一个项目,甚至不能相互引用。它们必须完全分开(


有什么建议吗?

取决于您从何处获取数据。听起来您是在自动从其他地方提取数据。在这种情况下,我会按照您的猜测构建一个命令行工具,但不会重新构建它。只需创建一个命令行工具,然后在外壳脚本中执行它,作为iPho构建过程的一部分ne应用程序

除非更新模型,否则没有任何理由重新构建该命令行工具

因为一个是iPhone项目,另一个是OSX命令行工具,所以它们不能共享同一个项目,甚至不能相互引用

这是新Xcode中的一个限制;以前完全可以构建一个命令行工具来在OSX上运行测试(事实上,它仍然可以与Xcode Builder一起工作,只是不能在Xcode本身中工作)

EDIT:一个非常糟糕的方法是使用PyObjC,这样您就可以在Python中运行东西,但如果您需要使用编译的东西,这可能不合适


解决方法是在首次发布时进行数据转换。

我也这么怀疑。这正是我打算做的,除非有其他响应。不幸的是,我怀疑我的模型在开发的早期阶段会发生相当大的变化,这可能会使这成为一个有点烦人的过程,但事实就是这样。如果您的数据发生变化在开发过程中稍微调整一下,让自动迁移尽可能多地处理它。然后当你几乎完成时,做一个新的数据文件。是的,我考虑过使用一个编译器标志,这样它可以在第一次启动时进行数据转换,但我认为使用单独的应用程序的方法可能是最好的。