ios app被拒绝,需要帮助确定问题

B.I*_*I.A 4 appstore-approval ipad ios

Apple今天拒绝了我的应用程序,我试图按照他们发送的崩溃日志,但我找不到崩溃的来源,我在两部实体手机上测试了我的应用程序:1- iphone 4 2- 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
Run Code Online (Sandbox Code Playgroud)

而这是他们寄给我的那个洛杉矶

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
Run Code Online (Sandbox Code Playgroud)

我怎么能找到这个崩溃日志的原因,谢谢

Ker*_*rni 6

Apple没有Binary Images在提供的崩溃报告中提供该部分,因此找出原因是非常困难的.如果没有这些信息,则无法对其进行符号化Last Exception Backtrace并更自动地发现.

崩溃的原因绝对是应用程序内部的一个例外,这不是因为应用程序主线程阻塞太长时间,因为在这种情况下报告不会显示Last Exception Backtrace和看起来非常不同.但是绝不应该在主线程上使用同步网络请求!

那么如何找到有关此异常的更多信息.由于Binary Images缺少并且系统调用的符号已经被符号化,因此很难找到每个系统框架的地址范围.但我们知道应用程序的加载地址,查看以下行:

13  taptap                          0x0008fde2 0x83000 + 52706
Run Code Online (Sandbox Code Playgroud)

所以加载地址是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
Run Code Online (Sandbox Code Playgroud)

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

0x8c47c 0x8fde2
Run Code Online (Sandbox Code Playgroud)

0x8fde2 与主线程中的相同,并将符号化为类似的东西

13  taptap                          0x0008fde2 main (main.m:14)
Run Code Online (Sandbox Code Playgroud)

有趣的是0x8c47c,从例外的顶部显示第5位.要获得此符号,您需要提交给Apple的应用程序dSYM.您可以在组织者Archives选项卡中找到它.选择应用程序并选择应用程序的条目.用鼠标右键单击您用于提交给Apple的项目并选择Show in Finder.然后另一个鼠标右键单击并选择Show Package Contents.打开dSYMs文件夹.

Binary Images不知道使用了哪个iPad,因为该部分缺失,我们也不知道(这将显示使用的体系结构和UUID来验证体系结构,二进制和dSYM).所以它可以是armv7armv7s.最新的iPad mini配有视网膜,而iPad Air则采用armv7s32位模式,所有其他iPad也使用armv7s或armv7.所以我们必须尝试两者,这可能会返回相同的结果.

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

`xcrun atos -arch armv7s -l 0x83000 DragInTheDSYMItemFromTheFinderInHere 0x8c47c`
Run Code Online (Sandbox Code Playgroud)

然后使用相同的,如果它没有意义,并替换armv7sarmv7.

这应该为您提供应用程序中发生异常的类,方法,文件名和行号.我们仍然会错过异常原因,因为崩溃报告没有显示,并且由于缺少二进制映像,我们无法真正地表示所有其他地址并使用它们了解更多信息.希望这已经有了一个想法.

完成后,请使用详细信息更新您的问题.

更新:现在提供的二进制图像,我能够表示崩溃报告并获取Last Exception Backtrace符号.虽然没有app符号,因为我显然没有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
Run Code Online (Sandbox Code Playgroud)

这表明发生崩溃是因为应用程序尝试将给定NSData对象序列化为json而未能这样做,因为该NSData对象不是有效的json字符串.

如上所述在帖子中描述第4行时,您将在代码中得到确切的行.