我在存档上收到此错误:
命令/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc失败,退出代码为1
如何解决?
请参阅截图。
答案 0 :(得分:98)
对于发布, Swift优化级别未设置为无时,会出现此问题。将值设置为无,问题就会消失。
修改的
升级到Xcode 6.1后,这些指令在归档时会产生其他问题(构建调试/设备工作正常)。将优化设置为Fastest允许我再次存档。 Swift编译仍存在明显问题(具体归档)。
Can't archive working 6.0.1 Swift project in Xcode 6.1 / Segmentation fault: 11
修改的 在我阅读此答案之前,我无法为Build Settings选项卡提供资金。
答案 1 :(得分:34)
当我有两个完全相同的文件时,这种情况发生在我身上,当我失踪的时候,我也知道我已经删除了。我点击了错误消息,在错误上方,它显示了您有多于1个或缺少的文件。
答案 2 :(得分:16)
您可以点击导航中的产品,然后选择"清洁"按钮;它将清除项目中的所有编译错误。然后,您可以调试最新的错误。
答案 3 :(得分:8)
删除文件引用保留在构建阶段,这就是它给出此错误的原因。从那里删除引用。
项目>目标>构建阶段
在此部分下,您将找到红色的已删除文件。删除这些文件错误将解决。
答案 4 :(得分:4)
我不确定它是否有一个解决方案。 我建议您检查上次git提交之间的差异,并评论/更改更改。
就我而言,我的代码是
let anArray = ResultDict["ResultSet"] as [[NSDictionary : AnyObject]]
for aDict : NSDictionary in anArray {
let anObject = ObjectType(ObjectDict: aDict)
objectList.addObject(aDict)
}
没有警告就行,我得到了相同的退出1编译错误 然后我把它改成了它编译的下面。
let anArray = ResultDict["ResultSet"] as [[NSDictionary : AnyObject]]
for aDict in anArray {
let anObject = ObjectType(ObjectDict: aDict)
objectList.addObject(aDict)
}
答案 5 :(得分:3)
当我没有在函数调用结束时放置括号时,它发生在我身上:
let var = self.getNextPrimeNumber
解决了它:
let var = self.getNextPrimeNumber()
答案 6 :(得分:3)
就我而言,它是由我的项目目录中使用相同名称的重复文件引起的。一旦我删除它们,错误就消失了。
答案 7 :(得分:3)
我不知道这是否真的是一个答案,但是......
我有同样的问题。应用程序在构建/运行时工作,但归档失败,“... swiftc失败,退出代码为1”,没有任何其他有用的消息。幸运的是,当我尝试使用Nomad's ipa build
构建我的应用时,我得到了:
The following build commands failed:
CompileSwift normal arm64 /path/to/erroneous/TableViewController.swift
所以我开始评论该文件的各个部分并将问题跟踪到一个元组赋值。
// MARK: - Table Data
private var tableData: [(sectionName: String, item:ListItem)] = []
private func refreshTableData() {
// let labor = ("Labor", laborListItem) // DOESN'T ARCHIVE
let labor = (sectionName: "Labor", item: laborListItem) // ARCHIVES
tableData = [labor]
tableView.reloadData()
}
显然,编译器希望命名元组中的元素(由tableData
的类型定义)..但仅用于存档?愚蠢的是,我在其他视图控制器中使用相同的模式,编译器似乎很好。
对于记录,我的Code Generation -> Optimization Level
设置为无以进行调试和发布。
希望这有助于某人!花了几个小时来解决这个问题。
答案 8 :(得分:1)
当我使用swift文件中的静态内联函数
时,发生了这种情况该功能如下所示
static inline void openURLInSafari(NSString * _Nonnull urlString) {
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:urlString]];}
答案 9 :(得分:1)
此错误来自丢失的文件,因此编译器无法找到文件并保持警报。 请按照以下步骤重建您的应用:
答案 10 :(得分:1)
我刚刚发生了同样的事情。我将原因追捕到一个文件,即使在空的时候也会导致错误。检查文件,我发现它有错误的字符集。当我将其设置为UTF-8时,错误消失了。我认为它是用错误的字符集解码它。
由此我猜测错误只是表明发生了编译器没准备好的事情。抱歉,这对大多数人来说不是很有帮助,但可能有助于检查您的角色集。
答案 11 :(得分:1)
如果使用Core Data
:
我有一个Core Data实体,我为其创建了NSManagedObject
子类(使用Xcode的帮助)。此外,实体配置为自动生成代码(参见屏幕截图),因此在运行时基本上存在2个类。只需将选项切换为手动/无,它就不会生成它。
答案 12 :(得分:1)
我注意到我的一些.swift文件莫名其妙地出现在错误的目录中 - 比我的Xcode项目目录高一级,这个错误发生在我身上。当我注意到这一点时,我将它们移动到主项目目录中并清理了项目,认为一切都会好的。但是,在构建项目时,我得到了上述“失败并退出代码1”错误。在错误消息的正上方,它列出了我刚刚移动的文件,表明它无法在以前的目录中找到它们。除了错误消息之外,我移动的文件现在在文件导航窗格中显示为红色。
对于每个有问题的文件,我要解决的问题是: - 从Xcode文件导航窗格中的文件列表中选择文件, - 单击Xcode最右侧窗格中的小页面图标,打开文件属性窗格, - 单击文件属性窗格中“位置”下方的小文件夹图标, - 选择文件的新位置, - 重新启动Xcode以实现上述更改。
答案 13 :(得分:1)
另外一个可能导致此错误的案例,这个错误花了我几个小时来追踪:一个总是返回nil的可用初始化程序。
我有一个看起来像这样的初始化程序:
init?(object: MyObject) {
if object.importantProperty {
// initialize
}
return nil
}
当我的意思是:
init?(object: MyObject) {
if object.importantProperty {
// initialize
}
else {
return nil
}
}
修复初始化程序使错误消失。
答案 14 :(得分:0)
在我的情况下,错误是由Xcode生成的丢失文件的结果。我尝试了常规清理选择 + Shift + K 并且它没有清除所有错误。我在Apple Developer网站上发现了一篇帖子,建议转到Xcode的Product Menu,按住opt键,然后选择Clean Build Folder。这似乎是一个更全面的构建,因为它会弹出一个模式对话框供您确认。
答案 15 :(得分:0)
所以,我有上述内容并将其缩小到TFS问题并锁定文件但仅在我粘贴或进行除小副本或手动输入之外的任何其他编辑时。我注意到原始文件会编译,但我的编辑不会,即使它们语法正常。另外相关无法保存文档:xcode The document "..." could not be saved
两者的解决方案是:
瞧。懒惰的方式绕过合并锁定问题。显然,完整的文件粘贴很好,而编辑则不行。共享,因为其他答案似乎并不像这样懒。 ;) 注意:我怀疑非UTF-8字符在某处出现,但是粘贴在旧版本中工作,所以我不知道在哪里,或者是否相关。
答案 16 :(得分:0)
在我的案例中,选择了快速开发快照而不是xcode 9.2。这是步骤和图像。
答案 17 :(得分:0)
check" Development Pods"文件夹列出所有框架路径。
答案 18 :(得分:0)
可能发生这种情况的一个可能原因可能是因为您删除了一个文件但未删除对它的引用。这会弄乱pbxproj文件。我会检查是否是这种情况。
答案 19 :(得分:0)
我有一个非常类似于RyanM的分辨率,其中有过多的傲慢我试图将变量赋值给内部函数的默认值:
无法编译(虽然不会导致SourceKit崩溃):
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
func itemCell(_ indexPath: IndexPath = indexPath) -> UITableViewCell {//...}
成功:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
func itemCell(_ indexPath: IndexPath) -> UITableViewCell {//...}
答案 20 :(得分:0)
执行git merge后我遇到了这个错误。我解决了新的Xcode警告,可以编译项目。
在我的情况下使用Xcode 7.2.1。
答案 21 :(得分:0)
就我而言,在你的项目目标Build Setttings中,在其他Swift标志中,jsut删除字符串“-serialize-debuggin-options” enter image description here
答案 22 :(得分:0)
以我的方式,错误是由于UIDevice.currentDevice()
((UIDevice.currentDevice().systemVersion as NSString).floatValue >= 8.0)
造成的
评论完毕后,一切正常。
XCode 7.2
答案 23 :(得分:-1)
只需转到"项目设置"并点击"构建phaces"之后,您将找到目标,因为您必须删除测试文件,例如我的项目名称" WER"因此它显示为WER& TEST所以只需删除并清理你的项目并运行.........