簡體   English   中英

Xcode playground 卡在“Running playground”或“Launching simulator”上,無法運行代碼,怎么辦?

[英]Xcode playground gets stuck on 'Running playground' or 'Launching simulator' and won't run the code, what to do?

每次我創建一個新的 playground 以測試一些代碼時,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 英特爾酷睿 i5
4 GB 1600 兆赫內存 DDR3

我環顧四周,但至少這些線程都沒有提供答案:
https://forums.developer.apple.com/thread/5902
https://github.com/jas/playground/issues/9

我已經嘗試過零成功的事情:

  • 重啟 Xcode
  • 重新安裝 Xcode(降級到 7.3 但因為那沒有幫助我升級回 8.0)
  • 重啟機器
  • 創造一個新的游樂場

你對如何解決這個問題有什么想法嗎? 我是編程新手,急切地想學習 Swift,但 Xcode 使它幾乎不可能。

答。 切換到 macOS 平台

創建 Playground 時,默認選擇 iOS 平台並自動導入 UIKit。 是 UIKit 一直崩潰和卡住 如果您的(練習)代碼不使用 UIKit,那么您可以切換到 MacOS 平台 iOS 和 macOS 之間的主要(雖然不完全)區別在於 APPKit 和 UIKit。

在 Xcode Playground 的右上角,單擊 show/hide Utilities--> 文件檢查器 --> Playground Setting--> Platform--> macOS

請參閱下面的屏幕截圖: 在此處輸入圖片說明

我嘗試了以下方法,它對我有用:

  1. 按下底部的“停止游樂場”按鈕
  2. 刪除第一個注釋行並使 import 語句成為第一行。 導入上方沒有空格。
  3. 按執行按鈕

在我的情況下,Xcode 8.3.2,當我嘗試以下步驟時它可以工作:

  1. 文件 -> 關閉“Name.playground”
  2. 文件 -> 關閉 Playground
  3. 退出 Xcode
  4. 重新打開Xcode

即使在 Xcode 關閉后,Buggy Simulator 的主進程仍在運行。 所以這里是步驟:

  1. 退出 Xcode;
  2. 在活動監視器中殺死com.apple.CoreSimulator.CoreSimulatorService進程;
  3. 啟動 Xcode 並運行您的 Playground。

根據我的經驗,你應該:

  1. 通過按住 Playground 左下角的 ► 箭頭並選擇“手動運行”來防止 Swift 游樂場刷新
  2. 退出 Xcode
  3. 重啟Xcode

它運作良好。

我已經取消了第一行的評論。 它為我解決了。 確保在關閉並重新啟動 Xcode 並從 Activity Monitor 強制退出 com.apple.coresimulator 后嘗試它

添加 import PlaygroundSupport 為我解決了這個問題:)

您可以切換到手動處理。 它對我有用。 截圖

在最終殺死活動監視器中的com.apple.CoreSimulator.CoreSimulatorService進程之前,請確保在活動監視器中殺死 xcode。 我多次嘗試終止該進程,我意識到如果 xcode 仍在后台活動中運行,那么即使您剛剛殺死它, com.apple.CoreSimulator.CoreSimulatorService進程也會再次彈出。

我遇到了同樣的問題,我所做的只是打開輔助編輯器,即使我關閉了輔助編輯器,一切正常! 不要問為什么這是反復試驗。 希望這會幫助你

我正在使用 Xcode 10.2 並且遇到了同樣的問題。 所以一般只使用Online Swift Playground

這符合我的目的! :-)

在我的情況下,問題是用戶引起的。 我顯示了助理編輯器,但沒有選擇實時視圖。 確保它看起來像這樣:

實時查看

而不是這樣:

在此處輸入圖片說明

經過幾個小時的思考,我意識到我不小心刪除了這條非常重要的行,它允許在將我的操場提交到 git 之前測試 UIKit 元素:

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

面掌。 希望這可以幫助某人將頭發拉出幾個小時。

對我來說,問題在於MyPlayground 正在同步到 iCloud Xcode 每隔幾秒鍾保存一次您的文件,這會導致“無響應”狀態。

所以有一個簡單的解決方案 - 只需轉到:

系統偏好設置 - Apple ID - 此 Mac 上使用 iCloud 的應用程序 - iCloud Drive - 選項 - 然后取消選中“游樂場”

這個小技巧有助於解決凍結的“跑步”。

防止 Playgrounds 同步

XCode 12.3仍然發生同樣的問題。

對我來說解決方案是 Command + Q(重新啟動 Xcode)

運行一段時間后,您將看到錯誤消息,然后轉到查看>調試區域>激活控制台,然后再次播放對我有用

檢查 iCloud 存儲空間計划!

如果您有,它會不斷同步整個計算機,包括桌面和文檔文件夾。 而是嘗試在您的主文件夾中創建一個“本地文件”文件夾(command+shift+h)並將您的 Playground 項目保留在那里,它不會同步到 iCloud。

這對我有用。我希望這對你也有用! :)

我刪除了派生數據並清理了構建文件夾。 這對我有用。 我在同一台機器上遇到了 Xcode 11.2.1 和 Xcode 10.1。

也會發生,就像在我的情況下,當你定義了一個函數,但忘記調用它時?

好像這個問題沒有足夠的答案,我將為卡住的 Swift playgrounds 問題提供我的“解決方案”:

我遇到的一種解決方案對我來說效果很好(所以我不必重新啟動 Xcode):

killall launchd_sim

這將導致旋轉的“Running Playground...”消失,您可以觸發新的執行。 請注意:下一次執行將再次啟動launchd_sim和所有這些子進程。 最好只殺死相關的子進程。 但我至今沒有找到。

但我只在不並行使用 iOS 模擬器時才這樣做,因為launchd_sim進程是Simulator的子進程。

要加快 Xcode Playground 中的構建並防止加載圖標永遠旋轉:

  1. 轉到右側的邊欄,然后在Playground Settings中將iOS更改為macOS
  2. 而不是導入UIKit ,導入Foundation

(如果您不嘗試使用UIKit框架中的特定內容,這將起作用)

我從 Ioannis Diamantidis - 如何修復 Xcode Playground 卡在“運行”中得到了這個答案。 我在 Mac Mini M1 上使用 Xcode 13.2.1 版。 我去了右上角的游樂場圖標 - 隱藏或顯示檢查員,它說游樂場設置,我在 Platform macOs 中選擇。 現在我的游樂場運行完美,我到處都能看到結果

我遇到了同樣的問題,但在谷歌搜索和試驗后,我發現在導入任何其他庫之前必須始終import UIKit

首先,刪除內置的注釋行。

然后,即使您放回第一行注釋,它仍然有效。 在此處輸入圖片說明

對我有用的最后一個提示:確保沒有 iOS 模擬器正在運行。 它們相互沖突。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM