4

iPhone アプリの 1 つで、これまで再現できなかったいくつかの Crashlytics クラッシュが発生しました。しかし、よく調べてみると、ちょっとした傾向に気づきました...


クラッシュ 1: -[UINavigationTransitionView _notifyDelegateTransitionDidStopWithContext:]

空き RAM: 10%


クラッシュ 2: -[UINavigationTransitionView _notifyDelegateTransitionDidStopWithContext:]

空き RAM: 8%


クラッシュ 3: HostBase::lock()

空き RAM: 8%


クラッシュ 4:-[UINavigationTransitionView _notifyDelegateTransitionDidStopWithContext:]

空き RAM: 22%


RAM の空き容量に意味はありますか? これらは実際のクラッシュであり、メモリ不足が原因で OS によって強制終了されたアプリではないことを確認できますか? アプリがバックグラウンドでクラッシュした場合、Crashlytics はクラッシュ レポートを送信しますか?

いくつかのスタック トレースを追加しました...

例外の種類: SIGSEGV、ナビゲーション クラッシュ

0    libobjc.A.dylib    
objc_msgSend + 15
1    UIKit ✭    
-[UINavigationTransitionView _notifyDelegateTransitionDidStopWithContext:] + 274
2    UIKit  
-[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 158
3    UIKit  
-[UIViewAnimationState animationDidStop:finished:] + 50
4    QuartzCore 
CA::Layer::run_animation_callbacks(void*) + 208
5    libdispatch.dylib  
_dispatch_client_callout + 22
6    libdispatch.dylib  
_dispatch_main_queue_callback_4CF$VARIANT$mp + 224
7    CoreFoundation 
__CFRunLoopRun + 1290
8    CoreFoundation 
CFRunLoopRunSpecific + 356
9    CoreFoundation 
CFRunLoopRunInMode + 104
10   GraphicsServices   
GSEventRunModal + 74
11   UIKit  
UIApplicationMain + 1120

例外の種類: SIGSEGV、HostLock クラッシュ

0    libobjc.A.dylib    
objc_msgSend + 15
1    CFNetwork ✭    
HostBase::lock() + 14
2    CFNetwork  
DispatchHost::performInvocation(void const*) + 12
3    CFNetwork  
__setupTCPConnection_block_invoke_2 + 290
4
...
libsystem_network.dylib 
__tcp_connection_notify_complete_block_invoke_1 + 18
7    libsystem_c.dylib  
_pthread_wqthread + 294
4

1 に答える 1

2

8% のメモリは大量になる可能性がありますが、これが問題であるとは思えません。バックグラウンドでの実行中にクラッシュが送信されるかどうかはわかりません。SDK はオープン ソースではないため、直接問い合わせる必要があります。

追加した両方の例外スタック トレースは、メモリの問題を示唆しています。

最初のものは、もはや存在しないオブジェクトのアニメーションの最後にデリゲートを呼び出そうとしているように見えます。

2 つ目は、完了ブロックがなくなったオブジェクトにアクセスしているという同様の問題のように見えます。そのため、ブロックをチェックしてそのようなパターンを見つけることができます。

于 2012-10-25T22:07:04.150 に答える