Xcode playground macet di 'Running playground' atau 'Launching simulator' dan tidak mau menjalankan kode, apa yang harus dilakukan?


144

Setiap kali saya membuat taman bermain baru untuk menguji beberapa kode, Xcode macet dan tidak akan menjalankan kode. Ini hanya menyajikan pernyataan 'Running playground' atau 'Launching simulator' di bagian atas layar dengan ikon pemuatan yang berputar di sebelahnya tetapi tidak ada yang terjadi. Terkadang ini berlanjut tanpa batas dan terkadang Xcode berhenti dan mencetak ini untuk menghibur:

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

Saya menjalankan Xcode 8.0 (8A218a) di macOS Sierra 10.12.

Perangkat Keras :
MacBook Pro (13 "Pertengahan 2012)
2,5 GHz Intel Core i5
4 GB 1600 MHz Ram DDR3

Saya telah melihat sekeliling tetapi setidaknya tidak satu pun dari utas ini yang memberikan jawaban:
https://forums.developer.apple.com/thread/5902
https://github.com/jas/playground/issues/9

Hal-hal yang sudah saya coba dengan nol keberhasilan:

  • Mulai ulang Xcode
  • Menginstal ulang Xcode (diturunkan ke 7.3 tetapi karena itu tidak membantu saya memutakhirkan kembali ke 8.0)
  • Mulai ulang mesin
  • Membuat taman bermain baru

Apakah Anda punya ide tentang cara mengatasi masalah ini? Saya baru dalam pemrograman dan sangat ingin belajar Swift tetapi Xcode membuatnya hampir mustahil ...

Terima kasih sebelumnya, tepuk tangan.


Terima kasih atas balasan cepat Anda. Saya menggunakan taman bermain hanya karena saya sebenarnya memiliki langganan aktif di Treehouse.com dan mereka mendorong menggunakan taman bermain ketika menguji konsep-konsep baru.
Emil Osvald

1
Saya mengerti, tetapi pikiran saya adalah, Anda "dengan penuh semangat mencoba belajar Swift" dan saat ini Anda mandek. Jika Anda dapat membuat proyek aplikasi baru dan menjalankannya, Anda dapat melanjutkan. Sekarang, jika Anda juga tidak dapat menjalankan proyek aplikasi, maka Anda memiliki masalah yang lebih dalam. :)
matt

Itu memang benar. Terima kasih atas masukan Anda, saya akan melakukan apa yang Anda sarankan selama tidak ada solusi yang lebih baik. Namun saya akan tetap mengaktifkan utas ini seandainya ada yang menemukan solusi.
Emil Osvald

2
Saya tidak punya saran untuk diberikan di sini, @EmilOsvald. Saya dapat melaporkan hal ini sering terjadi di MacBook saya (dan terjadi sepanjang waktu ketika saya menggunakan iMac, juga, semua mesin baru dengan pembaruan terbaru). Anda seharusnya tidak merasa bersalah karena ingin menggunakan Taman Bermain. Secara teori mereka adalah produk hebat dan ketika mereka bekerja mereka adalah.
Ilias Karim

1
Seharusnya tidak ada spasi sebelum komentar pertama (jika baris teks pertama adalah komentar), atau baris kosong sebagai baris pertama. Biarkan aku tahu.
Daniel Springer

Jawaban:


191

Ans. Beralih ke platform macOS

Saat Anda membuat Taman Bermain, secara default pilih platform iOS dan secara otomatis mengimpor UIKit. Itu UIKit yang crash dan macet sepanjang waktu . Jika kode (latihan) Anda tidak menggunakan UIKit maka Anda dapat beralih ke platform MacOS . Sebagai perbedaan utama (tidak tepat) antara iOS dan macOS adalah di APPKit dan UIKit.

Di sudut kanan atas Xcode Playground Anda, klik pada show / hide Utilities -> file inspector -> Playground Setting -> Platform -> macOS

Lihat screenShot di bawah ini: masukkan deskripsi gambar di sini


4
Ini sepertinya bekerja untuk saya bersama dengan pengaturan tombol eksekusi bermain untuk manual. Akankah mereka memperbaiki hal ini, sepertinya agak
gila

2
Terima kasih itu berfungsi baik ketika menggunakan Foundation, tepat apa yang saya butuhkan. Saya tidak percaya Playgrounds memiliki begitu banyak bug ...
Adrien Yvon

15
Konyol. 3 baris kode (tidak ada yang mengimpor UIKit) dan saya harus google ini. Banyak orang akan menyerah dan menyatakan Swift tidak berguna.
James Bedford

