2015-09-21 15 views
14

ile _prepareForCAFlush'da kilitlenme iOS 9'un piyasaya sürülmesiyle, iOS'un 9 numaralı sürümünde Apple'ın sorunlarından bir hata olduğunu belirten birkaç kilitlenme raporu görüyoruz. Bu, cihaz türlerinde (iPhone, iPad) gerçekleşiyor. ve iPod). Bunun neden olabileceğini ve etrafta çalışmak için yapabileceğim bir şey olup olmadığını öğrenmek istiyorum. Bu yığın, çökme raporlama sistemimizle (Crashlytics) bildiriliyor, bu yüzden ne yazık ki tekrarlanabilir adımlara veya kodlara sahip değilim, ancak soruları olabildiğince en iyi şekilde yanıtlamaya çalışacağım. şöyle yığını:iOS 9 EXC_BAD_ACCESS KEYN_INVALID_ADDRESS

Thread : Crashed: com.apple.main-thread 
0 libobjc.A.dylib    0x34a27ad6 objc_msgSend + 21 
1 CoreFoundation     0x230d3db9 -[__NSArrayM dealloc] + 148 
2 libobjc.A.dylib    0x34a34f67 objc_object::sidetable_release(bool) + 150 
3 libobjc.A.dylib    0x34a353a9 (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 388 
4 CoreFoundation     0x230cbfa9 _CFAutoreleasePoolPop + 16 
5 UIKit       0x27523cd9 _prepareForCAFlush + 312 
6 UIKit       0x2752886b _beforeCACommitHandler + 10 
7 CoreFoundation     0x2317a509 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 20 
8 CoreFoundation     0x2317880d __CFRunLoopDoObservers + 280 
9 CoreFoundation     0x23178c3f __CFRunLoopRun + 958 
10 CoreFoundation     0x230cc249 CFRunLoopRunSpecific + 520 
11 CoreFoundation     0x230cc035 CFRunLoopRunInMode + 108 
12 GraphicsServices    0x2c182ad1 GSEventRunModal + 160 
13 UIKit       0x272e18a9 UIApplicationMain + 144 
14 APPNAMEHERE     0x000ec967 main (main.m:14) 
+0

Benzer sorun burada. Hangi analiz sağlayıcısı kullanıyorsunuz? – Yerk

+0

Yerk, Google Analytics'i uygulama etkinlikleri/vb. Için kullanıyoruz. ve çarpışma raporlaması için Twitter Fabric Crashlytics. – Josh

+0

, Crashlytics'in bir hatası gibi görünüyor: https://stackoverflow.com/a/31016107/4975761 – wj2061

cevap

-3

yalnızca 32 bit işlemciler A5 ve A6 sahip cihazların etkiliyor görünüyor - iPod 5. Gen, iPhone 4S/5/5C, iPad 2/Mini). Bizim tarafımızda da hiçbir tekrar. Bu çökmeler, iOS 9 sürümü ve benimseme ile başladı ve yükseltildi. iOS v9.0.1 düzeltmek için görünmüyor.

+0

Kumaşa göre, kazaların% 40'ı iPhone 6'ya ve% 25'i iPhone 6'ya ve – Efesus

+0

'a aittir. Sadece onaylamak için 64-bit de olduğu gibi, bu çökme ile birlikte çok sayıda iPhone 6 ve 6 artı var. Hala anlamaya çalışıyorum ... – Josh

1

Benzer bir yığın izlemeli bir kilitlenme ile karşılaştık ve uzun bir araştırmadan sonra bunun başka bir kilitlenme ile ilgili olduğunu öğrendik; Bunu da düzeltmek, ancak iki çarpışma ile ilgili hala emin değilim.

Biz o işlev çağrısını yürütülüyor AudioServicesSystemSoundCompletion

void AudioServicesSystemSoundCompletion(SystemSoundID ssID, void *clientData) { 
    AudioServicesRemoveSystemSoundCompletion(ssID); 
    CFRelease(clientData); 
} 

benziyordu

AudioServicesAddSystemSoundCompletion(self.soundID, 
             [[NSRunLoop currentRunLoop] getCFRunLoop], 
             kCFRunLoopDefaultMode, 
             AudioServicesSystemSoundCompletion, 
             (void *)CFBridgingRetain(self)); 

gibi bizim yöntemlerden birinde bir işlev çağrısı vardı: Burada

diğer kazası hakkında detaylar Aynı anda iki veya daha fazla kez uygulamanın çökmesine neden oldu. Bunu (void *) CFBridgingRetain (self) yerine NULL geçirerek ve CFRelease'i (clientData) kaldırarak düzelttik; hat.

Bu düzeltmeden bu yana artık '_prepareForCAFlush' çökmesini görmeyiz. Ayrıca, Crashlytics'e göre cihazın her çarpışmada çoğaldığı zaman çok yüksek bellek kullanımına sahip olduğunu unutmayın.

Bu yardımcı olur umarız!

+0

Burada önerdiğiniz şeyler hakkında bazı teoriler test ediyoruz ve eğer çalışıyorsa herkesin bilmesine izin vereceğim. Tam olarak burada bulunduğunuz şey gibi bir şey yapmıyoruz, ancak bazı kodlarımızda yanlış zamanlarda bir şeyin serbest bırakıldığı ortaya çıkıyor ve bunun nedeni olabilir. Yanıt verdiğiniz için teşekkür ederim ve yaklaşık bir hafta içinde kesin sonuçlar almayı umuyorum. – Josh

+0

Güncelleme. Düzeltmelerdeki girişimlerimiz şu ana kadar sorunu çözmedi. Denediğimiz şeyler bazılarına yardımcı oldu, ancak önemli değil. Bahse girerim bir şey "sızıntı" dır ve bu, işleri temizlemeye çalışırken meydana gelen bir çarpışmadır. Ne ya da neden olduğunu nasıl öğreneceğimize dair gerçek bir fikir yok .... – Josh

+0

Şimdi ne var? Aynı sorunu yaşıyoruz ve neye sebep olduğuna dair hiçbir fikrim yok. –

1

Benim için sorun uygulama minimize edildiğinde klavyeyi göstermeme ve reddetmekti.

[self.textView becomeFirstResponder]; 
    [self.textView resignFirstResponder]; 

Yukarıdaki kodu applicationWillResignActive olayında gerçekleştirdim. Bu kodu kaldırmak kazayı giderdi.

1

Ayrıca bu sorunla karşı karşıyayım ve bunun nedenine yol açabileceğini buldum. SDWebImage'ı kullanarak herhangi bir şansın var mı? Çünkü bu, CFRunLoopRun() çağrıldığını ve ayrıca diğer kişilerin de şikayet ettiği tek yer: Dead thread ticket -> App Crash