【问题标题】:Build failed with error Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc构建失败并出现错误命令 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc
【发布时间】:2017-08-27 22:24:22
【问题描述】:

我使用的是 Xcode 8.2.1。我也在我的项目中使用 CoreData。 当我尝试生成构建或存档时,我看到以下错误。错误中提到的文件有时也会发生变化。

错误:

<unknown>:0: error: no such file or directory: '/Users/anuragparashar/Library/Developer/Xcode/DerivedData/app-drgjxhipxxqdrcatqfdgpayyxnud/Build/Intermediates/app.build/Debug-iphoneos/app.build/DerivedSources/CoreDataGenerated/app/BuildingRoofMapping+CoreDataClass.swift'
<unknown>:0: error: no such file or directory: '/Users/anuragparashar/Library/Developer/Xcode/DerivedData/app-drgjxhipxxqdrcatqfdgpayyxnud/Build/Intermediates/app.build/Debug-iphoneos/app.build/DerivedSources/CoreDataGenerated/app/BuildingRoofMapping+CoreDataProperties.swift'
<unknown>:0: error: no such file or directory: '/Users/anuragparashar/Library/Developer/Xcode/DerivedData/app-drgjxhipxxqdrcatqfdgpayyxnud/Build/Intermediates/app.build/Debug-iphoneos/app.build/DerivedSources/CoreDataGenerated/app/Region+CoreDataClass.swift'
<unknown>:0: error: no such file or directory: '/Users/anuragparashar/Library/Developer/Xcode/DerivedData/app-drgjxhipxxqdrcatqfdgpayyxnud/Build/Intermediates/app.build/Debug-iphoneos/app.build/DerivedSources/CoreDataGenerated/app/Region+CoreDataProperties.swift'
<unknown>:0: error: no such file or directory: '/Users/anuragparashar/Library/Developer/Xcode/DerivedData/app-drgjxhipxxqdrcatqfdgpayyxnud/Build/Intermediates/app.build/Debug-iphoneos/app.build/DerivedSources/CoreDataGenerated/app/StateRegionMapping+CoreDataProperties.swift'
<unknown>:0: error: no such file or directory: '/Users/anuragparashar/Library/Developer/Xcode/DerivedData/app-drgjxhipxxqdrcatqfdgpayyxnud/Build/Intermediates/app.build/Debug-iphoneos/app.build/DerivedSources/CoreDataGenerated/app/WalkingDoors+CoreDataClass.swift'
<unknown>:0: error: no such file or directory: '/Users/anuragparashar/Library/Developer/Xcode/DerivedData/app-drgjxhipxxqdrcatqfdgpayyxnud/Build/Intermediates/app.build/Debug-iphoneos/app.build/DerivedSources/CoreDataGenerated/app/WalkingDoors+CoreDataProperties.swift'
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1

以下是我的 CoreData 实体的配置方式:

我尝试过的事情:

  1. 检查位置以查看文件是否确实丢失,文件是否存在完全相同的路径。
  2. 我清理了构建文件夹并删除了派生数据并再次构建它。没有任何帮助。
  3. 尝试了link 中的所有答案。没有任何效果。
  4. 这个question 的已接受答案似乎也不起作用。

我不确定为什么会出现此错误。任何帮助表示赞赏

编辑

如果我从我的代码中完全删除 CoreData,那么它会成功存档。

编辑 2:

当我将 CodeGen 更改为 Manual/None 并按照 @Anil 的建议手动添加文件时。它构建成功,但是当我尝试使用以下方法获取 CoreData 实体时:

let context = appDelegate.persistentContainer.viewContext
let buildingRoofMapping = BuildingRoofMapping(context:context)

它给了我运行时错误。 错误:

'NSInvalidArgumentException', reason: 'An NSManagedObject of class 'BuildingRoofMapping' must have a valid NSEntityDescription.'

编辑 3: 示例代码link。在模拟器中运行它。它在 ViewController.swift 文件的 fetchBasicPrice() 中崩溃