4
Ini tidak berhasil untuk saya. Saya menggunakan Xcode 9.4.1 (bukan beta), dan saya harus terus-menerus me-restart Xcode. Cukup payah ...
Michael Rogers

1
Juga, jika taman bermain menjadi cukup besar, Cmd + Shift + Enter berhenti berfungsi. Siapa yang memprogram omong kosong ini? Anak-anak menggunakan Playgrounds di iPad?
Robo Robok

70

Saya telah mencoba yang berikut ini dan berhasil untuk saya:

  1. tekan tombol "stop playground" di bagian bawah
  2. hapus baris komentar pertama dan buat pernyataan impor baris pertama. tidak ada ruang di atas impor.
  3. tekan tombol eksekusi

1
Saya menemukan bahwa tidak ada ruang yang harus ada sebelum komentar - tetapi Anda dapat memiliki komentar sebagai baris pertama. Hanya tidak ada baris kosong di depannya, atau lekukan di depannya, di barisnya.
Daniel Springer

3
Saya akan menambahkan bahwa perlu me-restart Xcode. Tampaknya bekerja untuk saya.
jeb_is_a_mess

26
Bekerja untukku. Saya tidak percaya betapa konyolnya bug ini. Apple seharusnya malu.
gangelo

1
me-restart xcode adalah satu-satunya hal yang berhasil untuk saya
George Filippakos

1
Luar biasa. Saya mencoba berhenti xcode, membersihkan data turunan dll. Tetapi tidak ada yang berhasil kecuali ini. Meskipun saya sudah mengimpor di baris pertama!
Shivam Pokhriyal

58

Dalam kasus saya, Xcode 8.3.2, ini berfungsi ketika saya mencoba sebagai langkah-langkah di bawah ini:

  1. File -> Tutup "Name.playground"
  2. File -> Tutup Playground
  3. Keluar dari Xcode
  4. Buka kembali Xcode

2
Menawarkan sesuatu selain saya juga, apakah ada orang yang menggunakan XCode modern memiliki wawasan tentang akar penyebab kegagalan ini? Ini ternyata menjadi pekerjaan non-invasif terbaik di sekitar, namun, saya tidak akan menganggap penyelesaian masalah sebagai solusi. Apakah komentar di header taman bermain benar-benar memiliki bagian dalam masalah? Dan apa yang dikatakan Apple tentang penyebabnya?
truedat101

Ini berhasil bagi saya bersama dengan menghapus garis kosong sebelum pernyataan cetak saya.
FromTheStix

2
Ug, sungguh cara yang buruk untuk mengatasi masalah IDE.
PruitIgoe

Setuju, ini sangat timpang.
Ilias Karim

51

Proses utama Buggy Simulator masih bekerja bahkan setelah penutupan Xcode. Jadi inilah langkah-langkahnya:

  1. Keluar dari Xcode;
  2. Matikan com.apple.CoreSimulator.CoreSimulatorServiceproses di Activity Monitor;
  3. Luncurkan Xcode dan jalankan Playground Anda.

1
Saya suka jawaban ini lebih dari jawaban lain karena lebih ke inti masalah
kerajinan

1
Apakah saya perlu melakukan ini setiap waktu?
Vaibhav Saran

20

Dalam pengalaman saya, Anda harus:

  1. Cegah penyegaran bermain ulang Swift, dengan menahan: ► panah di bagian kiri bawah Playground dan memilih "Jalankan Secara Manual"
  2. Keluar dari Xcode
  3. Mulai ulang Xcode

Ini bekerja dengan sangat baik.


4
Tetapi bukankah seluruh titik Playground menjalankan kode Anda seperti yang tertulis?
saphryn

16

Saya telah membatalkan komentar di baris pertama. Itu dipecahkan untuk saya. Pastikan untuk mencobanya setelah Anda menutup dan meluncurkan kembali Xcode dan paksa berhenti com.apple.coresimulator dari Activity Monitor


1
Pada XCode 8.2.1, ini berhasil untuk saya. Setelah saya menghapus komentar baris pertama tentang taman bermain, itu berjalan dengan cepat. Saya tidak harus memaksa keluar dari simulator.
jessi

Terima kasih atas jawaban @Fiveagle. Saya memang harus memaksa qui proses coresimulator, menghapus baris pertama sehingga "impor UIKit" adalah baris pertama. Dan me-restart XCode membuat trik, tetapi kompilasi pertama butuh waktu untuk melakukan.
Yves Baumes

13

Menambahkan impor PlaygroundSupport memecahkan masalah untuk saya :)


