Xcode 7命令因信号失败:非法指令4

BJ *_*ler 7 xcode llvm swift

我只是使用Xcode 7的迁移工具将一个项目从Swift 1.2迁移到2.修复了错过的错误等等,一切都很好,除了一个错误导致我甚至无法构建:命令因信号失败:非法指令4.

我已经尝试过这些文章中的帮助(Xcode 7和Swift 2.0:命令因信号失败:中止陷阱:6,命令因信号失败:中止陷阱:6)这些问题与我的问题不同,但它们仍然是无法解决问题.

我已清理构建并删除派生数据文件夹.我有最新的CocoaPods安装,Xcode工具是7.0,而我的Swift编译优化是无.还有什么我想念的吗?

谢谢!

BJ *_*ler 7

因此,在同事的帮助下,找到了答案。我们在构建错误中找到了有问题的文件,但是没有提供任何行。通过消除过程,我们发现这是一行,它是从可选字典内部声明获取JSON字典([String:AnyObject],类型别名为JSONDictionary)的结果的新常量。这是一行:

let objectsDictionary = maybeJSON?[key] as? JSONDictionary

将其更改为两个警卫声明:

guard let goodJSON = maybeJSON as? JSONDictionary else { return ... }
guard let objectsDictionary = goodJSON[key] as? JSONDictionary else { return ... }
Run Code Online (Sandbox Code Playgroud)

该行在Xcode 6.3.2中起作用,因为它只是提供了一个可选值,但是由于某些原因,Xcode 7中的某些更改不喜欢这样做。我希望这可以帮助遇到此问题的任何其他人。