Xcode 游乐场卡在“正在运行的游乐场”或“启动模拟器”上,不能运行代码,该怎么办?

每次我为了测试一些代码而创建一个新的操场时,Xcode 都会卡住而不能运行这些代码。它只是在屏幕顶部显示“正在运行的操场”或“启动模拟器”语句,加载图标在旁边旋转,但什么也没有发生。有时这种情况会无限期地持续下去,有时 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寸)
2.5 GHz 英特尔酷睿 i5
4 GB 1600 MHz 内存 DDR3

我看了看周围,但至少这些线索都没有给出答案:
Https://forums.developer.apple.com/thread/5902
Https://github.com/jas/playground/issues/9

我已经尝试过但毫无成效的事情:

  • 重启 Xcode
  • 重新安装 Xcode (降级到7.3,但由于这没有帮助我 升至8.0)
  • 重启机器
  • 创造一个新的游乐场

你对如何解决这个问题有什么想法吗?我对编程还是个新手,急切地想学习 Swift,但是 Xcode 让它变得几乎不可能... ..。

先谢谢你,干杯。

97081 次浏览

添加导入 Playground Support 为我解决了这个问题:)

我已经取消了第一行的注释,它解决了我的问题。 确保在关闭并重新启动 Xcode 之后尝试它,并从 Activity Monitor 中强制退出 com.apple.coreSimulator

我尝试了以下方法,它对我很有效:

  1. 按下底部的“停止操场”按钮
  2. 删除第一个注释行,并使 import 语句成为第一个 进口上没有空格。
  3. 按执行按钮

运行一段时间后,您将看到错误消息,然后您去 视图 > 调试区域 > 激活控制台 然后再玩一次 对我有用

我当时也面临着同样的问题,但是在谷歌和实验了一下之后,我发现在导入任何其他的库之前,必须总是使用 import UIKit

在我的例子中,Xcode 8.3.2在我尝试以下步骤时可以工作:

  1. 档案-> 关闭「名称游乐场」
  2. 档案-> 关闭游乐场
  3. 退出 Xcode
  4. 重新打开 Xcode

我也有同样的问题,我所做的就是打开 Assistant 编辑器,即使我关闭了 Assistant 编辑器,一切都运行良好!别问我为什么要反复试验。希望这个能帮到你

根据我的经验,你应该:

  1. 防止斯威夫特游乐场刷新,按住: 选择位于游乐场左下角的箭头,然后选择“手动运行”
  2. 退出 Xcode
  3. 重启 Xcode

效果很好。

你可以切换到手工处理,对我很有效。 screenshot

即使在 Xcode 关闭之后,Buggy Simulator 的主进程仍然可以工作:

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

Ans 切换到 macOS 平台

创建 Playground 时,默认情况下它会选择 iOS 平台并自动导入 UIKit。这是 UIKit 的崩溃和卡住所有的时间.如果您的(实践)代码不使用 UIKit,那么您可以 切换到 MacOS 平台。因为 iOS 和 macOS 之间的 少校(虽然不是精确的)区别在于 APPKit 和 UIKit。

在 Xcode Playground 的右上角,单击 show/hide Utitility —— > file spector —— > Playground Set —— > Platform —— > macOS

见下面的截图: enter image description here

检查 iCloud 存储计划!

如果你有一个,它不断同步整个计算机,其中包括桌面和文档文件夹。 相反,尝试在 Home 文件夹(command + shift + h)中创建一个“ Local Files”文件夹,并将 Playground 项目保留在那里,它不会同步到 iCloud。

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

首先,删除内置的评论行。

然后,即使你把第一行的注释放回去,它仍然可以工作。 enter image description here

最后一个对我有用的建议: 确保没有 iOS 模拟器在运行。 他们互相冲突。

确保在最终杀死之前杀死活动监视器中的 xcode Com.apple.核心模拟器。活动监视器中的 CoreSimulatorService 进程。我曾多次尝试终止该进程,并意识到如果 xcode 仍然在后台活动中运行,那么即使您刚刚终止了它,Com.apple. CoreSimulator. CoreSimulatorService进程也会再次弹出。

我使用的是 Xcode 10.2,也遇到了同样的问题

这就是我的目的! : -)

在我的案例中,问题是由使用者引起的。我展示了助理编辑,但是没有选择实时视图。确保它看起来像这样:

LiveView

不是这样的:

enter image description here

我删除了派生数据和清理生成文件夹。这对我有用。我在同一台机器上面对的是 Xcode 11.2.1和 Xcode 10.1。

在我的例子中,当您定义了一个函数,但是忘记调用它时,也会发生这种情况?

如果这个问题没有足够的答案,我将提供我的“解决方案”,以解决斯威夫特游乐场的问题:

我遇到的一个解决方案很适合我(这样我就不必重新启动 Xcode) :

killall launchd_sim

这将导致旋转的“运行游乐场...”消失,你可以触发一个新的执行。请注意: 下一次执行将再次启动 launchd_sim和所有这些子进程。最好只关闭相关的子进程。但我目前还没找到。

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

经过几个小时的反复思考,我意识到我不小心删除了这句非常重要的话,它允许我在把我的游乐场变成 Git 之前测试 UIKit 元素:

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

掌上电脑,希望这能帮助人们避免几个小时的头发被扯掉。

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

因此,有一个简单的解决方案——只要去:

系统偏好-苹果 ID-使用 iCloud-iCloud 硬盘-选项-然后是 不要选“游乐场”

这个小技巧可以帮助解决“跑步”的问题。

Prevent Playgrounds from syncing

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

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

为了加快在 Xcode Playground 的构建速度,防止载入图标永远不停地旋转:

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

(如果您不尝试使用来自 UIKit框架的特定内容,那么这种方法就可以工作)

我得到了这个答案: 约阿尼斯 · 迪亚曼蒂斯-如何修复 Xcode Playground 陷入“逃跑”的困境。 我使用的是 Xcode 版本13.2.1和 Mac Mini M1。 我去了右上角的操场图标-隐藏或显示检查员,它说操场设置, 我选择了“平台巨无霸”。 现在我的操场运行完美,我看到的结果无处不在