在我的iphone6和iOS9beta5上运行我的应用程序Xcode6时,我在控制台上得到了一些这样的照片:
核心数据:无法在路径‘/var/mobile/Containers/Bundle/Application/0000000B-BDBC-0000-000B-0000FB00000B/Distribution.app/database.momd/database.omo’处加载优化模型
我找不到与此相关的东西,有没有人对这条信息有什么线索?
在我的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文件.
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 调试时观察到的情况.如果其他人能提供更多的信息,我欢迎您的意见.