XCode 6 GM:编辑Swift代码时不断冻结/锁定

时间:2023-01-23 18:20:56

Since installing XCode 6 GM, it has been freezing and locking, showing the spinning wheel of death while I attempt to edit code that has syntax errors. Has anyone else seen this, and are there any known work-arounds?

自从安装XCode 6 GM以来,它一直处于冻结和锁定状态,在我尝试编辑具有语法错误的代码时显示死亡的旋转轮。有没有其他人看过这个,有没有任何已知的解决方案?

I foolishly abandoned my cautious strategy of saving the previous version (Beta 7) and it appears that Beta 7 is no longer available for download. Are there any known archives of / for the link?

我愚蠢地放弃了保存以前版本(Beta 7)的谨慎策略,似乎Beta 7不再可供下载。是否有任何已知的链接档案?

I have also posted to the dev forums and will follow up with a bug report, but it is hard to pin down the exact circumstances.

我还发布了开发论坛,并将跟进一个错误报告,但很难确定具体情况。

Edit:

Additonal Notes:

CPU: SourceKit Service is generally around 100%, but that has seem to have been the norm for the flavors of XCode, and the CPU seems to properly drop off when it finishes recompiling.

CPU:SourceKit服务通常约为100%,但这似乎已成为XCode风格的标准,并且CPU在完成重新编译时似乎正常掉线。

RAM: SourceKit is no longer exhibiting the memory leaks that used to cause it to halt and catch fire, memory does not appear to be a factor, and there are several ~ 5+ gigs to spare.

RAM:SourceKit不再显示曾经导致其停止和着火的内存泄漏,内存似乎不是一个因素,并且有几个~5 +以上的演出。

Environment:

Late 2012 Mac Mini, 16GB RAM OS X 10.9.4 (to be fair, this was new today as well, driven by the requirements of XCode 6 GM).

2012年末Mac Mini,16GB RAM OS X 10.9.4(公平地说,这也是今天新推出的,由XCode 6 GM的要求驱动)。

That said, only the software changed today.

也就是说,今天只有软件改变了。

Update

Apple claims that this bug is fixed in Beta 6.1, for what it's worth.

Apple声称此漏洞已在Beta 6.1中修复,因为它的价值。

3 个解决方案

#1


2  

You should look if you have any imports missing in your bridging header file. Sometimes even commented out imports will cause this behaviour. For me it was commented out Pixate Freestyle Cocoa Pod. I had to remove pod completely from my project to stop SourceKitService from crashing.

您应该查看桥接头文件中是否缺少任何导入。有时甚至注释掉导入都会导致这种行为。对我来说,这是Pixate Freestyle Cocoa Pod的评论。我不得不从我的项目中完全删除pod以阻止SourceKitService崩溃。

https://*.com/a/25173389/527539

#2


0  

I can't say any of these fixed the issue, but they alleviated the situation:

我不能说这些问题解决了这个问题,但它们缓解了这种情况:

  1. I removed all playgrounds from the project tree. Saved them somewhere else.
  2. 我从项目树中删除了所有游乐场。将它们保存在其他地方。

  3. I removed all objectiveC code from the swift project (when possible). This Spinning-wheel, BTW, is a problem only in my swift projects. My other Objective-C-only projects are fine.
  4. 我从swift项目中删除了所有objectiveC代码(如果可能)。这个旋转轮BTW只是我的快速项目中的一个问题。我的其他Objective-C项目很好。

  5. It looks like it's the background indexing process which is taking all the CPU. Open "Activity Monitor" and see it right there at the top, using 360% CPU. Lowering the priority for this process helped as well (type in terminal):

    看起来它是占用所有CPU的后台索引过程。打开“活动监视器”并使用360%CPU在顶部看到它。降低此过程的优先级也有帮助(键入终端):

    renice 10 -p [pid]

    renice 10 -p [pid]

    Make sure to take the correct process id from Activity Monitor. The higher the number (should not exceed 19) the lower the priority.

    确保从活动监视器中获取正确的进程ID。数字越高(不应超过19),优先级越低。

  6. I make significant changes one at a time. It seems that the amount of errors in the file affect how many times and for how long the spinning wheel spins. It looks like some type of errors trigger it more often than others, but I'm not able to pin point which exactly.

    我一次做一个重大的改变。似乎文件中的错误数量会影响旋转轮旋转的次数和长度。看起来某些类型的错误比其他错误更频繁地触发它,但我无法确切指出哪一个。

