Xcode Playgroundが「Running Playground」または「Launching Simulator」でスタックし、コードを実行できません。どうすればよいですか?


144

コードをテストするために新しいプレイグラウンドを作成するたびに、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

Xcode 8.0(8A218a)をmacOS Sierra 10.12で実行しています。

ハードウェア
MacBook Pro(2012年中期13インチ)
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はそれを実質的に不可能にしています...

よろしくお願いします。


早々に返事をくれてありがとう。私が実際にプレイハウスを使用しているのは、私が実際にTreehouse.comでアクティブなサブスクリプションを持っているからであり、彼らは新しいコンセプトをテストするときにプレイグラウンドを使用することを奨励しています。
Emil Osvald

1
私は理解していますが、私の考えでは、あなたは「熱心にSwiftを学ぼうとしている」ので、今は行き詰まっています。新しいアプリプロジェクトを作成して実行できる場合は、先に進むことができます。アプリプロジェクトも実行できない場合は、さらに深い問題があります。:)
マット2016年

それは間違いなく本当です。入力マットをありがとう、より良い解決策がない限り、私はあなたが提案したように行います。それでも、誰かが解決策を見つけた場合に備えて、このスレッドをアクティブのままにしておきます。
Emil Osvald

2
@EmilOsvald、ここでアドバイスはありません。これは私のMacBookでも頻繁に発生したことを報告できます(私がiMacを使用したときも、すべての新しいマシンが最新のアップデートで使用されたときに発生しました)。Playgroundsを使いたいと思っても過ちを感じてはいけません。理論的には、それらは優れた製品であり、機能するときはそうです。
Ilias Karim 2017年

1
最初のコメント(テキストの最初の行がコメントの場合)の前にスペースを入れたり、最初の行に空行を入れたりしないでください。お知らせ下さい。
ダニエルスプリンガー2017年

回答:


191

回答 macOSプラットフォームに切り替える

Playgroundを作成すると、デフォルトでiOSプラットフォームが選択され、UIKitが自動的にインポートされます。常にクラッシュしてスタックしてしまうのはUIKitです。(練習)コードでUIKitを使用しない場合は、MacOSプラットフォームに切り替えることができます主要な iOSとMacOSの間(正確ではないが)違いのAppKitとUIKitのです。

Xcode Playgroundの右上隅で、[ユーティリティ]-> [ファイルインスペクター]-> [プレイグラウンド設定]-> [プラットフォーム]-> [macOS]の表示/非表示をクリックします。

以下のscreenShotを参照してください。 ここに画像の説明を入力してください


4
これは、プレイグラウンドの実行ボタンを手動に設定することで、私にはうまくいくようです。彼らがこれを修正することはありますか、それは少しくだらないように見えます
hoboBob 2018

2
おかげで、Foundationを使用するときにうまく機能しました。まさに私が必要としていたことです。Playgroundに多くのバグがあるとは信じられません...
Adrien Yvon

15
ばかげている。3行のコード(どれもUIKitをインポートしません)と私はこれをググる必要があります。多くの人はあきらめてSwiftを役に立たないと宣言するだけです。
James Bedford、

4
これは私にはうまくいきません。Xcode 9.4.1(ベータ版ではありません)を使用しています。Xcodeを継続的に再起動する必要があります。プリティーラメ...
マイケルロジャース

1
また、遊び場が十分に大きくなると、Cmd + Shift + Enterが機能しなくなります。誰がこのがらくたをプログラムしたのですか?iPadでプレイグラウンドを使用している子供?
Robo Robok

70

私は次のことを試しましたが、うまくいきました:

  1. 下の「遊び場を停止」ボタンを押します
  2. 最初のコメント行を削除し、インポートステートメントを最初の行にします。インポートの上にスペースはありません。
  3. 実行ボタンを押す

1
コメントの前にもスペースを入れてはいけないことがわかりました。ただし、最初の行としてコメントを付けることできます。その前の空の行も、その前のインデントもありません。
Daniel Springer 2017年

3
さらに、Xcodeを再起動する必要があります。それは私のために働くようです。
jeb_is_a_mess 2017年

26
私のために働いた。このバグがどれほどおかしいかは信じられません。アップルは恥じるべきです。
ガンジェロ

1
xcodeの再起動だけが私にとって
有効でし

1
驚くばかり。xcodeの終了、派生データの消去などを試みましたが、これ以外は何も機能しませんでした。最初の行ですでにインポートがありましたが!
Shivam Pokhriyal

58

私の場合、Xcode 8.3.2、それは私が以下の手順として試したときに動作します:

  1. ファイル->「Name.playground」を閉じる
  2. ファイル->プレイグラウンドを閉じる
  3. Xcodeを終了
  4. Xcodeを再度開く

2
私以外にも何かを提供していますが、最新のXCodeを使用している人は誰でもこの失敗の根本的な原因について洞察を持っていますか?これが最善の非侵襲的な回避策であることが判明しましたが、問題解決以外の解決策はありません。遊び場のヘッダーのコメントには、問題の一部が含まれていますか?そして、原因に関してアップルは何と言っていますか?
truedat101 2018年

これは、printステートメントの前の空の行を削除することで、うまくいきました。
FromTheStix 2018年

2
さて、IDEの問題を回避するためのなんて無茶苦茶な方法でしょう。
PruitIgoe

同意しました、これはスーパーラメです。
Ilias Karim

51

