这是我的情况,这可能相当普遍,但我还没有找到一个令人满意的方法。
我正在开发一个iPhone应用程序,该应用程序将具有存储在应用程序包中的只读,预加载的Core Data数据库。我完全理解如何部署这样的东西。那不是我的问题。
我的问题是如何将Core Data数据库作为构建过程的一部分进行预加载?我可以想象有几种方法可以做到这一点,但我正在寻找一种集成的解决方案最好使用Xcode并且拥有最少的hackery。
到目前为止,我的第一选择是为命令行工具创建一个项目,该工具与iPhone项目共享核心数据模型。然后,该工具可以作为iPhone项目构建过程的shell脚本阶段的一部分运行。糟糕的是,因为一个是iPhone项目而另一个是OS X命令行工具,它们不能共享同一个项目,甚至不能从一个项目引用另一个项目。它们必须完全分开。 :(
有什么建议吗?
答案 0 :(得分:1)
取决于您从何处获取数据。听起来像是在自动从其他地方提取数据。在这种情况下,我会建立一个命令行工具,因为你猜对了,但不重建它。只需创建一个命令行工具,然后在shell脚本中执行它,作为iPhone应用程序构建过程的一部分。
除非您的模型已更新,否则不应该有任何理由重新构建该命令行工具。
答案 1 :(得分:1)
因为一个是iPhone项目而另一个是OS X命令行工具,它们不能共享同一个项目,甚至不能从一个项目引用到另一个项目
这是新Xcode的限制;过去完全有可能构建一个命令行工具来在OSX上运行测试(事实上,它仍然适用于xcodebuilder,而不是在Xcode本身)。
编辑:一个非常可怕的黑客是使用PyObjC,所以你可以在Python中运行,但如果你需要使用编译的东西,那可能不适合。
解决方法是首次启动时进行数据转换。