核心数据“找不到源存储模型”;

     2023-03-05     169

关键词:

【中文标题】核心数据“找不到源存储模型”;【英文标题】:core data "Can't find model for source store"; 【发布时间】:2014-01-23 11:02:11 【问题描述】:

问题出在这里...我在应用商店中有一个应用程序,它使用核心数据...我一直在正确更新我的模型(使用版本等)但最近我不小心丢失了我的最新模型(那个对应于应用商店),所以现在我得到这个错误:原因=“找不到源商店的模型”;

我已经创建了我的模型,据我所知,我所做的更改与以前的版本完全相同......但我仍然无法让它喜欢我的模型版本。所以我的问题是,我能否以某种方式欺骗核心数据,使其认为它具有正确的版本?或者有没有办法检查哪些实体有问题?我知道核心数据存储模型的哈希以检查版本是否相同,但我不知道版本模型必须相同的程度才能使“哈希检查”成功。 .

任何帮助都会很棒!谢谢!

【问题讨论】:

你不使用版本控制工具比如 git sow 你可以检索旧版本的数据模型吗? 在创建这个新数据模型时,您是否像以前一样迭代数据模型的版本? 是的,我使用 git。这就是问题所在,不知何故新的模态版本没有被跟踪,所以当我切换到另一个分支时它被删除了。而且,是的,我确实从以前的版本进行了迭代 我想您删除的内容不在垃圾箱中,也不在数据模型包中? 如果没有办法恢复有几个选项:如果数据不重要并且您不需要升级您可以修改传递给持久存储的标志 sow 您不会执行轻量级迁移,不幸的是用户将丢失所有存储的数据。 【参考方案1】:

您可以从应用的应用商店副本中恢复数据模型,然后将其导入回您的项目中。 Core Data 模型的编译方式与源代码不同,因此逆向处理通常是有效的。以下假设您已在 Mac 上的 iTunes 中下载了该应用的当前应用商店版本:

首先将应用商店捆绑包复制到安全的地方:

cp ~/Music/iTunes/Mobile\ Applications/YOUR-APP-NAME.ipa /tmp
cd /tmp/

接下来打开那个包,它实际上只是一个 zip 文件。

unzip YOUR-APP-NAME.ipa

这将创建一个名为 Payload 的目录,其中包含应用程序及其捆绑包。捆绑包包含核心数据模型。将其从捆绑包中复制出来:

cp -rp Payload/YOUR-APP-NAME.app/YOUR-MODEL-NAME.momd /tmp/

(调整名称以匹配您的数据模型)。​​

如果您在应用商店中已有多个版本,则模型为包含多个mom 文件的momd。每个mom 文件对应一个模型版本。其中之一就是您需要的。你需要弄清楚哪个是哪个。

现在,切换到 Xcode。创建数据模型的新版本,但不要使其成为最新版本。 删除此版本中的所有内容,所有实体,所有内容。 显示现在为空的模型后,转到Editor 菜单并选择Import...。在文件打开对话框中,从上方导航到 /tmp/ 中的数据模型副本。选择需要恢复的版本,点击“打开”。

该模型版本中的所有实体现在都出现在您刚刚创建的新模型文件中。现在,您可以在进行模型迁移时将此模型用作“原始”模型。

或者,您可以使用我的momdec 项目来反编译模型,而不是导入 Xcode。这将生成一个未编译的 Core Data 模型,您可以将其添加到您的 Xcode 项目中。

【讨论】:

【参考方案2】:

供日后参考,不推荐。

如果模型无法恢复,则可以“伪造”。

    创建一个与您丢失的模型相同的新模型 测试一下,看看你是否走运(不太可能)。 写下 Core Data 在日志中吐出的实体哈希 将这些哈希输入到模型中作为(版本哈希修饰符)中的覆盖 再次运行迁移。 永远不要再修改生产模型。发货时立即将其检查到源代码管理中。

【讨论】:

【参考方案3】:

对于出现在此问题上且未尝试将核心数据模型迁移到另一个模型的任何人,如果您尝试将数据保存到实体中的某些值未设置的核心数据中,也会出现此错误。确保您的所有数据变量都已正确设置和设置,以避免出现 MacBook Pro 骑独角兽的梦想可能永远存在于您的现实中的错误!

【讨论】:

逆向工程核心数据数据库导致“找不到源存储模型”错误

】逆向工程核心数据数据库导致“找不到源存储模型”错误【英文标题】:Reverse-engineeringCoreDatadbresultsin"Can\'tfindmodelforsourcestore"error【发布时间】:2011-12-0112:20:25【问题描述】:我的任务是重新设计一个使用CoreData存储一... 查看详情

使用 Core Data 轻量级迁移和 UIManagedDocument 的“找不到源存储模型”

...8-1314:16:06【问题描述】:我正在尝试在现有且非常简单的核心数据模型的实体上简单地添加一个新属性......这是 查看详情

核心数据——数据故障

】核心数据——数据故障【英文标题】:Coredata-datafault【发布时间】:2014-02-0913:35:02【问题描述】:我正在将数据保存到核心数据、更新、删除等。关于核心数据和保存,我完全没有错误。但是当我尝试打开sqlite数据库文件时,... 查看详情

Swift - 用 iCloud 核心数据替换核心数据

