Xcode oyun alanı 'Koşu oyun alanı' veya 'Simülatörün başlatılması' üzerine takılır ve kodu çalıştırmaz, ne yapmalı?


144

Bazı kodları test etmek için her yeni oyun alanı oluşturduğumda, Xcode takılır ve kodu çalıştırmaz. Ekranın üst kısmında, umut verici bir şekilde yanında dönen yükleme simgesi ile 'Koşu oyun alanı' veya 'Simülatörün başlatılması' ifadesini sunar, ancak hiçbir şey olmaz. Bazen bu süresiz olarak devam eder ve bazen Xcode durur ve konsola yazdırır:

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'de Xcode 8.0 (8A218a) kullanıyorum.

Donanım :
MacBook Pro (13 "2012 Ortası)
2,5 GHz Intel Core i5
4 GB 1600 MHz Ram DDR3

Etrafa baktım ama en azından bu konuların hiçbiri bir cevap vermedi:
https://forums.developer.apple.com/thread/5902
https://github.com/jas/playground/issues/9

Sıfır başarıyla denediğim şeyler:

  • Xcode yeniden başlatılıyor
  • Xcode'u yeniden yükleme (7.3'e düşürüldü, ancak bu yardımcı olmadığından 8.0'a yükselttim)
  • Makineyi yeniden başlatma
  • Yeni bir oyun alanı oluşturma

Bu sorunun nasıl çözüleceği hakkında bir fikriniz var mı? Programlamaya yeni başladım ve Swift'i hevesle öğrenmeye çalışıyorum, ancak Xcode bunu neredeyse imkansız kılıyor ...

Şimdiden teşekkürler, şerefe.


Hızlı yanıtın için teşekkür ederim. Oyun alanını kullanıyorum çünkü aslında Treehouse.com'da aktif bir aboneliğim var ve yeni konseptleri test ederken oyun alanını kullanmayı teşvik ediyorlar.
Emil Osvald

1
Anlıyorum, ama benim düşüncem, "Swift'i hevesle öğrenmeye çalışıyorsun" ve şu anda sıkışıp kaldın. Yeni bir uygulama projesi yapabilir ve çalıştırabilirseniz, devam edebilirsiniz. Şimdi, bir uygulama projesi de çalıştıramazsanız, daha derin sorunlarınız var. :)
matt

Bu kesinlikle doğrudur. Giriş matınız için teşekkür ederiz, daha iyi bir çözüm olmadığı sürece önerdiğiniz gibi yapacağım. Yine de, birisi bir çözüm bulmuşsa, bu konuyu aktif tutacağım.
Emil Osvald

2
Burada vermek için tavsiyem yok, @EmilOsvald. Bunun MacBook'umda da sık sık olduğunu bildirebilirim (ve iMac'leri her kullandığımda, en son güncellemelere sahip tüm yeni makinelerde de oldu). Oyun Alanlarını kullanmak istediğiniz için kendinizi hatalı hissetmemelisiniz. Teorik olarak harika bir üründür ve çalıştıklarında öyledirler.
Ilias Karim

1
İlk yorumdan önce boşluk olmamalıdır (metnin ilk satırı bir yorumsa) veya ilk satır olarak boş bir satır olmamalıdır. Bilmeme izin ver.
Daniel Springer

Yanıtlar:


191

Ans. MacOS platformuna geç

Bir Oyun Alanı oluşturduğunuzda, varsayılan olarak iOS platformunu seçer ve otomatik olarak UIKit'i içe aktarır. Her zaman çöküp sıkışan UIKit'tir . (Uygulama) kodunuz UIKit kullanmıyorsa , MacOS platformuna geçebilirsiniz . As majör IOS ve MacOS arasında (değil tam da) farkı AppKit ve UIKit bulunmaktadır.

Xcode Playground ürününüzün sağ üst köşesinde Yardımcı Programları Göster -> dosya denetçisi -> Oyun Alanı Ayarı -> Platform -> macOS

Aşağıdaki screenShot'a bakın: resim açıklamasını buraya girin


4
Bu oyun alanı yürüt düğmesi manuel olarak ayarlamak ile birlikte benim için işe yaramış gibi görünüyordu. Onlar hiç düzeltmek olsa da, sadece biraz değersiz görünüyor
hoboBob

2
Teşekkürler Fondöten kullanırken iyi çalışır, tam olarak ihtiyacım olan şey. Oyun Alanlarında çok fazla hata olduğuna inanamıyorum ...
Adrien Yvon

15
Saçma. 3 satır kod (hiçbiri UIKit ithalatı) ve ben bu google gerekir. Bir çok insan vazgeçip Swift'i işe yaramaz olarak ilan ederdi.
James Bedford

