2011-06-27 70 views
2

我向Core Data模型(iOS)添加了一个属性。我是在第2版,所以我增加了一个新的模式和版本下保存新的属性3.核心数据迁移失败仅发布版本

我的加载代码标准(使用初始化一个initWithContentsOfURL: MOM我Bundle中我.momd目录指向),然后传递一个MOM到NSPersistentStoreCoordinator

然后,我从App Store下载我的应用程序,运行它,然后尝试测试迁移。轻量级迁移工作正常我的模拟器和我的电话在调试(拴在Xcode 4)。

然而,当我同步发布版本使用iTunes(使用Xcode的“归档”功能),我的应用程序的数据存储无法与此错误迁移:

Error Domain=NSCocoaErrorDomain Code=134130 "The operation couldn’t be completed. 
(Cocoa error 134130.)", reason=Can't find model for source store} 
更糟

的是,店里丢失在某些无法逃脱的巫术状态下 - 如果我重新连接设备并再次从Xcode安装Debug版本,我无法“恢复”迁移。

上面的错误消息省略了有关我的实体的详细信息。如果有帮助,我可以提供,但对于这里可能出现的问题有什么想法?我已经阅读了关于这个错误代码的所有问题,到目前为止他们都未能产生结果。

我尝试了手动迁移,但它也产生了一个错误。但是,由于我只向1个实体添加了1个属性,因此轻量级迁移不起作用是没有意义的。

回答

2

每当我看到这个问题时,在我的代码或其他人看来,XCode已经进入某种与它在应用程序中部署的模型版本不佳的状态。打开应用程序的发布IPA存档,并查看其中包含的文件是什么mom。如果您看到以前的某个版本缺失,那可能是同样的问题。至于解决方案,我有不同的结果;以下步骤的某些变化适用于我,但从未按照一致的顺序进行。

  • 清洁&删除该项目所得到的数据(请确保您有保存,以便在需要时可以symbolicate您发布的应用程序的存档)
  • 重命名以前的模型版本的文件(在Xcode),添加或删除名称和代表版本号的数字之间的空格(如果它有空格,则替换为'_',如果它没有空格,则尝试添加一个空格)
  • 添加新版本的模型改变它的任何内容,并使其成为'当前'版本

我知道这些步骤似乎就像抓住吸管一样,这正是发生在我身上的感觉。你可能会考虑使用Apple的一个支持事件,很高兴知道他们对这个问题的正式答案是什么。

+0

瑞恩,谢谢你的回答。我最终根据您的建议搞清楚了 - 打开应用程序的存档并查看其中的MOM文件。这让我意识到事情并不正确! – makdad