Xcode游乐场被困在'Running playground'或'启动模拟器'上并且不会运行代码,该怎么办?

时间:2016-10-11 13:13:05

标签: ios xcode xcode8

每次我为了测试一些代码而创建一个新游乐场时,Xcode都会卡住并且不会运行代码。它只是在屏幕顶部显示“Running playground”或“Launching simulator”语句,加载图标很可能在它旁边旋转,但没有任何反应。有时这会无限期地继续,有时Xcode会停止并将其打印到控制台:

Playground execution failed: error: Couldn't lookup symbols:
__swift_FORCE_LOAD_$_swiftCoreImage 
__swift_FORCE_LOAD_$_swiftFoundation 
_playground_log_hidden 
_playground_logger_initialize 
_playground_log_postprint 

thread #1: tid = 0xc0cd0, 0x000000010ea7c3c0 MyPlayground`executePlayground, queue = 'com.apple.main-thread', stop reason = breakpoint 1.2

frame #0: 0x000000010ea7c3c0 MyPlayground`executePlayground
frame #1: 0x000000010ea7b9c0 MyPlayground`__37-[XCPAppDelegate enqueueRunLoopBlock]_block_invoke + 32 
frame #2: 0x000000010f59625c CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
frame #3: 0x000000010f57b304 CoreFoundation`__CFRunLoopDoBlocks + 356
frame #4: 0x000000010f57aa75 CoreFoundation`__CFRunLoopRun + 901
frame #5: 0x000000010f57a494 CoreFoundation`CFRunLoopRunSpecific + 420
frame #6: 0x0000000114985a6f GraphicsServices`GSEventRunModal + 161
frame #7: 0x0000000110124f34 UIKit`UIApplicationMain + 159
frame #8: 0x000000010ea7b6e9 MyPlayground`main + 201
frame #9: 0x0000000112ad268d libdyld.dylib`start + 1
frame #10: 0x0000000112ad268d libdyld.dylib`start + 1

我在macOS Sierra 10.12上运行Xcode 8.0(8A218a)。

硬件
MacBook Pro(13“2012年中期)
2,5 GHz Intel Core i5
4 GB 1600 MHz Ram DDR3

我环顾四周,但至少这些线程都没有提供答案:
https://forums.developer.apple.com/thread/5902
https://github.com/jas/playground/issues/9

我已经尝试过的事情没有成功:

  • 重新启动Xcode
  • 重新安装Xcode(降级到7.3,但因为那对我没有帮助 升级回8.0)
  • 重新启动机器
  • 创建一个新游乐场

您对如何解决此问题有任何想法吗?我是编程新手,急切地想学习Swift,但是Xcode几乎不可能......

提前谢谢,干杯。

24 个答案:

答案 0 :(得分:135)

答。 切换到macOS平台

创建Playground时,默认选择iOS平台并自动导入UIKit。 这是UIKit一直崩溃和卡住。如果您的(练习)代码不使用UIKit,那么您可以切换到MacOS平台。由于主要(不完全相同)iOS和macOS之间的区别在于APPKit和UIKit。

在Xcode Playground的右上角,点击显示/隐藏实用程序 - >文件检查员 - >游乐场设置 - >平台 - > macOS

请参阅下面的screenShot: enter image description here

答案 1 :(得分:62)

我尝试了以下内容,它对我有用:

  1. 按下底部"停止操场"按钮
  2. 删除第一个注释行并使import语句成为第一个 线。导入上方没有空格。
  3. 按下执行按钮

答案 2 :(得分:51)

在我的情况下,Xcode 8.3.2,当我尝试以下步骤时它起作用:

  1. 文件 - >关闭" Name.playground"
  2. 文件 - >关闭游乐场
  3. 退出Xcode
  4. 重新打开Xcode

答案 3 :(得分:47)

即使在Xcode关闭后,Buggy Simulator的主要流程仍然有效。所以这里的步骤是:

  1. 退出Xcode;
  2. 在活动监视器中杀死com.apple.CoreSimulator.CoreSimulatorService进程;
  3. 启动Xcode并运行您的Playground。

答案 4 :(得分:19)

根据我的经验,你应该:

  1. 通过按住:Playground左下角的►箭头并选择“手动运行”来防止Swift游乐场刷新
  2. 退出Xcde
  3. 重启Xcode
  4. 效果很好。

答案 5 :(得分:15)