4
Bu benim için işe yaramıyor. Xcode 9.4.1 (beta değil) kullanıyorum ve Xcode'u sürekli olarak yeniden başlatmam gerekiyor. Güzel topal ...
Michael Rogers

1
Ayrıca, oyun alanı yeterince büyürse, Cmd + Üst Karakter + Enter tuşları çalışmayı durdurur. Bu saçmalığı kim programladı? İPad'de Playgrounds kullanan çocuklar?
Robo Robok

70

Aşağıdakileri denedim ve benim için çalıştı:

  1. alt "oyun alanı durdur" düğmesine basın
  2. ilk yorum satırını kaldırın ve import ifadesini ilk satır yapın. içe aktarmanın üstünde boşluk yok.
  3. yürüt düğmesine basın

1
Yorumdan önce boşluk olmaması gerektiğini fark ettim - ama ilk satır olarak bir yorumunuz olabilir . Ondan önce boş satır yok, ondan önce girinti yok.
Daniel Springer

3
Buna Xcode'u yeniden başlatma ihtiyacını ekledim. Benim için çalışıyor gibi görünüyor.
jeb_is_a_mess

26
Benim için çalıştı. Bu hatanın ne kadar saçma olduğuna inanamıyorum. Elma utanmalıydı.
gangelo

1

1
Muhteşem. Ben xcode çıkma, türetilmiş veri vb temizleyerek çalıştı ama hiçbir şey dışında çalıştı. İlk satırda zaten ithalat yapmama rağmen!
Shivam Pokhriyal

58

Benim durumumda, Xcode 8.3.2, aşağıdaki adımları denediğimde çalışır:

  1. Dosya -> Kapat "Name.playground"
  2. Dosya -> Oyun Alanını Kapat
  3. Xcode'tan çık
  4. Xcode'u tekrar açın

2
Benim dışında bir şey de sunan, modern XCode kullanan herkesin bu hatanın temel nedeni hakkında bir fikri var mı? Bu, en iyi non-invaziv çalışma olduğu ortaya çıkıyor, ancak sorun çözümünden kısa bir şey bir çözüm olarak düşünmeyeceğim. Oyun başlığındaki yorumların sorunun gerçekten bir parçası var mı? Apple nedenle ilgili olarak ne diyor?
truedat101

Bu benim için çalıştı ve baskı ifademden önce boş satır kaldırıldı.
FromTheStix

2
Ug, bir IDE sorunu üzerinde çalışmak için ne kadar berbat bir yol.
PruitIgoe

Anlaşıldı, bu süper topal.
Ilias Karim

51

Buggy Simulator'ın ana süreci Xcode kapatıldıktan sonra bile hala çalışıyor. İşte adımlar:

  1. Xcode'dan çıkın;
  2. com.apple.CoreSimulator.CoreSimulatorServiceEtkinlik İzleyicisi'nde öldürme süreci;
  3. Xcode'u başlatın ve Oyun Alanınızı çalıştırın.

1
Bu cevabı diğer cevaplardan daha çok beğeniyorum çünkü konunun kalbine daha çok şey alıyor
craft

1
Bunu her seferinde yapmam gerekir mi?
Vaibhav Saran

20

Benim tecrübelerime göre:

  1. Swift oyun alanının tazelenmesini engelleyin: tuşunu basılı tutarak ► Oyun alanının sol alt tarafındaki ► oku ve "Elle Çalıştır" ı seçin
  2. Xcode'tan çık
  3. Xcode'u yeniden başlat

Çok iyi çalışıyor.


4
Ancak Playground'ın tüm amacı kodunuzu yazıldığı gibi çalıştırmak değil mi?
saphryn

16

İlk satırdaki yorumu iptal ettim. Benim için çözüldü. Xcode'u kapatıp yeniden başlattıktan ve Etkinlik Monitörü'nden com.apple.coresimulator'dan çıkmaya zorladıktan sonra denediğinizden emin olun.


1
XCode 8.2.1'de bu benim için çalıştı. Oyun alanları hakkındaki ilk satır yorumunu sildikten sonra hızlı bir şekilde yayınlandı. Simülatörden çıkmak zorunda kalmadım.
jessi

@Fiveagle cevabı için teşekkürler. Gerçekten, koiimülatör sürecini qui zorlamak için ilk satırları kaldırmak zorunda kaldı, böylece "ithalat UIKit" ilk satır. Ve XCode'u yeniden başlatmak hileleri yaptı, ancak ilk derleme biraz zaman aldı.
yves Baumes

13

İthalat PlaygroundSupport eklemek benim için sorunu çözdü :)


2
İlginç. Bunu nereden aldın?
Daniel Springer

Söylediğiniz kadar etkili olursa, geliştiricilerin bunu varsayılan olarak dahil edeceğini düşünürsünüz. Bunu deneyeceğim. Teşekkürler!
saphryn

