1

最後に、アプリをアプリストアにアップロードしました。Flurry 分析も使用していますが、エラーはほとんど検出されませんでした。

読みやすくするために dSYM ファイルを添付しようとしましたが、そのようなログのどの部分が人間が読めるテキストに変わるかわかりません。

その他: クラス ファイルの 1 つ (実装) を指す行がありません。

だから私の質問は - どうすればそのようなレポートからより多くの情報を得ることができますか? - ユーザーのデバイスでアプリが本当にクラッシュしたというのは本当ですか? それとも、そのようなエラーはユーザーには見えなかったのでしょうか? - アプリはクラッシュしなかったが、ユーザーがプロセスを強制終了した可能性はありますか?

ありがとう

クラッシュレポートはこちら

Hardware Model:      iPhone3,3
Process:         my-app [560]
Path:            /var/mobile/Applications/3539397F-14A1-4802-A388-1D5070404D98/my id
Identifier:      /my id
Version:         1.3
Code Type:       ARM
Parent Process:  launchd [1]

Exception Type:  SIGSEGV
Exception Codes: SEGV_ACCERR at 0x70000008
Crashed Thread:  0

Thread 0 Crashed:
0   libobjc.A.dylib                     0x34dde5b0 +[Protocol load] + 663
1   UIKit                               0x3471b4a7 0x34699000 + 533671
2   UIKit                               0x346b1abb 0x34699000 + 101051
3   UIKit                               0x347268d7 0x34699000 + 579799
4   QuartzCore                          0x34cdabd9 -[CALayer dealloc] + 1244
5   libdispatch.dylib                   0x3793d4b7 0x3793c000 + 5303
6   libdispatch.dylib                   0x3793edcb -[OS_object release] + 274
7   CoreFoundation                      0x3826af3b +[__NSCFLocale         automaticallyNotifiesObserversForKey:] + 12398
8   CoreFoundation                      0x381ddebd -[__NSDate timeIntervalSinceReferenceDate] + 500
9   CoreFoundation                      0x381ddd49 -[__NSDate timeIntervalSinceReferenceDate] + 128
10  GraphicsServices                    0x3887a2eb 0x38875000 + 21227
11  UIKit                               0x346f0301 0x34699000 + 357121
12  my-app                              0x0012987b -[ASIHTTPRequest setSynchronous:] + 86

Thread 1:
0   libsystem_kernel.dylib              0x3568c648 0x3568b000 + 5704
1   libdispatch.dylib                   0x3793fdf8 -[OS_object _dispose] + 579

Thread 2:
0   libsystem_kernel.dylib              0x3568beb4 0x3568b000 + 3764
1   CoreFoundation                      0x3826c045 +[__NSCFLocale     automaticallyNotifiesObserversForKey:] + 16760
2   CoreFoundation                      0x3826ada3 +[__NSCFLocale  automaticallyNotifiesObserversForKey:] + 11990
3   CoreFoundation                      0x381ddebd -[__NSDate timeIntervalSinceReferenceDate] + 500
4   CoreFoundation                      0x381ddd49 -[__NSDate timeIntervalSinceReferenceDate] + 128
5   WebCore                             0x3689ca75 +[WebScriptObject initialize] + 608
6   libsystem_c.dylib                   0x364f5311 0x364e4000 + 70417

Thread 3:
0   libsystem_kernel.dylib              0x3568beb4 0x3568b000 + 3764
1   CoreFoundation                      0x3826c045 +[__NSCFLocale automaticallyNotifiesObserversForKey:] + 16760
2   CoreFoundation                      0x3826ada3 +[__NSCFLocale automaticallyNotifiesObserversForKey:] + 11990
3   CoreFoundation                      0x381ddebd -[__NSDate timeIntervalSinceReferenceDate] + 500
4   CoreFoundation                      0x381ddd49 -[__NSDate timeIntervalSinceReferenceDate] + 128
5   Foundation                          0x3264cbcd +[NSURLConnection _resourceLoadLoop:] + 308
6   Foundation                          0x326d067d -[NSThread description] + 1096
7   libsystem_c.dylib                   0x364f5311 0x364e4000 + 70417

Thread 4:
0   libsystem_kernel.dylib              0x3568beb4 0x3568b000 + 3764
1   CoreFoundation                      0x3826c045 +[__NSCFLocale  automaticallyNotifiesObserversForKey:] + 16760
2   CoreFoundation                      0x3826ada3 +[__NSCFLocale automaticallyNotifiesObserversForKey:] + 11990
3   CoreFoundation                      0x381ddebd -[__NSDate timeIntervalSinceReferenceDate] + 500
4   CoreFoundation                      0x381ddd49 -[__NSDate timeIntervalSinceReferenceDate] + 128
5   my-app                           0x001275eb +[ASIHTTPRequest runRequests] + 170
6   Foundation                          0x326d067d -[NSThread description] + 1096
7   libsystem_c.dylib                   0x364f5311 0x364e4000 + 70417

Thread 5:
0   libsystem_kernel.dylib              0x3569c594 0x3568b000 + 71060
1   libsystem_c.dylib                   0x364f5311 0x364e4000 + 70417

