Xcode 6.3, XIB dosyasını açtıktan sonra donuyor / kilitleniyor


82

Xcode 6.3'e (yayın sürümü) yükselttikten sonra, Xcode artık bir IB_DESIGNABLEgörünüm içeren bir XIB / Storyboard dosyasını her açtığımda donuyorözel bir yazı tipi kullananherhangi bir proje için ve özel bir yazı tipi içerir (bu XIB / Storyboard'da söz konusu yazı tipine referans olması gerekmez). Donma, .xib dosyasını açtıktan ve ardından başka bir dosyaya geçmeye çalıştıktan sonra gerçekleşir. Xcode kilitleniyor ve zorla çıkılması gerekiyor.

Apple ile bir hata raporu açtım. (Hata 20483867).

Şu anda iki çözümüm var.

  1. Apple'dan Xcode 6.2'yi indirin ve kullanın.
  2. IB_DESIGNABLE etiketlerini özel görünüm başlık dosyalarından kaldırın.

Bu muhtemelen bir Apple hatasıdır, ancak daha iyi bir çözümü veya çözümü olan var mı?


7
Burada da aynı şey, Xcode Interface Builder'dan başka bir dosyaya geçmeye çalıştığımda tamamen donuyor. TÜM IB_DESIGNABLE özniteliklerin kaldırılması bu sorunu düzeltir. Şimdi 6.2 fow'a geri dönecek ...
maxkonovalov

1
Burada aynı. ~ / Library / Saved Application State / com.apple.dt.Xcode.savedState klasörünü kaldırmak bana yardımcı oluyor, ancak storyboard'u tekrar açmaya çalıştığımda aynı sorunu yaşadım.
tikhop

Bunun çökmeyi önleyip önlemediğini görmek için "Görünümleri Otomatik Olarak Yenile" seçeneğinin işaretini kaldırmayı da deneyebilirsiniz. Öyleyse, kilitlemeden "Tüm Görünümleri Yenileyip Yenileyemeyeceğinizi" görebilirsiniz.
nhgrif

@nhgrif Bu ayar nerede?
picciano

2
Apple, sysdiagnose'dan çıktı talep etti. Bu ilerledikçe güncellemeler sağlamaya devam edeceğim.
picciano

Yanıtlar:


26

Xcode 6.3.1 IB_DESIGNABLE, bir Storyboard'daki özel yazı tipleri ve görünümlerle ilgili sorunu düzeltir . Mac App Store üzerinden güncelleyin ve iyi olmalısınız.


28

Daha doğru bir açıklama için zaten bir düzenleme önerdim .

Yalnızca projeniz özel bir yazı tipi içerdiğinde gerçekleşir. IBDesignable özel görünüm içeren herhangi bir Storyboard / XIB'yi ziyaret ettiğinizde, Storyboard / XIB'nizdeki o yazı tipine atıfta bulunmadan bile donacaktır.

Benim geçici çözüm olduğunu kullanımınız Arayüz Oluşturucu dosyaları güncelleştirmek ve 6.3'de açmak asla o eski Xcode sürümünü de yüklü (Xcode 6.3 beta veya Xcode 6.2) ve kullanımı vardır. Bu Storyboard / XIB'yi Xcode'da yeni bir pencerede option+ shift+ clickproje ağacındaki dosya ile açın.

Donma ile her karşılaştığınızda, sadece o proje için kaydedilmiş durumu temizlemek için bu komutu kullanıyorum.

rm -rf YourProject.xcodeproj/project.xcworkspace/xcuserdata


3
temizleme komutu xcuserdatafaydalıdır. benim için çalışıyor.
Yevhen Dubinin

5
Eğer CocoaPods kullanıyorsanız, ayrıca .xcodeproj rm-rf YourProject.xcworkspace / xcuserdata gelen bir yerine ana çalışma alanı dosyasından xcuserdata kaldırmak gerekebilir
Nur Iman Izam

