【问题标题】:XCode 7: xcdatamodeld doesn’t existXCode 7:xcdatamodeld 不存在
【发布时间】:2015-09-30 13:56:52
【问题描述】:

更新到 XCode 7 以支持 iOS9 后,我遇到了以下构建错误

error: Cannot read bundle contents (Error Domain=NSCocoaErrorDomain Code=260 "The folder “VoIP.xcdatamodeld” doesn’t exist.

使用配置Debug构建项目myTitle的目标myTitle

DataModelCompile Build/Products/Debug-iphoneos/myTitle.app/ /Users/myself/MyDev/m1/app/VoIP/VoIP/VoIP.xcdatamodeld cd /Users/myself/MyDev/m1/app/app/iPhone export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/ usr/bin:/bin:/usr/sbin:/sbin" /Applications/Xcode.app/Contents/Developer/usr/bin/momc --sdkroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk --iphoneos-deployment-target 7.0 --module myTitle /Users/myself/MyDev/m1/app/VoIP/VoIP/VoIP.xcdatamodeld /Users/myself/MyDev/m1/app/app/iPhone/Build/Products/Debug-iphoneos/myTitle.app/

/Users/myself/MyDev/m1/app/VoIP/VoIP/VoIP.xcdatamodeld:: 错误:不能 读取包内容(错误域=NSCocoaErrorDomain Code=260“的 文件夹“VoIP.xcdatamodeld”不存在。” UserInfo=0x7fd0f350f990 {NSFilePath=/Users/myself/MyDev/m1/app/VoIP/VoIP/VoIP.xcdatamodeld, NSUserStringVariant=( Folder ), NSUnderlyingError=0x7fd0f350f940 "操作无法完成。(OSStatus error -43.)"})

我该如何解决?

我的项目中关于这个文件的唯一参考是这个(在 .project 文件中)

/* Begin XCVersionGroup section */
                449367DE1338E89100DB4AC9 /* myTitle.xcdatamodeld */ = {
                        isa = XCVersionGroup;
                        children = (
                                449367DF1338E89100DB4AC9 /* VoIP.xcdatamodel */,
                        );
                        currentVersion = 449367DF1338E89100DB4AC9 /* VoIP.xcdatamodel */;
                        name = myTitle.xcdatamodeld;
                        path = ../../../../VoIP/VoIP/VoIP.xcdatamodeld;
                        sourceTree = "<group>";
                        versionGroupType = wrapper.xcdatamodel;
                };
/* End XCVersionGroup section */

不知道它是如何产生的,以及为什么它在以前的 xcode 版本中没有问题。

【问题讨论】:

  • 你检查过文件夹是否存在吗?
  • 文件夹 VoIP/VoIP/VoIP.xcdatamodeld 不存在。它从来没有。
  • ¯\_(ツ)_/¯ - 查找此引用的来源并修复它。
  • @Abizern 刚刚更新了我的答案。我 grepped 了项目层次结构,我在项目文件中只有一个引用。

标签: ios iphone xcode xcode7


【解决方案1】:

我在存储新模型时遇到了同样的问题,不幸的是,所选的解决方案对我不起作用。对我有用的是:在 Finder 的项目文件夹中找到模型文件(“ModelNameHere.xcdatamodeld”);右键单击并选择“显示包内容”。您将看到模型的所有版本 - 删除不应该存在的模型。

【讨论】:

  • 这里有同样的问题。创建了第二个模型,但决定重新开始。然后我用 git 回滚,但不知何故 XCode 保留了对第二个数据模型的引用,即使 XCode 本身的任何地方实际上都没有显示(除了构建失败)。接受的答案对我不起作用,但是当我按照@HeavenlyManBR 的建议进行操作时,我看到了 XCode 在哪里隐藏了另一个模型。
  • 此解决方案在 2020 年使用 Xcode 版本 11.3.1 (11C504) 确实有效。感谢 HeavenlyManBR 和 @Jaun Carlos Ospina Gonzalez。最糟糕的是git status 没有显示此更改。
【解决方案2】:

检查 Build Phases 下的 Compile Sources 以获得下图中描述的 Target 设置。



我仔细查看了所有资源,发现一个资源没有任何路径(未知资源,我不知道它是如何出现在那里的..)。从那里取下它,清洁产品并运行。

以上是我的唯一原因..

希望对你有帮助!!!

【讨论】:

  • 只是补充一下,要么有资源没有路径,要么资源有错误的路径。
  • 另外一件事 - 没有路径的资源并不一定意味着它应该被删除(项目根目录中的所有资源都没有它们的路径),但是那些带有灰色图标和虚线轮廓的资源是那些“未知”资源。
  • 拯救了我的一天!谢谢:)
猜你喜欢
  • 2015-12-13
  • 2017-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-28
  • 1970-01-01
  • 1970-01-01
  • 2011-10-19
相关资源
最近更新 更多