我刚下载了Xcode 6的GM版本,但是它在编译时出现了以下错误:
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1
有什么想法可以修复这个问题吗?
我刚下载了Xcode 6的GM版本,但是它在编译时出现了以下错误:
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1
有什么想法可以修复这个问题吗?
这个错误可能有很多原因,所以这只是一个调试提示。您可以尝试在命令行中使用xcodebuild
。它将为您提供有关哪些文件是罪魁祸首的详细信息。
要执行此操作,请打开Terminal并转到您的项目文件夹。一旦到达那里,请键入
xcodebuild -project YourProject.xcodeproj -scheme YourScheme
或者如果您正在工作区
xcodebuild -workspace YourProject.xcworkspace -scheme YourScheme
你可能会看到很多消息弹出,但在输出的最后,你应该能看到导致崩溃的具体文件。回到XCode,进入这些文件并开始尝试一些Swift语法以查明问题所在。在我的情况下,这与setAttributeString函数有关,但我见过其他人遇到!和?的问题。
希望这能让你朝着正确的方向前进。
xcodeproj
文件旁边做一些事情以成功编译,所以它找不到 Alamofire 模块。对我来说这个方法管用:xcodebuild -workspace MyProject.xcworkspace -scheme MyScheme
。你需要告诉它编译你的工作区而不仅仅是项目。 - Chris我必须将我的“优化级别”更改为无[-0none]。
目标 > 构建设置 > Swift编译器 > 优化级别。
我的情况有点不同,涉及到枚举和可选类型。为了简单起见,让我们定义
enum Animal {
case Dog
case Cat
}
func exampleAction(animal: Animal) {}
exampleAction(.Cat)
代码在没有参数的情况下可以正常运行。但是一旦我将参数设置为可选,错误就开始出现了。所以这段代码不起作用:
func exampleAction(animal: Animal?) {}
exampleAction(.Cat)
exampleAction(Animal.Cat)
我认为这种情况发生的原因有很多,我遇到的是这种情况,希望能对你有所帮助。
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) ){ [weak self] in
// ...
dispatch_async(dispatch_get_main_queue()) { [weak self] in
// ...
return
}
}
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) ){ [weak self] in
// ...
dispatch_async(dispatch_get_main_queue()) {
// ...
return
}
}
xCode版本是6.1.1。
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc -target arm64-apple-ios8.0 -incremental -module-name SpaceCats -O -sdk /Applic...
-O
是优化标志。
我在项目目录中重新运行了整个命令(根据上面的xcodebuild建议),在所有细节中,我发现了下面的错误:
{
"kind": "finished",
"name": "compile",
"pid": 10682,
"output": "Bitcast requires both operands to be pointer or neither\n %228 = bitcast i8* %227 to %VSs20UnsafeMutablePointer, !dbg !1322\nBitcast requires both operands to be pointer or neither\n %324 = bitcast i8* %323 to %VSs20UnsafeMutablePointer, !dbg !1322\nBitcast requires both operands to be pointer or neither\n %411 = bitcast i8* %410 to %VSs20UnsafeMutablePointer, !dbg !1322\nBitcast requires both operands to be pointer or neither\n %498 = bitcast i8* %497 to %VSs20UnsafeMutablePointer, !dbg !1322\nLLVM ERROR: Broken function found, compilation aborted!\n",
"exit-status": 1
}
如果您想将其输出到文件而不是屏幕,请在末尾添加“ 2>filename”。
然后,我需要在文件中找到pid(10682),以查看它正在编译的内容。 我手动运行了该pid的命令,并为特定文件给出了错误。 然后就可以着手修复代码了。
我看到有很多原因。我的回答并不是一个通用的解决方案,只是提供了另一种导致该错误的情况。在我的情况下,是这样设置按钮标题的:
button!.setTitleColor(.whiteColor(), forState: UIControlState.Normal)
改为这样:
button!.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
可能是相同的问题 XCode 6 GM中的Swift编译错误
我遇到了同样的问题,然后使用git checkout旧版本来查找导致问题的提交,并尝试找到关键问题代码。 我的关键问题代码类似于这个:
func afunc() {
class AClass() {
}
let ac = AClass()
//....
}
其他代码也可能会导致Swift优化出现同样的问题,但是Swift编译器并没有告诉你具体位置。这可能是苹果公司的一个bug。
func base() -> Void {
struct ColorStruct {
var WHITE = ""
init() {
if let PP = delegate.PP {
WHITE = PP.UI.Colors.WHITE
}
}
}
var COLOR = ColorStruct()
}
- Andrew在我的情况下,我更改了3个地方:
目标 > 构建设置 > Swift编译器 >
当我只更改调试时,我会遇到“Source Kit崩溃”的错误...... 这些参数的组合对我来说非常好!
如果您正在使用早期版本的iOS系统中应该使用的某个API,那么您可能会遇到构建失败的问题。
例如:如果您使用UI_USER_INTERFACE_IDIOM()来识别设备类型而不是使用UIDevice.currentDevice().userInterfaceIdiom,那么您将在构建过程中遇到此错误,但没有任何提示。