最后我将应用程序上传到appstore。我也使用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
答案 0 :(得分:1)
关于你的问题:
问题1:如何从此类报告中获取更多信息?
答案:
SIGSEGV
,基本上表示分段错误。这种崩溃有几种可能的原因,例如:过度释放的对象,未初始化的指针或直接写入内存的代码。dealloc
调用。这暗示了在释放对象时导致崩溃。ASIHTTPRequest
的网络操作,堆栈跟踪中的调用类似。automaticallyNotifiesObserversForKey
暗示涉及键值观察。也许有一个观察者注册了一个密钥,观察者已经被解除分配。它更加棘手,因为通知是从后台线程触发的!例如。在后台进行网络连接并使用主线程上的对象进行观察。如果你不确定主线程上的对象是否足够长,那么在这些场景中很容易出现这种崩溃。 假设:如果您无法重现此问题,可能无法找到原因。我怀疑它与ASIHTTPRequest
及其内部键值编码处理或您自己使用它有某种关系。所以我会替换那个库,例如使用AFNetworking
或使用iOS提供的普通网络堆栈。此外,如果您使用键值编码,请检查有关多线程安全的代码。
问题2:这是真的,应用程序真的在用户设备上崩溃了吗?
是的,您只能通过真正的应用崩溃获得这些报告。
问题3:或者这样的错误对用户来说是不可见的?
不,SIGSEGV
是您应用的真正崩溃。如果您在代码中捕获异常并仍然生成报告并将其发送,则Invisible
将是。但据我所知Flurry不提供此功能,你显然没有实现它,并且崩溃也不是由异常引起的。所以这是不可能的。
问题4:应用程序是否可能无法崩溃但是用户可能会将其进程终止?
如果应用程序被杀,Flurry将不会收到崩溃报告。杀戮由iOS和进程内崩溃报告库(这意味着每个第三方崩溃报告服务)触发,永远不会为这些库创建报告。
附加说明:异常断点(正如其他人建议的那样)对此类崩溃没有帮助,因为它没有因为发生异常而崩溃。
答案 1 :(得分:0)
可以直接在flurry上询问 - crashanalytics@flurry.com?我希望他们能更好地帮助你。
看看你在那里做互联网请求的地方 - 我认为这是在这个地方。
为了更好的测试,我认为您需要找到iPhone3.3版本(因为我知道它是verizon iphone 4)并尝试直接在此设备上调试您的应用程序。