ChatGPT解决这个技术问题 Extra ChatGPT

Xcode Playground 卡在“Running Playground”或“Launching Simulator”上,无法运行代码,怎么办?

每次我创建一个新的 Playground 来测试一些代码时,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" Mid-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 几乎使它变得不可能......

提前谢谢你,干杯。

感谢您的快速答复。我使用 Playground 只是因为我实际上在 Treehouse.com 上有一个活跃的订阅,他们鼓励在测试新概念时使用 Playground。
我理解,但我的想法是,你“急切地想学习 Swift”,现在你被卡住了。如果您可以创建一个新的应用程序项目并运行它,则可以继续。现在,如果您也无法运行应用程序项目,那么您将遇到更深层次的问题。 :)
这绝对是真的。感谢您的输入马特,只要没有更好的解决方案,我就会按照您的建议做。尽管如此,如果有人找到解决方案,我仍然会保持此线程处于活动状态。
@EmilOsvald,我在这里没有任何建议。我可以报告这在我的 MacBook 上也经常发生(并且在我使用 iMac 时也经常发生,所有带有最新更新的新机器)。您不应该因为想要使用 Playgrounds 而感到自责。从理论上讲,它们是一个伟大的产品,当它们工作时,它们就是。
第一条注释之前不应有空格(如果文本的第一行是注释),也不应有空行作为第一行。让我知道。

P
PANKAJ VERMA

答。切换到 macOS 平台

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

在 Xcode Playground 的右上角,点击 show/hide Utilities--> file inspector --> Playground Setting--> Platform--> macOS

https://i.stack.imgur.com/nj8cY.png


这似乎对我有用,同时将游乐场执行按钮设置为手动。他们会解决这个问题吗,只是看起来有点垃圾
感谢它在使用 Foundation 时效果很好,正是我所需要的。我不敢相信游乐场有这么多错误...
荒谬的。 3 行代码(其中没有导入 UIKit),我必须用谷歌搜索。很多人会放弃并宣布 Swift 没用。
这对我不起作用。我正在使用 Xcode 9.4.1(不是测试版),我必须不断重启 Xcode。相当蹩脚...
此外,如果操场变得足够大,Cmd+Shift+Enter 将停止工作。到底是谁编的这个垃圾?孩子们在 iPad 上使用 Playgrounds?
c
commanda

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

按下底部的“停止操场”按钮删除第一行注释并将导入语句作为第一行。导入上方没有空格。按执行按钮


我发现在评论之前也不应该有空格——但你可以在第一行添加评论。只是它前面没有空行,也没有缩进,在它的行上。
我会补充说需要重新启动 Xcode。它似乎对我有用。
为我工作。我无法相信这个错误是多么荒谬。苹果应该感到羞耻。
重新启动 xcode 是唯一对我有用的东西
惊人的。我尝试退出 xcode,清除派生数据等,但除此之外没有任何效果。虽然我已经在第一行导入了!
K
Khoa Vo

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

文件 -> 关闭“Name.playground”文件 -> 关闭 Playground 退出 Xcode 重新打开 Xcode


除了我也提供了一些东西,使用现代 XCode 的人是否对这次失败的根本原因有所了解?事实证明,这是最好的非侵入性工作,但是,我不会认为任何解决问题的方法都是解决方案。操场标题中的评论真的与问题有关吗?苹果公司对此有何评论?
这对我有用,同时删除了我的打印语句之前的空行。
呃,解决 IDE 问题的方法真是太糟糕了。
同意,这是超级蹩脚的。
我在 Xcode 13.1 上,这种情况一直在发生,我不敢相信他们还没有修复它。
d
dbv

即使在 Xcode 关闭后,Buggy Simulator 的主要进程仍在工作。所以这里是步骤:

退出 Xcode;在Activity Monitor中杀死com.apple.CoreSimulator.CoreSimulatorService进程;启动 Xcode 并运行您的 Playground。


我比其他答案更喜欢这个答案,因为它更能触及问题的核心
我每次都需要这样做吗?
C
Cœur

根据我的经验,您应该:

阻止 Swift Playground 刷新,方法是按住 Playground 左下角的 ► 箭头并选择“Manually Run” 退出 Xcode 重新启动 Xcode

它工作得很好。