【问题讨论】:

  • @iPatel 感谢您的链接。但在发表评论之前,请先阅读我已经尝试过的内容以及您对我的建议。
  • 设置模块为Current Product Module
  • @vadian 将其设置为当前产品模块不起作用。
  • 这是完整的错误吗?因为我想知道错误中没有提到BuildingRegionMapping

标签: ios swift xcode core-data


【解决方案1】:

我会告诉你我遇到过同样的问题。在我的例子中,来自 Xcode 8 CoreData 在文档目录中创建 NSManagedObject 类文件。我相信您一定也自己创建了相同的 NSManagedObject 文件。

您需要执行以下更改 .xcdatamodel 并重新生成构建。我在下面附上了图片。

Module 中进行更改并将其设置为 Current Product Module 并将 Codegen 更改为 Manual/None。强>

如果您还有其他问题,请告诉我。

【讨论】:

  • 不,xcode 为我自动生成的文件。但是当我尝试创建文件时,其中缺少属性,当我手动尝试添加属性时,我在获取请求的地方都会出错。
  • 是的,正如我所说,只需如上所述设置 Codegen 和 Module。之后你就没有问题了
  • @Priyal :你能分享你的代码吗?我的意思是项目或演示?我想看看
  • 当然。让我们聊天。
【解决方案2】:

以下步骤对我有用:

  1. 按照Anil's Answer 中的建议,将所有实体的模块更改为当前产品模块并将代码生成更改为手动/无。
  2. 手动创建 CoreData 文件。对于每个实体,都会创建两个文件。

    • 一个是EntityName+CoreData,内容如下:

          import Foundation
          import CoreData
      
          public class EntityName: NSManagedObject {
          }
      
    • 另一个将被命名:EntityName+Properties

      import Foundation
      import CoreData
      
      extension BasicPrice {
           @nonobjc public class func fetchRequest() -> NSFetchRequest<BasicPrice> {
           return NSFetchRequest<BasicPrice>(entityName: "BasicPrice");}
      
         @NSManaged public var var1 : String?
         @NSManaged public var var2 : Int32
         @NSManaged public var var3 : Float
         @NSManaged public var var4 : Bool
       }
      

注意: 这种类/结构不是我自己开发的,在我们从CodeGen中选择Class Definition的时候,CoreData内部就跟随着它了。

希望它对某人有所帮助!

【讨论】:

  • 今天面临同样的问题,但在我的情况下,我只执行“Command+Shift+k”2-3 次,问题就解决了。
【解决方案3】:

首先,如果您在模拟器中检查或运行代码,并且在更改 coreData 代码时会崩溃,那么您需要从模拟器中删除应用程序,然后再次安装并运行。通过这样做,您的代码中所做的更改不会导致崩溃或显示错误。

【讨论】:

  • 代码在模拟器上没有崩溃。我在生成构建时遇到错误,如果我只是在模拟器上运行一切正常。
  • 删除构建+清理构建文件夹+删除派生数据然后尝试再次构建它也会导致相同的错误。
【解决方案4】:

我将其写为答案,因为我还不允许发表评论。 从您的 cmets 中,我假设您已经清理了派生文件夹,并在构建时从模拟器以及 设备 中删除了该应用程序。

您是否尝试在“项目设置”选项卡中将 Build Active Architecture Only 标志设置为 No?如果没有,请也这样做。

归档时,将为所有目标构建应用程序。因此,在开发过程中将标志设置为 Yes 可能会出现一些问题。

【讨论】:

  • 它没有帮助。 :(
  • 我明白了。在更改标志时尝试选择整个项目而不仅仅是一个目标。另外,您是否检查了所有与 coredata 相关的文件是否都链接到您的目标?您可以通过选择一个文件然后查看文件检查器(Cmd + alt + 1)来检查这一点。
猜你喜欢
  • 1970-01-01
  • 2016-12-10
  • 2012-05-09
  • 2019-03-30
  • 2018-05-06
  • 2018-05-10
  • 1970-01-01
  • 2020-02-14
  • 1970-01-01
相关资源
最近更新 更多