我已取消第一行的评论。它为我解决了。 关闭并重新启动Xcode并强制退出活动监视器中的com.apple.coresimulator后,请务必尝试

答案 6 :(得分:11)

添加导入PlaygroundSupport为我解决了问题:)

答案 7 :(得分:5)

您可以切换到手动处理。它对我有用。 screenshot

答案 8 :(得分:2)

我遇到了同样的问题,我所做的就是打开协助编辑器,即使我关闭了协助编辑器,一切正常!不要问为什么它是反复试验的。希望这会对你有所帮助

答案 9 :(得分:2)

在最终终止之前,请确保在活动监视器中终止xcode 活动监视器中的 com.apple.CoreSimulator.CoreSimulatorService 进程。我尝试杀死该进程多次,但我意识到如果xcode仍在后台活动中运行,那么即使您刚刚杀死了它, com.apple.Core.imimplier.coresimulatorservice 进程仍会再次弹出。

答案 10 :(得分:1)

对我来说,问题在于 MyPlayground正在同步到iCloud 。 Xcode每隔几秒钟就会保存一次文件,并导致“不响应”状态。

所以有一个简单的解决方案-只需转到:

系统偏好设置-Apple ID-在Mac上使用iCloud的应用程序-iCloud Drive-选项-然后取消选中“游乐场”

这个小窍门有助于解决冻结的“运行中”问题。

Prevent Playgrounds from syncing

答案 11 :(得分:1)

经过几个小时的努力,我意识到我不小心删除了这个非常重要的行,可以在将我的游乐场提交到git之前测试UIKit元素:

// Present the view controller in the Live View window
PlaygroundPage.current.liveView = MyViewController()

面筋。希望这可以帮助某人将头发拉出几个小时。

答案 12 :(得分:0)

在 Xcode Playground 中加快构建速度并防止加载图标永远旋转:

  1. 转到右侧边栏,将 iOS 中的 macOS 更改为 Playground Settings
  2. 不是导入 UIKit,而是导入 Foundation

(如果您不想使用 UIKit 框架中的特定内容,这将起作用)

答案 13 :(得分:0)

XCode 12.3 仍然发生同样的问题。

我的解决方案是 Command + Q(重新启动 Xcode)

答案 14 :(得分:0)

好像这个问题没有足够的答案,我将为陷入困境的Swift游乐场问题提供“解决方案”:

我遇到的一个对我来说很好的解决方案(因此,我不必重新启动Xcode):

killall launchd_sim

这将导致旋转的“正在运行的游乐场...”消失,您可以触发新的执行。请注意:下一次执行将加速launchd_sim,所有这些子进程将再次启动。最好仅杀死相关的子进程。但到目前为止我还没有找到。

但是我仅在不并行使用iOS模拟器时才这样做,因为launchd_sim进程是Simulator的子进程。

答案 15 :(得分:0)

就像我的情况一样,当您定义一个函数但忘记了调用它时,也会发生这种情况吗?

答案 16 :(得分:0)

我删除了派生数据并清理了构建文件夹,这对我有用。我在同一台计算机上面对XCode 11.2.1和Xcode 10.1

答案 17 :(得分:0)

就我而言,问题是用户引起的。我显示了助理编辑器,但未选择实时取景。确保它看起来像这样:

LiveView

不是这样的:

enter image description here

答案 18 :(得分:0)

我正在使用XCode 10.2,并且遇到了相同的问题。因此,通常只需使用Online Swift Playground

这符合我的目的! :-)

答案 19 :(得分:0)

运行一段时间后,你会看到错误信息然后你去 view> debug area>激活控制台 然后再玩一次 为我工作

答案 20 :(得分:-1)

对我有用的最后一条提示: 确保没有iOS模拟器正在运行。 他们彼此冲突。

答案 21 :(得分:-1)

首先,删除内置的注释行。

然后,即使您重新输入第一行注释,它也仍然有效。 enter image description here

答案 22 :(得分:-1)

检查iCloud存储计划!

如果确实有一个,它将持续同步包括Desktop和Document文件夹在内的整个计算机。 而是尝试在主文件夹中创建一个“本地文件”文件夹(command + shift + h),并将您的Playground项目保存在该文件夹中,该项目不会同步到iCloud。

这对我有用。我希望这对您也有用! :)

答案 23 :(得分:-1)

我遇到了同样的问题,但经过谷歌搜索和实验后,我发现在导入任何其他库之前必须始终import UIKit