Hey, son zamanlarda bu sorunla çok karşılaştım, bu yüzden sorunu çözmenize yardımcı olacak bir komut dosyası yazdım. CocoaPods kullanan bir proje için harika çalışıyor, ancak kendi ortamımın dışında test etmedim. Bu yanıtta yayınlanan çözümü içerir, ancak hem tek projeleri hem de çalışma alanlarını ele almalıdır gist.github.com/Ziewvater/3190e20b1ace2ab3c3b6 . Yapabileceğim bir iyileştirme olup olmadığını bana bildirin
Ziewvater

15

Apple'ın yanıtı: Apple'daki Geliştirici Forumlarına Bağlantı

Hepinize raporlarınız için teşekkür ederim. Bunu kendi tarafımızdan takip ediyor ve çözmek için çok çalışıyoruz. Maalesef harika bir çözümümüz yok, ancak devam etmenizi sağlayacak iki seçenek var:

Özel bir yazı tipi / IBDesignable kullanan bir film şeridi / XIB daha önce açık olduğu için Xcode lansmanda asılı kalıyorsa: Açmakta olduğunuz projenin xcodeproj'undaki "UserInterfaceState.xcuserstate" dosyasını kaldırın, şu şekilde bir yolda olacaktır: Uygulamam .xcodeproj / project.xcworkspace / xcuserdata / kullanıcı adınız.xcuserdatad / UserInterfaceState.xcuserstate

Xcode 6.3 ile özel yazı tipini içeren film şeridi / XIB dosyasını gerçekten düzenlemeniz gerekiyorsa:

  1. Film şeridinizin / XIB dosyanızın bir kopyasını yedek olarak oluşturun
  2. Film şeridini / XIB dosyasını bir metin düzenleyicide açın
  3. Özel yazı tipinize başvuran "fontDescription" adlı XML etiketlerini kaldırın, örneğin:. Bu etiketin kaldırılması yazı tipini standart sistem yazı tipine döndürür.
  4. Özel yazı tipini kullanarak nesnelere çıkışlar yapın ve çalışma zamanında bu nesnelerin yazı tipini kendi özel yazı tipinize ayarlayın, örneğin görünüm denetleyicinizde viewDidLoad veya awakeFromNib'in geçersiz kılınmasında

ÖNEMLİ NOT: Film şeridi / XIB dosyalarını elle düzenlemenizi asla önermiyoruz. Ancak, bu sorunun birçoğunuzun belgelerinizi düzenlemesini engellediğini biliyoruz ve herhangi bir elle düzenlemenin belgenizin bozulmasına neden olabileceği uyarısı ile bir geçici çözüm sağlamak istedik.


9
Bu çok komik. "Film şeridini / XIB dosyasını gerçekten düzenlemeniz gerekiyorsa"
user1021430

13