Xcodeを閉じた後でも、Buggy Simulatorのメインプロセスはまだ機能しています。手順は次のとおりです。

  1. Xcodeを終了します。
  2. キルのcom.apple.CoreSimulator.CoreSimulatorServiceアクティビティモニタでプロセス。
  3. Xcodeを起動してPlaygroundを実行します。

1
それが問題の核心により取得するので、私は他の回答よりも多く、この答えを好き
クラフト

1
毎回これを行う必要がありますか?
Vaibhav Saran、

20

私の経験では、次のことを行う必要があります。

  1. Swiftプレイグラウンドが更新されないようにするには、プレイグラウンドの左下にある►矢印を押しながら[Manually Run]を選択します。
  2. Xcodeを終了
  3. Xcodeを再起動します

それは非常にうまく機能します。


4
しかし、Playgroundの目的は、コードが記述されたとおりにコードを実行することではありませんか?
saphryn

16

1行目のコメントをキャンセルしました。それは私のために解決しました。Xcodeを閉じて再起動し、アクティビティモニターからcom.apple.coresimulatorを強制終了した後で、必ず試してください。


1
XCode 8.2.1では、これでうまくいきました。遊び場に関する最初の行のコメントを削除すると、すぐに実行されました。シミュレータを強制終了する必要はありませんでした。
jessi 2017年

@Fiveagleの回答に感謝します。実際、coresimulatorプロセスを強制終了するには、最初の行を削除して、「UIKitのインポート」が最初の行になるようにしました。そして、XCodeを再起動してトリックを作りましたが、最初のコンパイルの実行には時間がかかりました。
yves Baumes 2017

13

インポートPlaygroundSupportを追加すると、問題が解決しました:)


2
面白い。どこから手に入れたの?
Daniel Springer 2017年

それがあなたが言うほど効果的であるならば、あなたは開発者がデフォルトでそれを含むだろうと思うでしょう。私はこれで実験します。ありがとう!
saphryn

6

手動処理​​に切り替えることができます。それは私のために働いた。 スクリーンショット


3

最終的にアクティビティモニターでcom.apple.CoreSimulator.CoreSimulatorServiceプロセスを強制終了する前に、アクティビティモニターでxcodeを強制終了してください 。プロセスを何度も強制終了しようとしましたが、バックグラウンドアクティビティでxcodeがまだ実行されている場合は、強制終了しただけでもcom.apple.CoreSimulator.CoreSimulatorServiceプロセスが再びポップアップすることに気付きました。


2

私は同じ問題を抱えていました。私がしたことは、アシスタントエディターを開くことだけでした。アシスタントエディターを閉じても、すべてがうまく機能します。なぜそれが試行錯誤であったのかを尋ねないでください。これがあなたを助けることを願っています


それは実際には素晴らしいアイデアです。再生/停止ボタンはプロセスを興奮させたり、更新を強制したりしないので、再生ボタンの代わりにアシスタントエディターのオンとオフを切り替えることを考えることができます。驚くばかり :))。
saphryn

0

しばらく実行した後、エラーメッセージが表示されたら、[表示]> [デバッグ領域]> [コンソールをアクティブ化]に移動して、もう一度再生するとうまくいきました


1
しばらくとは?5分?一日?
ダニエルスプリンガー2017年

多分5〜15分、この問題の数週間後、私はSSDに変更して16GB RAMメモリにアップグレードし、昼夜の変更のように解決しました
CrtlBreak

0

iCloudストレージプランを確認してください!

持っている場合は、デスクトップフォルダーとドキュメントフォルダーを含むコンピューター全体を常に同期します。代わりに、ホームフォルダー(command + shift + h)に「ローカルファイル」フォルダーを作成し、プレイグラウンドプロジェクトをiCloudと同期しない場所に保持してください。

これは私にとってはうまくいきました。:)


これは実際に私のために働いた。この問題を抱えている他の人は、実際に試してみてください。
Peter Schorn


0

私の場合、問題はユーザーによって引き起こされました。アシスタントエディターを表示しましたが、ライブビューが選択されていません。次のようになっていることを確認してください。

ライブビュー

そしてこれは好きではありません:

ここに画像の説明を入力してください


0

また、私の場合のように、関数を定義したが、それを呼び出すのを忘れたときにも起こりますか?


0

この質問では十分な回答が得られなかったかのように、スタックしたSwiftプレイグラウンドの問題に対する「解決策」を提供します。

私が遭遇した1つの解決策は私にとってうまく機能します(したがって、Xcodeを再起動する必要はありません):

killall launchd_sim

これにより、「Running Playground ...」の回転がなくなり、新しい実行をトリガーできます。注意してください:次の実行はスピンアップlaunchd_simし、それらすべての子プロセスが再び実行されます。関連する子プロセスだけを殺すのがおそらく最善でしょう。しかし、今のところ見つかりませんでした。

ただし、これは、launchd_simプロセスがの子プロセスであるため、iOSシミュレータを並行して使用していない場合にのみ行いますSimulator


0

派生データを削除し、ビルドフォルダーをクリーンアップしました。これは私にとってはうまくいきます。同じマシンでXcode 11.2.1とXcode 10.1に直面していました。


-1

私は同じ問題に直面していましたが、グーグルして少し実験した後import UIKit、他のライブラリをインポートする前に必ず実行する必要があることがわかりました。



-1

私にとって有効な最後のヒント:iOSシミュレーターが実行されていないことを確認します。彼らは互いに対立します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.