gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 17:19:17 25 4
gpt4 key购买 nike

这是问题所在...我在应用商店中有一个使用核心数据的应用...我一直在正确地更新我的模型(使用版本等),但是最近我不小心丢失了我的最新模型(与应用商店),因此现在我收到此错误:原因=“找不到源商店的模型”;

我已经创建了我的模型,并且据我所知,我所做的更改与以前的版本完全相同...但是我仍然无法像我的模型版本那样进行更改。所以我的问题是,我可以以某种方式欺骗核心数据以使其认为版本正确吗?还是有一种方法可以检查哪个实体有问题?我了解核心数据会存储模型的哈希值以检查版本是否相同,但是我不知道为了使“哈希值检查”成功,版本模型必须达到的程度。 。

任何帮助将是巨大的!谢谢!

最佳答案

您可以从应用程序的应用程序商店副本中恢复数据模型,然后将其导入回项目中。核心数据模型的编译方式与源代码不同,因此反转流程通常是有效的。以下内容假设您已经在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/

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

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

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

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

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

关于ios - 核心数据“找不到源存储的模型”;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21306257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com