Xcode 6 Beta无法编译

12

我遇到了以下问题: 我写了我的第一个 Swift 应用程序(针对 iOS7),它可以正常工作。 在更改了一些细节(在某处添加字符串)后,即使我将所有内容都改回原来的样子,它也无法编译。

没有出现任何错误消息或类似的东西,它显示正在构建项目(编译 Swift 源文件),但根本没有进展,即使经过数小时的“构建”仍然是如此。

我已经尝试过使用 Xcode 6 b1 和 b2,并且两者都一样:所有其他项目都可以编译而不会有任何问题,只有这个项目卡住了。

是否有人知道可能是什么问题以及如何解决?


没有任何示例或可重现的代码,我们甚至很难得到线索来了解发生了什么。 - rckoenes
这仍然是一个_beta编译器。 - holex
我现在遇到了同样的问题。这个昨天还好好的,但是下一个构建在“编译Swift源文件”上卡了一整夜。 - Matthew Knippen
5个回答

16

手动调试代码对我非常有效。

最终我发现问题的根本原因是一行中太多的字符串拼接。

有bug的代码:

var string = string1 + string2 + string3 + string4 + string5 + string6 + string7 + string8 

修正后的代码:

var string = string1
string += string2
string += string3
string += string4
string += string5
string += string6
string += string7
string += string8

我遇到了同样的问题。当将一个长的连接分配给字符串时,Xcode会挂起索引文件。我认为这不是编译器问题,而是Xcode的一个bug。我检查了Xcode 6 beta 2到4,结果相同。 - eharo2
当我创建一个包含20个对象的大型字典文字面量,例如["myString": myVariable]时,我也遇到了同样的问题。 - tfrank377
Xcode太糟糕了。我移除了一个有10个以上对象的字面量数组使用,现在编译通过了。 - user1920855
1
对我来说也是一样,但是涉及到数组拼接。 - Devin

2

Xcode 6 Beta有时候没有显示错误,但是你的代码中可能存在错误,导致编译失败。

尝试将代码的不同部分进行注释,然后再重新编译。你需要手动找出错误所在。

我曾经遇到过这个问题,因为我的代码中存在错误,但是并未显示出来。

请手动进行调试。祝好运!


你知道编译器找不到错误是什么吗?这可能会缩小我们要寻找的范围。谢谢! - Matthew Knippen

1
Xcode 6 Beta 5在我使用"+"运算符将3个字符串和一个NSDate对象连接起来后立即陷入了混乱之中。无法编译并卡在索引中。请搜索您的代码以查找长字符串连接并暂时将其删除。这显然是一个错误。

0

你可以尝试以下几件事情:

  1. 清理项目:Product -> Clean
  2. 前往 Product 尝试其他选项,例如 Analyze 或 Profile,看它是否仍然卡在构建阶段。
  3. 重新启动 Xcode
  4. 重启系统
  5. 打开系统控制台并尝试跟踪问题。
  6. 最后但最重要的是,由于它们是 beta 版本,会有一些意外的错误。如果仍无法解决,请向 Apple 报告此问题,并期望在 beta 3 中修复。

  7. 根据您的评论,前往终端并键入:defaults write com.apple.dt.XCode IDEIndexDisable 1


谢谢您的快速回答。 不幸的是,我已经尝试了所有这些方法,但没有任何效果。但我已经意识到索引似乎是问题所在。当我启动Xcode时,它会开始进行索引(处理文件),但从未完成过。我能否在那里清理一些东西或者甚至禁用它? - Luca
请查看我的答案更新,它可以被禁用。 - Anton
我之前在某处读到过这个问题,现在再次尝试了一下,但好像并没有解决。Xcode仍然在尝试索引项目... 然后就卡住了。 - Luca
在终端中执行“killall -KILL XCode”命令。 - Anton
2
这成功地禁用了索引..但现在在构建应用程序时它会变得很慢. - Luca

0

这个 bug 与我们的项目状态和源代码有关。 我回滚了我的项目的一些提交,Xcode 成功索引了我的项目。

在我的情况下,当我的项目有一个大字典的声明时,Xcode 无法索引。(我在删除它后成功索引。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接