Benim için de aynı sorun. IB_DESIGNABLE'ı kaldırmak sorunu çözüyor .. iOS 8.3'e sahip cihazda uygulamaları test ettiğim için 6.2'ye geri dönmek benim için işe yaramıyor - Xcode 6.2, iOS 8.3'e sahip cihazlarda uygulamaları çalıştıramıyor :(


Burada da aynı sorun. 8.3'e ihtiyacım var ve ayrıca bazı yeni Swift özelliklerini kullanıyorum.
Christian A. Strømmen

Hâlâ işinizi halletmeniz gerekiyorsa ve etrafta dolaşan bir tane varsa, bir alternatif, Xcode 6.3 betalarından birine geri dönmektir. 6D532l'nin (beta 3 sanırım) kilitlenmediğini doğrulayabilirim.
Samscam

3

Başka bir geçici çözüm, dosya uzantılarını tüm yazı tipi dosyalarınıza değiştirmek ve değiştirilen dosya adlarını Info.plist'ten yüklemektir. Bu şekilde IBDesignables'ı saklayabilir ve özel yazı tiplerinizi kullanmaya devam edebilirsiniz, ancak bunları Arayüz Oluşturucu'daki Yazı Tipi Seçici'de göremezsiniz.

Arabirim Oluşturucu'dan önceden ayarlanmış tüm özel yazı tipleri çalışmaya devam edecek, ancak bunları değiştirmek veya başka bir özel yazı tipi ayarlamak için bunu koddan yapmanız veya Storyboard veya Nib dosyalarını sırayla metin düzenleyiciden değiştirmeniz gerekecektir. yazı tipi adını ayarlamak için.


Bu benim için çalıştı. Kaydedilen durumu / xcuserdata'yı kaldırdıktan sonra bile, film şeridi bir sonraki açıldığında tekrar kırılacağını öğrendim. Yazı tiplerinin uzantılarını kaldırmak ve Info.plist'i güncellemek daha iyi çalışıyor gibi görünüyor
John Martin

Bu benim için de işe yaradı, @picciano'nun yayınladığı adımları uyguladıktan sonra
Albert Bori

2

Bir cevabım yok, ancak basitçe bırakmanın ve yeniden başlatmanın Xcode'u aynı durumda yeniden başlatacağını öğrendim. Yalnızca Xcode'u yeniden başlatabilmek için klasörü kaldırın ~/Library/Saved Application State/com.apple.dt.Xcode.savedState.


1
Buradaki başka bir seçenek de proje dosyanızı Finder'da (.xcodeproj veya .xcworkspace) bulmak -> paket içeriğini göster -> ve oradaki "xcuserdata" klasörünü kaldırmaktır. Xcode UI durumunuzu geri yükleyecektir.
maxkonovalov

Kullanıcı Verilerini yok etmek, Xcode 6.3 sorunumda bana yardımcı oldu
Sascha

1

Bu hata bugün çıkan 6.4 Xcode beta sürümünde düzeltildi. Dev merkezine gidin ve indirmek için oturum açın.


Xcode 6.3'ün (örneğin 6.3.1) yeni sürümünü beklemeyi tercih ederim, çünkü beta sürümlerinde geliştirmeyi göze alamayız çünkü düzeltilenlere kıyasla daha fazla sorun getirebilirler.
KoCMoHaBTa

3
6.4'ü indirdim ama hala çöküyor.
Cibla

1

Xcode 8.1 - Navigasyonlu bir görünümünüz varsa (benim durumumda bu en üst Çubuk opak Gezinme Çubuğuydu), sadece "üst Çubuk" özelliğini Yok olarak ayarlamayı deneyin.


Sanırım bunu yanlış soruya eklemişsin.
picciano

@picciano hayır, bu aslında doğru. Benim için işe yarayan tek şey buydu. Daha fazla ayrıntı için lütfen
cevabıma

0

Geçici bir çözüm olarak, bunu kullanan bir avuç özel bileşendeki tüm @ IBDesignable işaretlemelerini yorumladım. Bunu yaptığımda, evet, Arabirim Oluşturucu'daki ayarları değiştirme yeteneğimi kaybettim, ancak en azından .xib dosyalarını XCode çökmesi olmadan açmama izin verdi.

Apple bir düzeltme ile geldiğinde bu @ IBDesignable satırlarının yorumunu kaldıracağım.


0

@Ö. Kurnenkov'un cevabı benim için çalıştı. IB_Designable veya özel yazı tipleri, Cocoapod'lar vb. İle ilgisi yoktu.

Bazı nedenlerden dolayı "Opak Gezinme Çubuğu" olması nibdosyanın ( storyboards etkilemiyor gibi görünüyor ) sürekli ykonumunu değiştirmesine neden olur ; bu Size Inspector, ykonumun 0 ile 64 arasında titreyeceği yerde görülebilir. Bu, Xcode 8.2 (8C38) ile bana oluyor.

görüntü açıklamasını buraya girin

Benim tahminim, bu, Xcode'un düzeni sürekli olarak güncellemesine ve böylece kaynakları tüketmesine ve askıda kalmasına / donmasına neden olmasıdır.

görüntü açıklamasını buraya girin

Çözüm, "Yarı Saydam" seçeneklerinden herhangi birini, Çıkarsanmış veya Yok kullanmaktır.

Bu yardımcı olur umarım!

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.