无法执行命令:分段错误:11 swift frontend命令由于信号失败(使用-v查看调用)
我有一个iOS快速程序编译和Xcode Beta2上运行良好。 当我下载beta4,我得到了一些语法错误,我修正了新的swift语言。 我现在得到这个错误:
<unknown>:0: error: unable to execute command: Segmentation fault: 11 <unknown>:0: error: swift frontend command failed due to signal (use -v to see invocation)
问题是,它不告诉我这个错误是在哪里,以便我可以进一步排除故障。 我在哪里可以键入-v为了“看到调用”和进一步的疑难解答? 没有这个,就没有办法搞清楚这个问题了。 提前致谢。
以下是我能够找出问题所在:
- 在问题导航器中单击该问题(⌘+ 4,然后单击红色线条开始)
- 在出现的文件的底部,应该有一行说明如下内容:
1. While emitting IR SIL function @_TToZFC4Down8Resource12getInstancesfMS0_U__FTSS6paramsGVSs10DictionarySSPSs9AnyObject__9onSuccessGSqFGSaQ__T__7onErrorGSqFT5errorCSo7NSError8responseGSqCSo17NSHTTPURLResponse__T___T_ for 'getInstances' at /path/to/file.swift:112:5
- 发生错误的位置在该行的末尾。 (在这种情况下,在
getInstances
的file.swift的第112行)。
我试图将PayPal框架添加到我的iOS项目(Xcode 7.2和Objective C语言)。 当build立它没有抛出任何错误,但是当我试图归档项目,并作出IPA,我得到这个错误
无法执行命令:分段错误:11
截图:
经过很长时间的努力,我禁用了Project's Target > Build Settings > Enable Bitcode
。 现在项目可以被存档。 请检查以下屏幕截图。
不能真的给一个直接的解决scheme(虽然我敢肯定这是一个苹果的错误),但我刚刚遇到了完全相同的错误信息,并发生解决它。 以下是我所做的:
一般来说
- 注释掉最近更改的Swift代码(检查提交),直到应用程序再次编译
- 在命令行中单击失败行中的每个被调用的方法,并检查是否可能存在歧义
我的例子
在我的情况下(我正在使用Objective-C编写的XMPPFramework )失败的代码如下所示:
for roomMessage: XMPPRoomMessage in self.messages { let slices = split(roomMessage.nickname(), { $0 == "_" }, allowEmptySlices: false) }
一旦我用"0_test"
replace了roomMessage.nickname()
,代码没有再失败。 所以我命令点击方法nickname()
(两次),这就是我所看到的:
我的猜测是Swift 1.1编译器在确定某个对象的确切types不清楚的时候遇到了调用哪个方法的问题。 所以我做了roomMessage
types的显式,并得到了另一个错误,我通过消除nickname()
方法调用背后的大括号。 这使我的应用程序再次build立。 这是工作代码:
for roomMessage: XMPPRoomMessageCoreDataStorageObject in self.messages { let slices = split(roomMessage.nickname, { $0 == "_" }, allowEmptySlices: false) }
我希望这能帮助那里的人比我更快地调查这个问题。
在我的情况下,这个错误,因为我使用类名称的variables
var MYClass : MYClass { get { return..... } }
这解决了我的问题
var myClass : MYClass { get { return..... } }
我的问题是,我试图用所谓的模块方法(模块devise模式)模仿静态variables。 所以,我有这样的东西(只是一个简单的静态引用到在swift文件级别声明的操作队列):
let globalQueue: NSOperationQueue = { let queue = NSOperationQueue() queue.suspended = false queue.maxConcurrentOperationCount = NSOperationQueueDefaultMaxConcurrentOperationCount return queue }()
所以,在Xcode 6.xx中工作得很好,但是停止在Xcode 7beta中编译。 只是想让你们知道这一点。 PS通常,我设法找出日志中有 什么问题 (请参阅附加的屏幕截图)。 希望这可以为你节省一些时间。
我也有同样的问题,
- 当我清理派生的数据
- 从“垃圾箱”中删除所有已删除的派生数据。
- 停止
xCode
,重新启动并清理构build
现在应该修好了。
当我调用协议function相同的协议扩展时,我得到分段错误。
我有一个代码的东西在这一行:
protocol Rotatable { func rotate() -> Self } extension Rotatable { func rotate(steps: Int) { for _ 0..<steps { self.rotate() } } }
当我后来做了一个对象,并宣布它将遵循可旋转协议,我得到了分段错误11和程序崩溃。
例如: 这会导致分段错误和Xcode崩溃
struct SomeStruct : Rotatable { }
如果我首先在SomeStruct中实现了rotate()函数,然后声明它符合Rotatable那里没有问题。
我今天有类似的,并尝试了这里描述的步骤,包括删除我最近修改的文件。 似乎没有任何工作。 我尝试了一些SourceKit会在Xcode中崩溃的提示。
我进入派生的数据目录,并删除了一切。 该位置在“首选项 – >位置 – >派生数据”下列出。path旁边有一个箭头图标,用于select该目录来打开查找器。 select里面的所有目录并删除它们。 closuresXcode并重新打开它。 这使我的问题消失了。
我认为一些中间文件被损坏,编译器不知道如何处理它。
我得到这个错误,因为一个愚蠢的错误!
在我定义的类中
var url: String!?
🙂
所以看来,这个描述是一个多重和一般的错误,原因很多!
我在“ 编译时Swift编译器分段错误 ”
我也有这个错误,我解决这个问题:
检查你的项目,并找出哪些文件正在使用两次,删除一个,或删除所有,并重新添加它们。
在我的xCode错误
:0:error:filename“AttributedString.swift”使用两次:'/Users/…/CNJOB/CNJOB/AttributedString.swift'和'/Users/…/CNJOB/CNJOB/AttributedString.swift'
:0:注意:文件名用于区分具有相同名称的私有声明
:0:错误:文件名“APIClient.swift”使用两次:'/Users/…/CNJOB/CNJOB/APIClient.swift'和'/Users/…/CNJOB/CNJOB/APIClient.swift'
:0:注意:文件名用于区分具有相同名称的私有声明
命令/应用程序/ Xcode 3.app /内容/开发工具/ XcodeDefault.xctoolchain / usr / bin / swiftc失败,退出代码1
对我来说,这是由于将swift文件添加到不同的目标(今天是扩展名)。
我忘了在@implementation
之后添加一个@end
,在其中有多个classes
的.m
文件中。 就像是:
@implementation Adjust @end @implementation Data //@end For this class was missing @implementation Create @end
我得到这个错误,因为线
self.textView.inputAccessoryView = self.toolbarItems;
如果删除它,错误将消失。
我的步骤:1)
- 删除派生数据
- 清理生成文件夹没有帮助
- 将类文件复制到另一个文件夹作为备份并评论此类中的所有内容。 错误消失了
- 评论代码块一个接一个,直到构build成功。
对我来说问题是混合Generics
, Extensions
和@objc
。
事实certificate,Xcode不喜欢在generics类的扩展中使用@objc
:
class FaultyClass<T: TypeValidator>: UIControl where T.ItemType == String { } extension FaultyClass: UITextFieldDelegate { func textFieldDidEndEditing(_ textField: UITextField) { } }
上面的代码给出了@objc is not supported within extensions of generic classes
的错误。 所以我把这个方法移到了类本身,但并没有删除空的扩展名。 这摆脱了错误,但是当我编译项目时,我得到了分段错误 。
解决scheme是将UITextFieldDelegate
移动到类声明。
class GoodClass: <T: TypeValidator>: UIControl, UITextFieldDelegate where T.ItemType == String { // MARK: - TextFieldDelegate func textFieldDidEndEditing(_ textField: UITextField) { } }
从beta2切换到beta4时遇到了类似的问题。 我希望这些说明是有帮助的。
清洁
然后
build立