】Swift-用iCloud核心数据替换核心数据【英文标题】:Swift-ReplaceCoreDatawithiCloudCoreData【发布时间】:2014-12-2716:25:47【问题描述】:如何用iCloudCoreData替换我现有的CoreData?这是我的persistentStoreCoordinator:lazyvarpersistentStoreCoordinator:NSPer... 查看详情

核心数据道模式

】核心数据道模式【英文标题】:Coredatadaopattern【发布时间】:2013-02-0322:24:20【问题描述】:我开始为ios开发,现在我正在研究核心数据。有一件事我不清楚,当我研究很多人在控制器上管理核心数据实体时。对我来说,这不是... 查看详情

使用 MKMapView、核心位置和核心数据

】使用MKMapView、核心位置和核心数据【英文标题】:UsingMKMapView,CoreLocation,andCoreData【发布时间】:2015-03-2001:18:11【问题描述】:所以我正在学习核心数据和核心位置,我对如何使用核心数据保存核心位置数据有点困惑。我想要做... 查看详情

从核心数据同步数据

】从核心数据同步数据【英文标题】:Syncdatafromcoredata【发布时间】:2016-02-1212:14:00【问题描述】:Hi已经使用核心数据而不是NSUserdefaults来保存数据如何像我们使用[[NsuserdefaultsStandarddefults]synchronize]一样自动同步数据;如何使用... 查看详情

核心数据支持的 UITableView 中的非核心数据数据

】核心数据支持的UITableView中的非核心数据数据【英文标题】:Non-CoreDatadatainaCoreData-backedUITableView【发布时间】:2010-12-0303:33:16【问题描述】:看看Music.app(或iPod.app)。根专辑视图有一个“所有歌曲”行。根歌曲视图有一个“... 查看详情

哪里不使用核心数据?是不是可以将核心数据用作 MySql 之类的数据库?

】哪里不使用核心数据?是不是可以将核心数据用作MySql之类的数据库?【英文标题】:Wherenottousecoredata?IsitpossibletousecoredataasadatabaselikeMySql?哪里不使用核心数据?是否可以将核心数据用作MySql之类的数据库?【发布时间】:2015-0... 查看详情

通过迁移将核心数据实体及其数据移动到新的核心数据模型文件中

】通过迁移将核心数据实体及其数据移动到新的核心数据模型文件中【英文标题】:MoveaCoreDataentityanditsdataintonewCoreDatamodelfilethroughMigration【发布时间】:2015-08-0608:57:08【问题描述】:是否可以使用迁移将核心数据实体Car及其在Mod... 查看详情

核心数据:如何从一个核心数据条目设计树形数据结构

】核心数据:如何从一个核心数据条目设计树形数据结构【英文标题】:CoreData:Howtodesignatreedatastructurefromonecoredataentry【发布时间】:2011-12-2217:43:04【问题描述】:我正在努力设计一个coreData模型,其中我只有一种类型的条目,称... 查看详情

核心数据与用于核心数据的单个 MOC 和主线程合并冲突

】核心数据与用于核心数据的单个MOC和主线程合并冲突【英文标题】:coredatagivingmergeconflictwithsingleMOCandmainthreadusedforcoredata【发布时间】:2011-05-0513:38:18【问题描述】:我正在使用带有单个NSManagedObjectContext的核心数据,并且正在... 查看详情

通过非核心数据对象的绑定访问核心数据对象的属性

】通过非核心数据对象的绑定访问核心数据对象的属性【英文标题】:AccessingpropertiesofCoreDataobjectsviabindingsfromnon-CoreDataobjects【发布时间】:2010-08-2708:45:42【问题描述】:我有一组由另一个应用程序创建并以XML格式存储在磁盘上... 查看详情

核心数据 - 如何将核心数据中的属性值分配给变量

】核心数据-如何将核心数据中的属性值分配给变量【英文标题】:coredata-howtoassignvaluesofanattributeincoredatatoavariable【发布时间】:2013-05-3112:06:44【问题描述】:我正在试验核心数据,直到现在我都非常成功。我试图将核心数据值... 查看详情

核心数据量大

】核心数据量大【英文标题】:Coredatalargequantity【发布时间】:2016-09-2714:35:33【问题描述】:每次应用程序启动时,我都会从Web服务中检索25000条记录。在初始化阶段,我想将所有这些项目保存到核心数据中。此操作的时间约为2... 查看详情

iOS RestKit + 核心数据。获取缓慢和核心数据错误

】iOSRestKit+核心数据。获取缓慢和核心数据错误【英文标题】:iOSRestKit+CoreData.FetchingslowandCoreDataerror【发布时间】:2012-11-2311:32:06【问题描述】:我正在使用Restkit和CoreData从Web服务中获取和存储数据。我有两个问题。第一个是获... 查看详情

更改核心数据堆栈后使用核心数据创建 SQLite 文件后未更新

】更改核心数据堆栈后使用核心数据创建SQLite文件后未更新【英文标题】:SQLitefilenotupdatedoncecreatedwithCoreDataafterchangingCoreDataStack【发布时间】:2016-02-0419:26:25【问题描述】:我更改了现有的核心堆栈,并且我的sqlite文件在创建后... 查看详情

具有核心数据和非核心数据源的 UITableView

】具有核心数据和非核心数据源的UITableView【英文标题】:UITableViewwithCoreDataandnon-CoreDatasources【发布时间】:2014-03-2917:43:22【问题描述】:我的iOSCoreData应用程序存在一些表格视图问题。在应用程序中有一个MasterViewController,它包... 查看详情