1

最后我将应用上传到应用商店。我也在使用 Flurry 分析,那里几乎没有捕获到错误。

我尝试附加 dSYM 文件以使其更具可读性,但是我不确定此类日志的哪一部分更改为人类可读的文本。

这里的其他事情:我没有看到任何指向我的类文件之一的行(实现)。

所以我的问题是 - 我如何从此类报告中获得更多信息?- 是真的,应用程序真的在用户设备上崩溃了吗?或者也许这样的错误对用户来说是不可见的?- 应用程序是否有可能没有崩溃,但用户可能终止了它的进程?

谢谢

这是崩溃报告

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. 有很多提到automaticallyNotifiesObserversForKey其中涉及 Key-Value-Observing 的提示。也许有一个观察者注册到一个键,并且观察者已经被释放。更棘手的是,通知是从后台线程触发的!例如,在后台进行联网并在主线程上观察对象。如果您不能确保主线程上的对象存在足够长的时间,那么在这些情况下很容易发生此类崩溃。
  5. 多个后台线程具有几乎相同的堆栈跟踪,甚至各个堆栈帧的内存地址都相同,这真的很奇怪。

假设:如果您无法重现此问题,您可能找不到原因。我怀疑它与ASIHTTPRequest它的内部键值编码处理或您自己的使用有关。AFNetworking因此,我将使用或使用 iOS 提供的普通网络堆栈替换该库。此外,如果您使用键值编码,请检查有关多线程安全的代码。

问题 2:是真的,应用程序真的在用户设备上崩溃了吗?

是的,您只能在实际应用程序崩溃时获得这些报告。

问题 3:或者这样的错误对用户来说是不可见的?

不,SIGSEGV是您的应用程序真正崩溃。Invisible如果您在代码中捕获异常并且仍然​​生成报告并将其发送过来,那将是。但据我所知,Flurry 不提供此功能,您显然没有实现它,并且崩溃也不是由异常引起的。所以这是不可能的。

问题 4:是否有可能应用程序没有崩溃但用户可能杀死了它的进程?

如果应用程序被杀死,您将不会收到 Flurry 的崩溃报告。Kills 由 iOS 触发,进程内崩溃报告库(这意味着每个 3rd 方崩溃报告服务)永远无法为这些报告创建报告。

附加说明:异常断点(正如其他人所建议的那样)对这种类型的崩溃没有帮助,因为它没有因为发生异常而崩溃。

于 2013-12-05T13:21:31.757 回答
0

可以直接在 flurry-crashanalytics@flurry.com 询问吗?我希望他们能更好地帮助你。

看看你在那里做互联网请求的地方 - 我认为这是这个地方的东西。

为了更好的测试,我认为您需要找到 iPhone3.3 版本(我知道它是 verizon iphone 4)并尝试直接在此设备上调试您的应用程序。

于 2013-12-05T10:45:03.457 回答