Thread 6:
0   libsystem_kernel.dylib              0x3568beb4 0x3568b000 + 3764
1   CoreFoundation                      0x3826c045 +[__NSCFLocale   automaticallyNotifiesObserversForKey:] + 16760
2   CoreFoundation                      0x3826ada3 +[__NSCFLocale automaticallyNotifiesObserversForKey:] + 11990
3   CoreFoundation                      0x381ddebd -[__NSDate timeIntervalSinceReferenceDate] + 500
4   CoreFoundation                      0x381ddd49 -[__NSDate timeIntervalSinceReferenceDate] + 128
5   Foundation                          0x3262378f +[NSNotification allocWithZone:] + 334
6   Foundation                          0x326c705d +[NSPropertyListSerialization propertyListWithStream:options:format:error:] + 9132
7   my-app                              0x0013a9ad +[TFURLConnectionOperation _runNetworkThread:] + 140
8   Foundation                          0x326d067d -[NSThread description] + 1096
9   libsystem_c.dylib                   0x364f5311 0x364e4000 + 70417

Thread 7:
0   libsystem_kernel.dylib              0x3569cd98 0x3568b000 + 73112
1   libsystem_c.dylib                   0x364eaa16 0x364e4000 + 27158

Thread 8:
0   libsystem_kernel.dylib              0x3569cd98 0x3568b000 + 73112
1   libsystem_c.dylib                   0x364eaa16 0x364e4000 + 27158

Thread 0 crashed with ARM Thread State:
r0: 0x1fc42250     r1: 0x34b1bee8     r2: 0x2fdf0d60     r3: 0x348a80d5 
r4: 0x70000000     r5: 0x1fc42250     r6: 0x1fc42360     r7: 0x2fdf0e3c 
r8: 0x1ed3c720     r9: 0x0d2c6fba    r10: 0x1fc1b290    r11: 0x00000001 
ip: 0x3b9a7d64     sp: 0x2fdf0db4     lr: 0x3471b84b     pc: 0x34dde5b0 
cpsr: 0x20000030 
4

2 に答える 2

1

ご質問について:

質問 1:このようなレポートからさらに情報を得るにはどうすればよいですか?

答え:

  1. 信号はSIGSEGV、基本的にセグメンテーション違反を意味します。このようなクラッシュには、オーバーリリースされたオブジェクト、初期化されていないポインター、またはメモリに直接書き込むコードなど、いくつかの理由が考えられます。
  2. クラッシュしているスレッドはdealloc、スタック トレースで呼び出しを示しています。これは、オブジェクトの割り当て解除中にクラッシュが発生したことを示唆しています。
  3. 多くのバックグラウンド スレッドがASIHTTPRequest、スタック トレースで同様の呼び出しを使用してネットワーク操作を実行しています。
  4. automaticallyNotifiesObserversForKeyKey-Value-Observing が関与しているヒントについては、多くの言及があります。キーにオブザーバーが登録されていて、そのオブザーバーが既に割り当て解除されている可能性があります。通知はバックグラウンド スレッドからトリガーされるため、さらに注意が必要です。たとえば、バックグラウンドでネットワークを実行し、メイン スレッドでオブジェクトを監視します。メイン スレッド上のオブジェクトが十分長く存続することを確認しないと、これらのシナリオでこのようなクラッシュが発生しやすくなります。
  5. 複数のバックグラウンド スレッドがほぼ同一のスタック トレースを持ち、個々のスタック フレームのメモリ アドレスが同一であることは、非常に奇妙です。

前提:この問題を再現できない場合は、原因が見つからない可能性があります。ASIHTTPRequest私はそれが内部のキー値コーディング処理またはそれのあなた自身の使用に何らかの形で関連していると思われます. そのため、そのライブラリを、たとえばAFNetworkingiOS が提供するプレーンなネットワーク スタックと交換するか、それを使用します。さらに、キー値コーディングを使用している場合は、マルチスレッドの安全性に関するコードを確認してください。

質問 2:ユーザーのデバイスでアプリが本当にクラッシュしたというのは本当ですか?

はい、これらのレポートは、実際のアプリのクラッシュについてのみ取得します。

質問 3:それとも、そのようなエラーはユーザーには見えなかったのでしょうか?

いいえ、SIGSEGVアプリの実際のクラッシュです。Invisibleコードで例外をキャッチし、それでもレポートを生成して送信する場合です。しかし、Flurry がこの機能を提供していないことを知る限り、あなたは明らかにそれを実装しておらず、そのクラッシュも例外によって引き起こされたものではありません。だからこれは不可能です。

質問 4:アプリはクラッシュしなかったが、ユーザーがプロセスを強制終了した可能性はありますか?

アプリが強制終了された場合、Flurry によるクラッシュ レポートは取得されません。キルは iOS によってトリガーされ、インプロセス クラッシュ レポート ライブラリ (つまり、すべてのサード パーティのクラッシュ レポート サービスを意味します) は、これらのレポートを作成することはできません。

追加の注意:例外ブレークポイント (他の人が示唆したように) は、例外が発生したためにクラッシュしなかったため、このタイプのクラッシュには役立ちません。

于 2013-12-05T13:21:31.757 に答える