XCode had a similar indexing issue in previous versions (see this Xcode4 issue: How to disable indexing in Xcode 4?) which gives me the hope they will fix this issue sometime, hopefully soon...

XCode在以前的版本中有类似的索引问题(请参阅此Xcode4问题:如何禁用Xcode 4中的索引?)这让我希望他们有时会解决这个问题,希望很快......

#3


0  

I create a new tab via menu File->New Tab and close the old tab that is frozen.

我通过菜单File-> New Tab创建一个新选项卡,然后关闭冻结的旧选项卡。

CmdT does not work that time.

CmdT当时不起作用。

#1


2  

You should look if you have any imports missing in your bridging header file. Sometimes even commented out imports will cause this behaviour. For me it was commented out Pixate Freestyle Cocoa Pod. I had to remove pod completely from my project to stop SourceKitService from crashing.

您应该查看桥接头文件中是否缺少任何导入。有时甚至注释掉导入都会导致这种行为。对我来说,这是Pixate Freestyle Cocoa Pod的评论。我不得不从我的项目中完全删除pod以阻止SourceKitService崩溃。

https://*.com/a/25173389/527539

#2


0  

I can't say any of these fixed the issue, but they alleviated the situation:

我不能说这些问题解决了这个问题,但它们缓解了这种情况:

  1. I removed all playgrounds from the project tree. Saved them somewhere else.
  2. 我从项目树中删除了所有游乐场。将它们保存在其他地方。

  3. I removed all objectiveC code from the swift project (when possible). This Spinning-wheel, BTW, is a problem only in my swift projects. My other Objective-C-only projects are fine.
  4. 我从swift项目中删除了所有objectiveC代码(如果可能)。这个旋转轮BTW只是我的快速项目中的一个问题。我的其他Objective-C项目很好。

  5. It looks like it's the background indexing process which is taking all the CPU. Open "Activity Monitor" and see it right there at the top, using 360% CPU. Lowering the priority for this process helped as well (type in terminal):

    看起来它是占用所有CPU的后台索引过程。打开“活动监视器”并使用360%CPU在顶部看到它。降低此过程的优先级也有帮助(键入终端):

    renice 10 -p [pid]

    renice 10 -p [pid]

    Make sure to take the correct process id from Activity Monitor. The higher the number (should not exceed 19) the lower the priority.

    确保从活动监视器中获取正确的进程ID。数字越高(不应超过19),优先级越低。

  6. I make significant changes one at a time. It seems that the amount of errors in the file affect how many times and for how long the spinning wheel spins. It looks like some type of errors trigger it more often than others, but I'm not able to pin point which exactly.

    我一次做一个重大的改变。似乎文件中的错误数量会影响旋转轮旋转的次数和长度。看起来某些类型的错误比其他错误更频繁地触发它,但我无法确切指出哪一个。

XCode had a similar indexing issue in previous versions (see this Xcode4 issue: How to disable indexing in Xcode 4?) which gives me the hope they will fix this issue sometime, hopefully soon...

XCode在以前的版本中有类似的索引问题(请参阅此Xcode4问题:如何禁用Xcode 4中的索引?)这让我希望他们有时会解决这个问题,希望很快......

#3


0  

I create a new tab via menu File->New Tab and close the old tab that is frozen.

我通过菜单File-> New Tab创建一个新选项卡,然后关闭冻结的旧选项卡。

CmdT does not work that time.

CmdT当时不起作用。