今天苹果拒绝了我的应用程序,我试着跟踪他们发送的崩溃日志,但是我找不到崩溃的来源,我在两个实体手机上测试了我的应用程序:1-iPhone42-iphone 5。
我在xcode模拟器上测试了它: 1-Ipad 2-Ipad Retina 3-Ipad Retina (64位)
对所有的人来说都很好。
这就是他们寄给我的
We found that your app crashed on iPad running iOS 7.0.6, which is not in compliance with the App
Store Review Guidelines.
Your app crashed when we:
1) Start the app on a device
2) The app crashes on launch
This occurred when your app was used:
- On Wi-Fi
- On cellular network他们寄给我的这个
Incident Identifier: F0618233-A16F-4782-8B79-3A2AE5D8BFF6
CrashReporter Key: 1db6124687c1282286f546adfc3c54dc0d8ed7ce
Hardware Model: xxx
Process: taptap [266]
Path: /var/mobile/Applications/.....
Identifier: x.x.x
Version: 1.0 (1.0)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2014-02-22 14:32:19.271 -0800
OS Version: iOS 7.0.6 (11B651)
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread: 0
Last Exception Backtrace:
(0x2d9bff46 0x3819c6aa 0x2d9bfe88 0x2e347a66 0x8c47c 0x2d982114 0x2d8f6252 0x2e2dbc28 0x301b1f52
0x3019d4c4 0x3013841a 0x3013771c 0x3019cb38 0x325d5708 0x325d52f2 0x2d98a9da 0x2d98a976 0x2d98914a
0x2d8f3c22 0x2d8f3a06 0x3019bdd4 0x30197044 0x8fde2 0x386a4ab2)
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x3875b1fc __pthread_kill + 8
1 libsystem_pthread.dylib 0x387c4a2e pthread_kill + 54
2 libsystem_c.dylib 0x3870bff8 abort + 72
3 libc++abi.dylib 0x37a3acd2 abort_message + 70
4 libc++abi.dylib 0x37a536e0 default_terminate_handler() + 248
5 libobjc.A.dylib 0x3819c91e _objc_terminate() + 190
6 libc++abi.dylib 0x37a511c4 std::__terminate(void (*)()) + 76
7 libc++abi.dylib 0x37a50d28 __cxa_rethrow + 96
8 libobjc.A.dylib 0x3819c7f2 objc_exception_rethrow + 38
9 CoreFoundation 0x2d8f3c98 CFRunLoopRunSpecific + 636
10 CoreFoundation 0x2d8f3a06 CFRunLoopRunInMode + 102
11 UIKit 0x3019bdd4 -[UIApplication _run] + 756
12 UIKit 0x30197044 UIApplicationMain + 1132
13 taptap 0x0008fde2 0x83000 + 52706
14 libdyld.dylib 0x386a4ab4 start + 0
Thread 1 name: Dispatch queue: com.apple.libdispatch-manager
Thread 1:
0 libsystem_kernel.dylib 0x3874883c kevent64 + 24
1 libdispatch.dylib 0x38689210 _dispatch_mgr_invoke + 228
2 libdispatch.dylib 0x38688f96 _dispatch_mgr_thread$VARIANT$mp + 34
Thread 2:
0 libsystem_kernel.dylib 0x3875bc7c __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x387c1dc6 _pthread_wqthread + 306
2 libsystem_pthread.dylib 0x387c1c80 start_wqthread + 4
Thread 3:
0 libsystem_kernel.dylib 0x3875bc7c __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x387c1dc6 _pthread_wqthread + 306
2 libsystem_pthread.dylib 0x387c1c80 start_wqthread + 4
Thread 4 name: WebThread
Thread 4:
0 libsystem_kernel.dylib 0x3875afa8 __psynch_mutexwait + 24
1 libsystem_pthread.dylib 0x387c1f0a _pthread_mutex_lock + 302
2 WebCore 0x35a6f7f0 _WebTryThreadLock(bool) + 104
3 WebCore 0x35a6f772 WebRunLoopLock(__CFRunLoopObserver*, unsigned long,
void*) + 42
4 CoreFoundation 0x2d98b1ca
__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 18
5 CoreFoundation 0x2d988b6c __CFRunLoopDoObservers + 280
6 CoreFoundation 0x2d988f7c __CFRunLoopRun + 932
7 CoreFoundation 0x2d8f3c22 CFRunLoopRunSpecific + 518
8 CoreFoundation 0x2d8f3a06 CFRunLoopRunInMode + 102
9 WebCore 0x35a6e266 RunWebThread(void*) + 414
10 libsystem_pthread.dylib 0x387c3c1a _pthread_body + 138
11 libsystem_pthread.dylib 0x387c3b8a _pthread_start + 98
12 libsystem_pthread.dylib 0x387c1c8c thread_start + 4
Thread 5:
0 libsystem_kernel.dylib 0x38748a8c mach_msg_trap + 20
1 libsystem_kernel.dylib 0x38748888 mach_msg + 44
2 CoreFoundation 0x2d98a7be __CFRunLoopServiceMachPort + 150
3 CoreFoundation 0x2d988ee4 __CFRunLoopRun + 780
4 CoreFoundation 0x2d8f3c22 CFRunLoopRunSpecific + 518
5 CoreFoundation 0x2d8f3a06 CFRunLoopRunInMode + 102
6 libAVFAudio.dylib 0x2c976584 GenericRunLoopThread::Entry(void*) + 124
7 libAVFAudio.dylib 0x2c96a99c CAPThread::Entry(CAPThread*) + 176
8 libsystem_pthread.dylib 0x387c3c1a _pthread_body + 138
9 libsystem_pthread.dylib 0x387c3b8a _pthread_start + 98
10 libsystem_pthread.dylib 0x387c1c8c thread_start + 4
Thread 6:
0 libsystem_kernel.dylib 0x3875bc7c __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x387c1dc6 _pthread_wqthread + 306
2 libsystem_pthread.dylib 0x387c1c80 start_wqthread + 4
Thread 7 name: com.apple.NSURLConnectionLoader
Thread 7:
0 libsystem_kernel.dylib 0x38748a8c mach_msg_trap + 20
1 libsystem_kernel.dylib 0x38748888 mach_msg + 44
2 CoreFoundation 0x2d98a7be __CFRunLoopServiceMachPort + 150
3 CoreFoundation 0x2d988ee4 __CFRunLoopRun + 780
4 CoreFoundation 0x2d8f3c22 CFRunLoopRunSpecific + 518
5 CoreFoundation 0x2d8f3a06 CFRunLoopRunInMode + 102
6 Foundation 0x2e32e2f2 +[NSURLConnection(Loader) _resourceLoadLoop:] + 314
7 Foundation 0x2e3a3c82 __NSThread__main__ + 1058
8 libsystem_pthread.dylib 0x387c3c1a _pthread_body + 138
9 libsystem_pthread.dylib 0x387c3b8a _pthread_start + 98
10 libsystem_pthread.dylib 0x387c1c8c thread_start + 4
Thread 8 name: com.apple.CFSocket.private
Thread 8:
0 libsystem_kernel.dylib 0x3875b440 __select + 20
1 CoreFoundation 0x2d98e680 __CFSocketManager + 480
2 libsystem_pthread.dylib 0x387c3c1a _pthread_body + 138
3 libsystem_pthread.dylib 0x387c3b8a _pthread_start + 98
4 libsystem_pthread.dylib 0x387c1c8c thread_start + 4
Thread 0 crashed with ARM Thread State (32-bit):
r0: 0x00000000 r1: 0x00000000 r2: 0x00000000 r3: 0x00002060
r4: 0x00000006 r5: 0x3a60618c r6: 0x00000000 r7: 0x27d80594
r8: 0x1451e760 r9: 0x00000001 r10: 0x00000000 r11: 0x403e0000
ip: 0x00000148 sp: 0x27d80588 lr: 0x387c4a33 pc: 0x3875b1fc
cpsr: 0x00000010我怎样才能找到造成撞车日志的原因,谢谢
发布于 2014-02-23 19:28:38
苹果在提供的坠机报告中没有提供Binary Images部分,这使得找出原因的难度要大得多。没有这些信息,就不可能对Last Exception Backtrace进行符号化,并更自动地查找。
崩溃的原因肯定是应用程序内部的一个例外,并不是因为应用程序主线程阻塞时间太长,因为在这种情况下,报告不会显示Last Exception Backtrace,而且看起来非常不同。但是无论如何,在主线程上使用同步网络请求是不应该完成的!
那么,如何更多地了解这个异常。由于缺少Binary Images,并且系统调用的符号已经符号化,很难找到每个系统框架的地址范围。但是我们知道这个应用程序的加载地址,看看下面的一行:
13 taptap 0x0008fde2 0x83000 + 52706所以加载地址是0x83000。现在我们使用Last Exception Backtrace地址并搜索可能属于该应用程序的地址:
0x2d9bff46 0x3819c6aa 0x2d9bfe88 0x2e347a66 0x8c47c 0x2d982114 0x2d8f6252 0x2e2dbc28 0x301b1f52
0x3019d4c4 0x3013841a 0x3013771c 0x3019cb38 0x325d5708 0x325d52f2 0x2d98a9da 0x2d98a976 0x2d98914a
0x2d8f3c22 0x2d8f3a06 0x3019bdd4 0x30197044 0x8fde2 0x386a4ab2应该属于该应用程序的内容如下:
0x8c47c 0x8fde20x8fde2与主线程相同,并将象征如下
13 taptap 0x0008fde2 main (main.m:14)有趣的是0x8c47c,它从例外的位置上显示出第五位。为了获得这个符号,你需要你提交给苹果的应用程序dSYM。您可以在“组织者”Archives选项卡中找到它。选择应用程序并为应用程序选择条目。右键单击用于提交给苹果的项目,然后选择Show in Finder。然后另一个鼠标右键单击并选择Show Package Contents。打开dSYMs文件夹。
不知道使用了哪个iPad,而且由于缺少Binary Images部分,我们也不知道它(这将显示已使用的体系结构和UUID来验证体系结构、二进制和dSYM)。所以它可以是armv7或者armv7s。最新的iPad迷你与视网膜和iPad空气使用armv7s在32位模式,所有其他iPads也使用armv7s或armv7。因此,我们必须尝试这两者,这可能会返回相同的结果。
现在打开一个终端窗口并键入:
`xcrun atos -arch armv7s -l 0x83000 DragInTheDSYMItemFromTheFinderInHere 0x8c47c`如果没有意义的话,使用相同的方法,然后用armv7s替换为armv7。
这应该给你的类,方法,文件名和行号发生异常在您的应用程序。我们仍然会忽略异常原因,因为崩溃报告没有显示这一点,而且由于缺少二进制图像,我们不能真正地象征所有其他地址,并使用它来查找更多。希望这已经给出了一个想法。
一旦你有了,请更新你的问题与细节。
UPDATE:既然提供了二进制图像,我就能够象征坠机报告并获得Last Exception Backtrace符号。虽然没有应用符号,因为我显然没有dSYM。
符号化的报告可在这里获得:http://pastebin.com/An10dUpi
重要的框架如下
Last Exception Backtrace:
0 CoreFoundation 0x2d9bff46 __exceptionPreprocess + 126
1 libobjc.A.dylib 0x3819c6aa objc_exception_throw + 32
2 CoreFoundation 0x2d9bfe88 +[NSException raise:format:] + 98
3 Foundation 0x2e347a66 +[NSJSONSerialization JSONObjectWithData:options:error:] + 60
4 taptap 0x8c47c 0x83000 + 38012这表明,发生崩溃是因为应用程序试图将给定的NSData对象序列化为json,但失败了,因为NSData对象不是有效的json字符串。
如文章中所述,当符号化第4行时,您将得到发生这种情况的代码中的确切行。
https://stackoverflow.com/questions/21965059
复制相似问题