Rejected iPhone app has strange crash logs

2019-07-28 03:02发布

问题:

My app was rejected from the app store due to a crash that produced the crash log below. What is even more strange than the crash is that the steps given to reproduce it don't happen to me or any of 10+ beta testers (on differing iOS devices). Can anyone help explain this more? I know the exception codes are some sort of memory thing, but is that the only reason that could cause this crash log? For instance, I don't even get a line number.

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x00000000, 0x00000000
Crashed Thread:  0

Thread 0 Crashed:
0   libSystem.B.dylib               0x33bd52d4 __kill + 8
1   libSystem.B.dylib               0x33bd52c4 kill + 4
2   libSystem.B.dylib               0x33bd52b6 raise + 10
3   libSystem.B.dylib               0x33be9d72 abort + 50
4   libstdc++.6.dylib               0x31bdba20 __gnu_cxx::__verbose_terminate_handler() + 376
5   libobjc.A.dylib                 0x3347c594 _objc_terminate + 104
6   libstdc++.6.dylib               0x31bd9df2 __cxxabiv1::__terminate(void (*)()) + 46
7   libstdc++.6.dylib               0x31bd9e46 std::terminate() + 10
8   libstdc++.6.dylib               0x31bd9f16 __cxa_throw + 78
9   libobjc.A.dylib                 0x3347b4c4 objc_exception_throw + 64
10  Foundation                      0x33639910 __NSThreadPerformPerform + 648
11  CoreFoundation                  0x33a767d6 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 6
12  CoreFoundation                  0x33a485b0 __CFRunLoopDoSources0 + 376
13  CoreFoundation                  0x33a47e54 __CFRunLoopRun + 224
14  CoreFoundation                  0x33a47c80 CFRunLoopRunSpecific + 224
15  CoreFoundation                  0x33a47b88 CFRunLoopRunInMode + 52
16  GraphicsServices                0x33b0e4a4 GSEventRunModal + 108
17  GraphicsServices                0x33b0e550 GSEventRun + 56
18  UIKit                           0x32099322 -[UIApplication _run] + 406
19  UIKit                           0x32096e8c UIApplicationMain + 664
20  AppName                         0x00002172 main (main.m:14)
21  AppName                         0x0000213c start + 32

回答1:

Your code threw an un-handled exception somewhere or called abort() for some reason. It looks like it's happening in a dispatch to the main thread (so somewhere you are calling something like [obj performSelectorOnMainThread:@selector(something:) withObject:nil] or something similar. My best guess is that the selector you're choosing doesn't exist on the object (either due to memory management issues, like the object was replaced by something else) or due to some dynamic assignment you're doing.