繁体   English   中英

更改核心数据模型而无需打开版本控制

[英]Changed Core Data Model Without Having Versioning Turned On

我对核心数据模型进行了一些更改(将一些属性设置为optionalnon-optional )。

不幸的是,我没有打开自动版本控制...

我昨天已将我的应用程序上传到App Store,Apple仍在审查中。 恐怕它将破坏我的应用程序的现有安装。

这就是为什么我想取消当前上传的Binary并将我的Core Data模型重置为以前的属性设置,然后再次上传该应用程序的原因。

这使我想到以下问题:

  • 如何确定当前数据模型是否与现有数据模型兼容? 这是纯粹通过比较属性还是通过比较Core Data模型的内容文件中的systemVersion来完成的?
  • 如何解决我的问题并避免使用新版本的App
    由于数据模型不兼容而导致崩溃

兼容版本由匹配的版本号确定。

通过完全按照您的建议来解决。 拉取二进制文件,还原更改,对模型进行版本控制,重新进行更改,确保启用了自动迁移并测试其是否正常运行。

通过生成要比较的组件相等性的32字节哈希摘要来创建版本号:

  • 对于每个实体,以下属性必须相等: nameparentisAbstractproperties 不比较classNameuserInfo验证谓词

  • 对于每个实体中的每个属性,以下属性必须相等: nameisOptionalisTransientisReadOnly ,属性attributeType以及关系destinationEntityminCountmaxCountdeleteRuleinverseRelationship 不比较userInfo验证谓词

苹果参考

从技术上讲,如果您不更改任何不会影响版本号的内容,则无需对模型进行版本控制。 请注意,所做的更改将影响版本号,因此您需要采取措施。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM