首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ios应用程序被拒绝,需要帮助识别问题

ios应用程序被拒绝,需要帮助识别问题
EN

Stack Overflow用户
提问于 2014-02-23 06:38:12
回答 1查看 6.3K关注 0票数 4

今天苹果拒绝了我的应用程序,我试着跟踪他们发送的崩溃日志,但是我找不到崩溃的来源,我在两个实体手机上测试了我的应用程序:1-iPhone42-iphone 5。

我在xcode模拟器上测试了它: 1-Ipad 2-Ipad Retina 3-Ipad Retina (64位)

对所有的人来说都很好。

这就是他们寄给我的

代码语言:javascript
复制
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

他们寄给我的这个

代码语言:javascript
复制
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

我怎样才能找到造成撞车日志的原因,谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-23 19:28:38

苹果在提供的坠机报告中没有提供Binary Images部分,这使得找出原因的难度要大得多。没有这些信息,就不可能对Last Exception Backtrace进行符号化,并更自动地查找。

崩溃的原因肯定是应用程序内部的一个例外,并不是因为应用程序主线程阻塞时间太长,因为在这种情况下,报告不会显示Last Exception Backtrace,而且看起来非常不同。但是无论如何,在主线程上使用同步网络请求是不应该完成的!

那么,如何更多地了解这个异常。由于缺少Binary Images,并且系统调用的符号已经符号化,很难找到每个系统框架的地址范围。但是我们知道这个应用程序的加载地址,看看下面的一行:

代码语言:javascript
复制
13  taptap                          0x0008fde2 0x83000 + 52706

所以加载地址是0x83000。现在我们使用Last Exception Backtrace地址并搜索可能属于该应用程序的地址:

代码语言:javascript
复制
0x2d9bff46 0x3819c6aa 0x2d9bfe88 0x2e347a66 0x8c47c 0x2d982114 0x2d8f6252 0x2e2dbc28 0x301b1f52     
0x3019d4c4 0x3013841a 0x3013771c 0x3019cb38 0x325d5708 0x325d52f2 0x2d98a9da 0x2d98a976 0x2d98914a     
0x2d8f3c22 0x2d8f3a06 0x3019bdd4 0x30197044 0x8fde2 0x386a4ab2

应该属于该应用程序的内容如下:

代码语言:javascript
复制
0x8c47c 0x8fde2

0x8fde2与主线程相同,并将象征如下

代码语言:javascript
复制
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。因此,我们必须尝试这两者,这可能会返回相同的结果。

现在打开一个终端窗口并键入:

代码语言:javascript
复制
`xcrun atos -arch armv7s -l 0x83000 DragInTheDSYMItemFromTheFinderInHere 0x8c47c`

如果没有意义的话,使用相同的方法,然后用armv7s替换为armv7

这应该给你的类,方法,文件名和行号发生异常在您的应用程序。我们仍然会忽略异常原因,因为崩溃报告没有显示这一点,而且由于缺少二进制图像,我们不能真正地象征所有其他地址,并使用它来查找更多。希望这已经给出了一个想法。

一旦你有了,请更新你的问题与细节。

UPDATE:既然提供了二进制图像,我就能够象征坠机报告并获得Last Exception Backtrace符号。虽然没有应用符号,因为我显然没有dSYM。

符号化的报告可在这里获得:http://pastebin.com/An10dUpi

重要的框架如下

代码语言:javascript
复制
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行时,您将得到发生这种情况的代码中的确切行。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21965059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档