iOS uygulaması her iki açılışta çöküyor, hata bulamıyor


81

Uygulamayı ilk başlattığımda her şey yolunda gidiyor gibi görünüyor. Durdur düğmesine basacağım, biraz iş yapacağım ve tekrar başlatmaya gittiğimde, herhangi bir şey yükleyemeden çöküyor gibi görünüyor. Durdur'a basın, tekrar Çalıştır'a basın ve sorunsuz çalışıyor. İşlemi tekrarlayana kadar.

Bu, xcode'un "Thread 1: signal SIGABRT" ile hatayı vurguladığı yerdir. Açıkçası burada yararlı bir şey yok.

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([PokerAppDelegate class]));
    }
}

Hata ayıklama konsolu (lldb) dışında hiçbir şey göstermiyor (Yani sanırım durduğunu, bu noktada çökmediğini varsayıyorum) Yani, BT şunu elde ediyorum:

(lldb) bt
* thread #1: tid = 0x1c03, 0x9a258a6a libsystem_kernel.dylib`__pthread_kill + 10, stop reason = signal SIGABRT
    frame #0: 0x9a258a6a libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x99ea1b2f libsystem_c.dylib`pthread_kill + 101
    frame #2: 0x04a7057b libsystem_sim_c.dylib`abort + 140
    frame #3: 0x01dc0b4e GraphicsServices`GSRegisterPurpleNamedPort + 348
    frame #4: 0x01dc069f GraphicsServices`_GSEventInitialize + 123
    frame #5: 0x01dc0c1f GraphicsServices`GSEventInitialize + 36
    frame #6: 0x000163f9 UIKit`UIApplicationMain + 600
    frame #7: 0x00001d0d Guitar Chord Poker HD`main(argc=1, argv=0xbffff32c) + 141 at main.m:16
    frame #8: 0x00001c35 Guitar Chord Poker HD`start + 53
(lldb) 

İşte şimdiye kadar yaptıklarım:

  • 'Temiz' gerçekleştirdi
  • Simülatörleri sıfırladım ve bilgisayarımı sıfırladım
  • Görünüm denetleyicisindeki tüm kodu yorumladım, hala çöküyor
  • Uygulama temsilcisindeki tüm kodu yorumladım, hala çöküyor
  • AMA .... Uygulamayı Xcode dışındaki bir cihazda çalıştırıyorum ve mükemmel çalışıyor gibi görünüyor.
  • (DÜZENLE) xcode'u ve çeşitli önbellek klasörlerindeki tüm içeriği (Simülatörler, Dokümanlar) sildim / yeniden yükledim (Bu, xcode'un yeni bir indirmeden sonra eskileri otomatik olarak yeniden yüklemesini durdurur). Yine de komut satırı araçlarının nerede tutulduğunu hala bulamıyorum. Hala çöküyor.

Tüm bunlara rağmen, uygulamalar hala her saniye / diğer açılışlarda çöküyor.

En son Xcode güncellemesine kadar hiçbir sorun yaşamadım. Bir Xcode hatası olabilir mi?

(DÜZENLE) OSX'in en son geliştirici sürümlerini de kullanıyorum. Bu müdahale ediyor olabilir mi?


İOS simülatöründe ve bağlı / bağlantısı kesilmiş cihazda boş bir proje çalıştırmayı denediniz mi?
Hou

@ReckHou Tamam vay, evet, yepyeni bir projede aynı konu. Nedeni ne olabilir? Xcode'u yeniden yüklemekten başka bir yolu var mı?
Beau Nouvelle

Zaten bu sorunu yaşayan iki kişi var. (son güncellemeden sonra benzer bir hata alıyorum) Şu anda hata düzeltilmiş bir sonraki Xcode güncellemesine kadar AppCode kullanıyorum. (Sorum stackoverflow.com/questions/16113036/… )
Ilya Ilin

