Wydaje się bardzo szerokie, aby zadać pytanie, ale jest to bardzo denerwujące i trudne do naprawienia błędu.iPhone app ulega awarii na WebThread MPVolumeSlider
Oto dziennik awarii dla WebThread, który dostałem od Crashlytics.
Thread : Crashed: WebThread
0 libobjc.A.dylib 0x0000000193e97bd0 objc_msgSend + 16
1 UIKit 0x0000000187f65dd8 +[UIViewAnimationState popAnimationState] + 332
2 MediaPlayer 0x0000000185953358 -[MPVolumeSlider volumeController:volumeValueDidChange:] + 92
3 MediaPlayer 0x00000001859c5fc4 -[MPVolumeController updateVolumeValue] + 260
4 MediaPlayer 0x0000000185952cb0 -[MPVolumeSlider didMoveToSuperview] + 144
5 UIKit 0x0000000187f2c1dc -[UIView(Hierarchy) _postMovedFromSuperview:] + 484
6 UIKit 0x0000000187f37cbc -[UIView(Internal) _addSubview:positioned:relativeTo:] + 1764
7 MediaPlayer 0x0000000185955f54 -[MPVolumeView _createSubviews] + 264
8 MediaPlayer 0x00000001859549d4 -[MPVolumeView _initWithStyle:] + 240
9 MediaPlayer 0x0000000185954a60 -[MPVolumeView initWithFrame:style:] + 88
10 WebCore 0x0000000191ba4684 -[WebMediaSessionHelper initWithCallback:] + 132
11 WebCore 0x0000000191ba3db8 WebCore::MediaSessionManageriOS::MediaSessionManageriOS() + 96
12 WebCore 0x0000000191ba3d28 WebCore::MediaSessionManager::sharedManager() + 56
13 WebCore 0x0000000191ba2890 WebCore::MediaSession::MediaSession(WebCore::MediaSessionClient&) + 44
14 WebCore 0x00000001916e8604 WebCore::HTMLMediaSession::create(WebCore::MediaSessionClient&) + 36
15 WebCore 0x00000001916d0fb0 WebCore::HTMLMediaElement::HTMLMediaElement(WebCore::QualifiedName const&, WebCore::Document&, bool) + 1100
16 WebCore 0x000000019170a2b4 WebCore::HTMLVideoElement::create(WebCore::QualifiedName const&, WebCore::Document&, bool) + 68
17 WebCore 0x00000001916bdd9c WebCore::videoConstructor(WebCore::QualifiedName const&, WebCore::Document&, WebCore::HTMLFormElement*, bool) + 92
Nigdy nie widziałem tego rodzaju awarii w trakcie rozwoju (Byłbym bardzo szczęśliwy, kiedy mogę złapać go z przerwania i dzienniku konsoli), ale pojawia się tylko do użytkowników, gdy jest na żywo.
Może być zgłaszane tylko przez crashlytics.
Możliwa przyczyna;
Aplikacja używa MagicalRecord i pobiera dane z serwera w tle po uruchomieniu. To wykorzystuje wielowątkowość, a gdy webkit używa części i blokowania UIKit, inny główny wątek wydaje się mieć do niego dostęp. Tak więc próbowałem usunąć wszystkie dispatch_sync i zmieniono je na dispatch_async, ale awarie zdarzają się ponownie po wykonaniu kilku wywołań funkcjonalnych.
Chciałbym wiedzieć, dlaczego WebCore działa, a ja nigdy nie zażądałem MPVolumeController na UIWebView.
Nawet z jakiegoś powodu mogą działać w tle, dlaczego się zawiesi? To się często zdarza, a użytkownicy skarżą się.
Czy inni mają ten sam problem?
samo tutaj ... To moja najczęstszą trzask i zaczęły pojawiać się w iOS 8. spędziłem dzień szuka rozwiązania, bezskutecznie .... – cujo30227
Widząc również, nie widzisz niczego na forach deweloperów Apple ani nic innego. – bpapa
Zastanawiasz się, czy przejście z UIWebView na WKWebView pomogłoby, ale jeszcze go nie wypróbowałem. – bpapa