2
Menarik. Darimana kamu mendapatkan ini?
Daniel Springer

Jika ini sama efektifnya dengan yang Anda katakan, Anda akan berpikir para pengembang akan memasukkannya secara default. Saya akan bereksperimen dengan ini. Terima kasih!
saphryn

6

Anda dapat beralih ke pemrosesan manual. Ini berhasil untuk saya. tangkapan layar


3

Pastikan Anda membunuh xcode di monitor aktivitas sebelum akhirnya membunuh proses com.apple.CoreSimulator.CoreSimulatorService di monitor aktivitas. Saya mencoba membunuh proses beberapa kali dan saya menyadari jika xcode masih berjalan di aktivitas latar belakang maka proses com.apple.CoreSimulator.CoreSimulatorService akan muncul lagi bahkan ketika Anda baru saja membunuhnya.


2

Saya memiliki masalah yang sama, semua yang saya lakukan adalah membuka editor Bantuan dan semuanya berfungsi dengan baik bahkan ketika saya menutup editor Bantuan! Jangan tanya mengapa itu coba-coba. Semoga ini bisa membantu Anda


Itu sebenarnya ide yang bagus. Karena tombol play / stop tidak mengganggu proses atau memaksakan penyegaran, saya kira Anda dapat memikirkan untuk mengaktifkan dan menonaktifkan Asisten Editor sebagai pengganti untuk tombol play lol. Luar biasa :)).
saphryn

0

setelah runnning sebentar Anda akan melihat pesan kesalahan kemudian Anda pergi untuk melihat> area debug> mengaktifkan konsol dan kemudian bermain lagi bekerja untuk saya


1
Apa itu sebentar? 5 menit? Satu hari?
Daniel Springer

dari 5 hingga 15 menit mungkin, setelah beberapa minggu masalah ini saya berubah ke SSD dan ditingkatkan menjadi 16GB RAM Memory dan dipecahkan, seperti perubahan siang dan malam
CrtlBreak

0

Periksa paket penyimpanan iCloud!

Jika Anda memilikinya, itu akan terus-menerus menyinkronkan seluruh komputer yang termasuk folder Desktop dan Dokumen. Alih-alih mencoba membuat folder "File Lokal" di folder Beranda Anda (perintah + shift + h) dan simpan proyek Playground Anda di sana, di mana ia tidak disinkronkan ke iCloud.

Ini bekerja untuk saya. Saya harap ini juga bekerja untuk Anda! :)


Ini sebenarnya bekerja untuk saya. Siapa pun yang memiliki masalah ini harus mencobanya.
Peter Schorn


0

Dalam kasus saya, masalahnya disebabkan oleh pengguna. Saya memiliki asisten editor yang ditampilkan, tetapi tampilan langsung tidak dipilih. Pastikan tampilannya seperti ini:

LiveView

Dan tidak seperti ini:

masukkan deskripsi gambar di sini


0

Juga terjadi, seperti dalam kasus saya, ketika Anda telah mendefinisikan suatu fungsi, tetapi lupa menyebutnya?


0

Seolah pertanyaan ini tidak memiliki jawaban yang cukup, saya akan memberikan "solusi" saya untuk masalah Swift playground:

Satu solusi yang saya temui yang bekerja dengan baik untuk saya (jadi saya tidak perlu me-restart Xcode):

killall launchd_sim

Ini akan menyebabkan "Running Playground ..." berputar dan Anda dapat memicu eksekusi baru. Sadarilah: eksekusi berikutnya akan berputar launchd_simdan semua proses anak itu lagi. Mungkin akan lebih baik untuk membunuh hanya proses anak yang relevan. Tapi saya belum menemukannya sejauh ini.

Tapi saya melakukan ini hanya ketika saya tidak menggunakan iOS Simulators secara paralel, karena launchd_simprosesnya adalah proses anak Simulator.


0

Saya menghapus data turunan dan membersihkan folder bangun. Ini bekerja untuk saya. Saya berhadapan dengan Xcode 11.2.1 dan Xcode 10.1 pada mesin yang sama.


-1

Saya menghadapi masalah yang sama tetapi setelah googling dan bereksperimen sedikit, saya menemukan bahwa seseorang harus selalu import UIKitsebelum mengimpor lib lainnya.


-1

Pertama, hapus baris komentar bawaan.

Kemudian, bahkan jika Anda memasukkan komentar baris pertama kembali, itu masih berfungsi. masukkan deskripsi gambar di sini


-1

Satu tip terakhir yang berfungsi untuk saya: Pastikan tidak ada simulator iOS yang berjalan Mereka saling bertentangan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.