在我的iphone6和iOS9beta5上运行我的应用程序Xcode6时,我在控制台上得到了一些这样的照片:

核心数据:无法在路径‘/var/mobile/Containers/Bundle/Application/0000000B-BDBC-0000-000B-0000FB00000B/Distribution.app/database.momd/database.omo’处加载优化模型

我找不到与此相关的东西,有没有人对这条信息有什么线索?

推荐答案

我遇到了这个问题,并做了一些调查.

我一直在使用Xcode6.4进行构建,以前的核心数据似乎只在MyApp.ipa mod目录中生成了一个.mo文件.此屏幕截图来自一个项目,该项目已经看到了几个版本的Xcode.

请注意,所有较旧的型号版本都只有一个.mom文件.我今天刚刚创建了一个新的模型版本,它同时有一个.mam和一个.omo文件.

enter image description here

Xcode6.4(可能还有一些Beta 7.x版本)似乎不知道如何加载数据模型的优化版本,因为我还得到了

2015-10-16 11:11:42.563 MyAppName[1767:599635] CoreData: Failed to load optimized model at path '/var/mobile/Containers/Bundle/Application/D887D60B-FB28-4059-8167-F573460D98F8/MyAppName.app/MyDataModel.momd/MyDataModel3_0Analytics.omo'

使用6.4编译时发出警告.然而,当使用最新的应用store 版本Xcode(7.0.1)编译应用程序时,我没有收到警告.我猜Mahesh的解决方案之所以有效,是因为重新编写整个模式会创建.应用程序正在应用程序包中查找的omo文件.

我的解决方案是在核心数据中生成一个新的数据模型版本,然后使用Xcode7进行构建.似乎创建一个新的模型版本会创建优化的模型文件.不过,在我的测试中,即使创建了这个文件,Xcode6.4仍然会抛出错误.直到我try 使用Xcode7.0.1,警告才消失.

这只是猜测,但我认为如果您有一个现有的项目,并且没有创建新的数据模型版本并使用Xcode7进行构建,那么.omo文件将丢失,因此它会抛出警告,因为它找不到该文件.但是,如果您已经对数据模型进行了版本化并使用Xcode6.4进行构建,那么早期的Xcode版本似乎无法正确处理优化版本中的某些事情,即使有优化版本也不会加载它.不过,这些只是我的观察.

我通过执行以下操作验证了我有一个要加载的优化模型(.omo文件): 1.将您的项目存档 2.将.ipa扩展名更改为.zip 3.展开您的zip文件. 4.点击"payload"文件夹,右击(或cmd点击)文件夹中的appBundle 包, Select "Show Package Contents". 5.单击.mod目录,您应该会在那里看到所有可用的托管对象模型.

如果你所拥有的只有.Mom文件而没有.omo文件,那么该警告就完全有意义了,即应用程序无法打开不存在的文件.

在我的测试中,这个警告似乎只是提供信息.我从来没有因此而崩溃过.看起来核心数据可能会先try 加载优化的模型,如果失败,则返回常规模型.momd模型.不过,这只是我的猜测.

我不确定这里的一切是否完全正确,这就是我到目前为止在try 调试时观察到的情况.如果其他人能提供更多的信息,我欢迎您的意见.

Ios相关问答推荐

在Android和iOS上从后台恢复应用程序后,inappwebview上出现白屏?

有没有办法观察滚动的SwiftUI图表的内容偏移量?

如何在不将应用程序留在SwiftUI上的情况下更改语言?

IOS-获取本地化系统映像

在将Cocoapods更新到1.13.0之后,它抛出错误

RFID scanner 的蓝牙服务 UUID?

仅更改 AttributedString 的字符串(例如 UIButton 配置 attributeTitle)

在 iOS 上启用明文本地流量在 .NET MAUI 中不起作用

为什么 Firebase Messaging 配置对于 IOS native 和 Flutter iOS 不同?

NavigationLink 只能在文本部分点击

xcode-select:找不到clang

UIViewRepresentable - MKMapView 没有得到更新

AVPlayer 退出全屏

SignalR 永远不会在 iOS 上使用 Xamarin Forms 启动

如何隐藏uitabbar控制器

Swift:调用中缺少参数标签xxx

在滚动视图中使用动态大小的控制器调整容器视图的大小

如何在 Objective-C 中组合两个数组?

iPhone:什么是 WWDR 中级证书?

什么是强属性属性