Xcode 7 失败,命令 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc 失败,退出代码 1

Xcode 7 fails with Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1

我正在 swift 7 上将我的 swift 项目更新到 Swift 2.0。xcode 在构建项目:

Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1

这发生在 SwiftyJSON 或 SwiftSpinner 框架上(编译器似乎首先随机选择一个并失败,因此错误会间歇性地在其中一个或另一个上报告)。我已将这些框架更新到它们的 xcode7/swift2 兼容分支,但项目仍然无法编译。

只是想知道这是否是其他人在使用 cocoa pods 框架依赖项升级他们的项目时看到的情况,或者这是一个编译器错误

对于有类似问题的其他人,请尝试以下操作: 打开控制台(不是终端)并选择所有消息。然后尝试构建您的 Xcode 项目,当它失败时,请查看列表中的任何可能与 Xcode.

相关的消息

我发现了这样一条消息:

01/10/15 10.24.17,808 Xcode[53145]: DVTAssertions: Warning in /Library/Caches/com.apple.xbs/Sources/IDEFrameworks/IDEFrameworks-8228/IDEFoundation/Playgrounds/IDEPlaygroundAuxiliarySourceCompilerOperation.m:311 Details: Unable to read diagnostics from file "/Users/username/Library/Developer/Xcode/DerivedData/OurProject-diexylwajzhwgtfqdwiphjgzdwcy/Build/Intermediates/OurProject.build/Debug-iphoneos/OurProject.build/Objects-normal/armv7/CheckoutUserDataAdapter.dia" (Invalid File): Invalid diagnostics signature Function: void XCGenerateDiagnosticsFromFile(NSString *__strong, NSString *__strong, NSDictionary *__strong, NSDictionary *__strong, IDEActivityLogSectionRecorder *__strong, BOOL (^__strong)(IDEActivityLogMessage *__strong)) Thread: {number = 250, name = (null)} Please file a bug at http://bugreport.apple.com with this warning message and any useful information you can provide.

这给了我们错误在 CheckoutUserDataAdapter.swift 中的信息。 经过反复试验,我们发现问题在于它正在从它的 super class 调用一个方法,它从它的 super class 覆盖。不知何故,它找不到正确的方法。
我们通过在 CheckoutUserDataAdapter.swift 中添加 super.methodCall() 来修复它 - 但不需要这样做。我已提交错误报告。

检查构建阶段 - 已删除文件或带有空白图标的文件的编译源,删除此文件后错误消失

感谢@Dug 的构建阶段提示。我最终走向了与删除不同的方向......

检查构建阶段 - 编译源后,找到变灰的文件(当前没有 link 实际文件)以识别有问题的文件。

如果这些文件仍在使用,则在项目导航器(左侧栏)中找到它们,您会看到它们是红色的,因为 Xcode 只有参考,没有位置对于实际文件。

Select 每个红色文件,然后转到文件检查器(右侧栏)。您会看到 "Location"。单击灰色文件夹并在 Xcode.

之外的文件结构中找到您的文件

如果您使用的是存储库,您可能会发现删除红色文件更容易,选择“文件”>“将文件添加到...”并简单地重新添加它们,这样 link通用而不是直接指向您机器的文件位置。

这发生在我的项目文件合并之后,我已经从主存储库分支了很长一段时间,所以在合并中丢失了一些文件位置。