但是,Playground 的全部意义不在于运行您编写的代码吗?
S
SiBC

添加 import PlaygroundSupport 为我解决了这个问题:)


有趣的。你从哪里得到这个?
如果它像你说的那样有效,你会认为开发人员会默认包含它。我会用这个做实验。谢谢!
F
Fiveagle

我已经取消了第一行的评论。它为我解决了。确保在关闭并重新启动 Xcode 并从 Activity Monitor 强制退出 com.apple.coresimulator 后尝试它


在 XCode 8.2.1 上,这对我有用。一旦我删除了关于游乐场的第一行评论,它就跑得很快。我不必强制退出模拟器。
感谢@Fiveagle 的回答。事实上,我不得不强制执行 coresimulator 进程,删除第一行,所以“import UIKit”是第一行。重新启动 XCode 成功了,但第一次编译需要一段时间才能执行。
S
Sandhu

https://i.stack.imgur.com/PZ8eX.png


A
Asad Abbas

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


F
Farisk

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


这实际上是一个好主意。由于播放/停止按钮不会搅动进程或强制刷新,我想您可以考虑打开和关闭助手编辑器来代替播放按钮哈哈。惊人的 :))。
a
apunn

经过几个小时的努力,我意识到我不小心删除了这个,非常重要的一行,它允许在将我的 Playground 提交到 git 之前测试 UIKit 元素:

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

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


p
pkamb

我正在使用 Xcode 10.2 并且遇到了同样的问题。所以一般只使用 Online Swift Playground

这符合我的目的! :-)


M
Mozahler

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

https://i.stack.imgur.com/YCkKy.png

而不是这样:

https://i.stack.imgur.com/tsLHM.png


谢谢,这确实是我的问题。现在在 XCode 14 上,它似乎有时会在编译之间随机关闭窗口
V
Vitya Shurapov

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

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

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

这个小技巧有助于解决冻结的“运行”。

https://i.stack.imgur.com/DxXuw.png


这个答案是错误的。您的建议会影响 Playgrounds 应用程序,并且对存储在 iCloud Drive 中的 Xcode Playground(即 .playground 文件)没有影响。
取消选中此标志以某种方式帮助我的 Xcode 游乐场完成任务。无论如何,在 macOS Big Sur 中,iCloud Drive 上没有游乐场选项;)
z
zeytin

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

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


C
Community

运行一段时间后你会看到错误消息然后你去查看>调试区域>激活控制台然后再次播放对我有用


什么是一段时间? 5分钟?一天?
可能从 5 到 15 分钟,经过几个星期的这个问题,我换成 SSD 并升级到 16GB RAM 内存并解决了,就像白天和黑夜的变化一样
t
theNoobDev10

检查 iCloud 存储计划!

如果您有,它会不断同步包括桌面和文档文件夹的整台计算机。而是尝试在您的主文件夹中创建一个“本地文件”文件夹(command+shift+h)并将您的 Playground 项目保留在那里,它不会同步到 iCloud。

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


这实际上对我有用。其他有此问题的人真的应该尝试一下。
m
msimons

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


p
pd95

好像这个问题没有足够的答案,我将为卡住的 Swift Playgrounds 问题提供我的“解决方案”:

我遇到的一个解决方案对我很有效(所以我不必重新启动 Xcode):

killall launchd_sim

这将导致旋转的“Running Playground...”消失,您可以触发新的执行。请注意:下一次执行将再次启动 launchd_sim 和所有这些子进程。最好只杀死相关的子进程。但到目前为止我还没有找到它。

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


C
Cœur

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


K
Kelvin Jou

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

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

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


F
Fortran programmer

我的答案来自:Ioannis Diamantidis - 如何修复 Xcode Playground 卡在“正在运行”中。我在 Mac Mini M1 上使用 Xcode 版本 13.2.1。我去了右上角的游乐场图标 - 隐藏或显示检查员,上面写着 Playground Settings ,我在 Platform macOs 中选择。现在我的操场运行得很完美,我到处都能看到结果


a
amagain

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


H
Harry McGovern

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

https://i.stack.imgur.com/8Ev4R.png


a
ahbou

最后一个对我有用的提示:确保没有运行 iOS 模拟器。它们相互冲突。


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