每次我为了测试一些代码而创建一个新游乐场时,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
我已经尝试过的事情没有成功:
您对如何解决此问题有任何想法吗?我是编程新手,急切地想学习Swift,但是Xcode几乎不可能......
提前谢谢,干杯。
答案 0 :(得分:135)
答。 切换到macOS平台
创建Playground时,默认选择iOS平台并自动导入UIKit。 这是UIKit一直崩溃和卡住。如果您的(练习)代码不使用UIKit,那么您可以切换到MacOS平台。由于主要(不完全相同)iOS和macOS之间的区别在于APPKit和UIKit。
在Xcode Playground的右上角,点击显示/隐藏实用程序 - >文件检查员 - >游乐场设置 - >平台 - > macOS
答案 1 :(得分:62)
我尝试了以下内容,它对我有用:
答案 2 :(得分:51)
在我的情况下,Xcode 8.3.2,当我尝试以下步骤时它起作用:
答案 3 :(得分:47)
即使在Xcode关闭后,Buggy Simulator的主要流程仍然有效。所以这里的步骤是:
com.apple.CoreSimulator.CoreSimulatorService
进程; 答案 4 :(得分:19)
根据我的经验,你应该:
效果很好。
答案 5 :(得分:15)
我已取消第一行的评论。它为我解决了。 关闭并重新启动Xcode并强制退出活动监视器中的com.apple.coresimulator后,请务必尝试
答案 6 :(得分:11)
添加导入PlaygroundSupport为我解决了问题:)
答案 7 :(得分:5)
答案 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-选项-然后取消选中“游乐场”
这个小窍门有助于解决冻结的“运行中”问题。
答案 11 :(得分:1)
经过几个小时的努力,我意识到我不小心删除了这个非常重要的行,可以在将我的游乐场提交到git之前测试UIKit元素:
// Present the view controller in the Live View window
PlaygroundPage.current.liveView = MyViewController()
面筋。希望这可以帮助某人将头发拉出几个小时。
答案 12 :(得分:0)
在 Xcode Playground 中加快构建速度并防止加载图标永远旋转:
iOS
中的 macOS
更改为 Playground Settings
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)
答案 18 :(得分:0)
我正在使用XCode 10.2,并且遇到了相同的问题。因此,通常只需使用Online Swift Playground
这符合我的目的! :-)
答案 19 :(得分:0)
答案 20 :(得分:-1)
对我有用的最后一条提示: 确保没有iOS模拟器正在运行。 他们彼此冲突。
答案 21 :(得分:-1)
答案 22 :(得分:-1)
检查iCloud存储计划!
如果确实有一个,它将持续同步包括Desktop和Document文件夹在内的整个计算机。 而是尝试在主文件夹中创建一个“本地文件”文件夹(command + shift + h),并将您的Playground项目保存在该文件夹中,该项目不会同步到iCloud。
这对我有用。我希望这对您也有用! :)
答案 23 :(得分:-1)
我遇到了同样的问题,但经过谷歌搜索和实验后,我发现在导入任何其他库之前必须始终import UIKit
。