5
Bugün erken saatlerde OSX 10.8.4'e güncelledikten sonra aynısını görmeye başladım. OSX 10.4.3'te Xcode 4.6.2 ile hiçbir sorun yaşamadım. LLDB'den GDB'ye geçersem sorunlar ortadan kalkıyor gibi görünüyor, bu nedenle hata ayıklayıcıdan (OSX 10.8.4 ile birlikte Xcode 4.6.2 LLDB) kaynaklanıyor olabilir.
Matej Bukovinski

1
10.8.4 güncellemesinden sonra da aynısını alıyorum. Diğer her fırlatma. Simülatörü sıfırlayın, Xcode'u yeniden başlatın, fark etmez. Ana () anında çökme. Her iki koşuda. GDB fikri için teşekkürler - burada çalışıyor.
Graham Perks

Yanıtlar:


75

OS X 10.8.4 ve LLDB'nin bir kombinasyonu gibi görünüyor . Kenster'ın dediği gibi, GDB'ye geçmek sorunu ortadan kaldırır.

Düzenle:
Hata ayıklama sunucusundaki bir yarış koşulundan kaynaklanıyor (duydum).

LLDB'yi kullanmaya devam etmek istiyorsanız işte bir düzeltme: Uygulama simülatörde zaten çalışırken Çalıştır'ı tıklamak yerine, onu Xcode (⌘-.) İçinde öldürün, 5 kez "Xcode'u seviyorum" deyin ve tekrar çalıştırın (⌘- R). Düşmeyecek, test ettim.


Sabit içinde Xcode 4.6.3.


Gerçekten iyi çalışmıyor. Fırlatma hemen hemen her seferinde boğuluyor. GDB'ye geçiş, Apple eşyalarını düzeltene kadar şimdilik çok daha kararlı bir çözüm.
Jonny

2
Siz ve soruyu soran, yeni kişisel favori insanlarsınız. Bu beni çıldırtıyordu, MBP'mi onarım için göndermek üzere olduğum yere.
Kalle

10.9 ve Xcode 5 ile GDB kaldırıldı ve artık hepsi LLDB. Ama hepsi olması gerektiği gibi çalışıyor!
Beau Nouvelle

Argh! Kullanımdan kaldırılmış bir derleyiciye geri dönersek, sadece en son teknolojiye sahip yepyeni bir derleyicideki (gerçekten acı verici) bir hatayı düzeltmek büyük bir sorun… Ama başka seçenek yok, bunu yapmak zorunda kalacağım.
MonsieurDart

4.6.3'e güncellemek bunu yaptı - bu sürümün yayınlandığını bile bilmiyordum.
David H

11

Ben de bu sorunu yaşıyordum. Bu gönderiye bir göz atın. Xcode 4.6.2 uygulaması her ikinci çalıştırmada çöküyor

Temel olarak hata ayıklayıcınızı LLDB'den GDB'ye değiştirin. Bunun LLDB'nin hatalı olmasından kaynaklandığına inanamıyorum.


Aman Tanrım .... Düzeltildi. O kadar alıştım ki, her projeyi yürüttüğümde öfkelenmeye hazırlanıyorum. Ama hiçbir şey olmadı. Çok teşekkürler. Apple'a hata raporumda haber verecek.
Beau Nouvelle

2
Bilgi için teşekkürler, dün bütün gün beni deli ediyordu. BURADA arama yapmadan önce neden tüm (kalan) saçımı çekene kadar neden her zaman bekliyorum! LOL.
Bertie

3

GDB'ye geçmek veya cihazı / ana bilgisayarı yeniden başlatmak, ortamımdaki sorunu çözmez.

Bununla birlikte, ilişkili XCode şemasındaki Çalıştır hedefini artık otomatik olarak başlamayacak şekilde değiştirmek, bunun yerine " HelloWorld .app'nin başlatılmasını bekle" yapmak işe yaradı.

Tek dezavantajı, bunun cihazdaki uygulamayı manuel olarak başlatmayı gerektirmesidir. Hata ayıklayıcı daha sonra bağlanacaktır.

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.