6

Manuel işleme geçebilirsiniz. Benim için çalıştı. ekran görüntüsü


3

Etkinlik izleyicide com.apple.CoreSimulator.CoreSimulatorService işlemini öldürmeden önce etkinlik izleyicide xcode'u öldürdüğünüzden emin olun . Süreci birkaç kez öldürmeyi denedim ve xcode hala arka plan etkinliğinde çalışıyorsa fark ettim, o zaman com.apple.CoreSimulator.CoreSimulatorService işlemi, onu öldürdüğünüzde bile tekrar açılır.


2

Aynı sorunu yaşadım, tek yaptığım Yardım editörünü açmak ve Yardım editörünü kapattığımda bile her şey iyi çalışıyor! Neden deneme yanılma olduğunu sorma. Umarım bu sana yardımcı olur


Bu gerçekten harika bir fikir. Oynat / durdur düğmesi işlemi çalkalamadığından veya yenilemeye zorlamadığından, Yardımcı Editör'ü oynat düğmesi lol yerine geçmeyi düşünebilirsiniz. Harika :)).
saphryn

0

Bir süre koştuktan sonra hata mesajını göreceksiniz> sonra hata ayıklama alanına gidin> konsolu etkinleştirin ve tekrar oynatın benim için çalıştı


1
Süre nedir? 5 dakika? Bir gün?
Daniel Springer

5 ila 15 dakika arasında, belki de bu sorunun birkaç haftasından sonra SSD'ye geçtim ve 16GB RAM Belleğe yükselttim ve gündüz ve gece değişikliği gibi çözüldü
CrtlBreak

0

İCloud depolama planını kontrol edin!

Bilgisayarınız varsa, Masaüstü ve Belge klasörlerini içeren tüm bilgisayarı sürekli olarak senkronize eder. Bunun yerine, Ana klasörünüzde (command + shift + h) bir "Yerel Dosyalar" klasörü oluşturmayı deneyin ve Playground projelerinizi iCloud ile senkronize edilmeyecek şekilde orada tutun.

Bu benim için çalıştı, umarım bu senin için de çalışır! :)


Bu aslında benim için çalıştı. Bu sorunu yaşayan herkes gerçekten denemelidir.
Peter Schorn


0

Benim durumumda sorun kullanıcı kaynaklıydı. Yardımcı editör görüntülendi, ancak canlı görüntü seçilmedi. Bunun gibi göründüğünden emin olun:

Canlı görüntü

Ve böyle değil:

resim açıklamasını buraya girin


0

Ayrıca, benim durumumda olduğu gibi, bir işlev tanımladığınız, ancak onu çağırmayı unuttunuz mu?


0

Bu sorunun yeterli cevabı yokmuş gibi, sıkışmış Swift oyun alanları sorununa "çözümümü" sağlayacağım:

Karşılaştığım tek çözüm benim için güzel çalışıyor (bu yüzden Xcode'u yeniden başlatmak zorunda değilim):

killall launchd_sim

Bu, dönen "Playground Playground ..." in gitmesine neden olur ve yeni bir yürütmeyi tetikleyebilirsiniz. Dikkat edin: bir sonraki infaz döneceklaunchd_sim ve tüm bu çocuk tekrar işleyecek. Muhtemelen sadece ilgili çocuk sürecini öldürmek en iyisidir. Ama şimdiye kadar bulamadım.

Ancak bunu sadece launchd_simsüreç bir alt süreç olduğu için iOS Simülatörlerini paralel kullanmadığımda yapıyorum Simulator.


0

Türetilmiş verileri sildim ve derleme klasörünü temizledim. Bu benim için çalışıyor. Aynı makinede Xcode 11.2.1 ve Xcode 10.1 ile karşılaşıyordum.


0

Birkaç saat boyunca başımı bu dayak sonra, yanlışlıkla, bu benim oyun git gitmeden önce UIKit öğeleri test etmek için izin ÇOK ÇOK önemli bir çizgi sildi fark:

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

Facepalm. Umarım bu, birisinin saçlarını birkaç saat çekmesine yardımcı olabilir.


-1

Aynı sorunla karşı karşıya kaldım, ancak googling ve biraz deneme yaptıktan sonra, import UIKitbaşka bir kütüphaneyi içe aktarmadan önce her zaman olması gerektiğini öğrendim .


-1

İlk olarak, dahili yorum satırını silin.

Sonra, ilk satır yorumunu geri koysanız bile, yine de çalışır. resim açıklamasını buraya girin


-1

Benim için çalışan son bir ipucu: iOS simülatörünün çalışmadığından emin olun. Birbirleriyle çatışıyorlar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.