无法执行命令:分段错误: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为了“看到调用”和进一步的疑难解答? 没有这个,就没有办法搞清楚这个问题了。 提前致谢。

以下是我能够找出问题所在:

  1. 在问题导航器中单击该问题(⌘+ 4,然后单击红色线条开始)
  2. 在出现的文件的底部,应该有一行说明如下内容:

1. While emitting IR SIL function @_TToZFC4Down8Resource12getInstancesfMS0_U__FTSS6paramsGVSs10DictionarySSPSs9AnyObject__9onSuccessGSqFGSaQ__T__7onErrorGSqFT5errorCSo7NSError8responseGSqCSo17NSHTTPURLResponse__T___T_ for 'getInstances' at /path/to/file.swift:112:5

  1. 发生错误的位置在该行的末尾。 (在这种情况下,在getInstances的file.swift的第112行)。

我试图将PayPal框架添加到我的iOS项目(Xcode 7.2和Objective C语言)。 当build立它没有抛出任何错误,但是当我试图归档项目,并作出IPA,我得到这个错误

无法执行命令:分段错误:11

截图:

在这里输入图像说明

经过很长时间的努力,我禁用了Project's Target > Build Settings > Enable Bitcode 。 现在项目可以被存档。 请检查以下屏幕截图。

在这里输入图像说明

不能真的给一个直接的解决scheme(虽然我敢肯定这是一个苹果的错误),但我刚刚遇到了完全相同的错误信息,并发生解决它。 以下是我所做的:

一般来说

  1. 注释掉最近更改的Swift代码(检查提交),直到应用程序再次编译
  2. 在命令行中单击失败行中的每个被调用的方法,并检查是否可能存在歧义

我的例子

在我的情况下(我正在使用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不清楚的时候遇到了调用哪个方法的问题。 所以我做了roomMessagetypes的显式,并得到了另一个错误,我通过消除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通常,我设法找出日志中有 什么问题 (请参阅附加的屏幕截图)。 希望这可以为你节省一些时间。 在这里输入图像说明

我也有同样的问题,

  1. 当我清理派生的数据
  2. 从“垃圾箱”中删除所有已删除的派生数据。
  3. 停止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)

  1. 删除派生数据
  2. 清理生成文件夹没有帮助
  3. 将类文件复制到另一个文件夹作为备份并评论此类中的所有内容。 错误消失了
  4. 评论代码块一个接一个,直到构build成功。

在这里输入图像说明

对我来说问题是混合GenericsExtensions@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立

Interesting Posts