问题
I am having trouble with one of my apps, apple rejected it due to it crashing on launch - however I cannot replicate this. I have even provided an adhoc build to another device to test and it works fine. Anyway, they sent the crash log, and I opened it in Organiser to symbolicate.
Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Crashed Thread: 0
Last Exception Backtrace:
0 CoreFoundation 0x3311d29e __exceptionPreprocess + 158
1 libobjc.A.dylib 0x39dff97a objc_exception_throw + 26
2 CoreFoundation 0x33120e02 -[NSObject(NSObject) doesNotRecognizeSelector:] + 166
3 CoreFoundation 0x3311f52c ___forwarding___ + 388
4 CoreFoundation 0x33076f64 _CF_forwarding_prep_0 + 20
5 diamondlite 0x00065aec -[GADObjectPrivate loadPrivateRequest:autoRefresh:] (GADObjectPrivate.m:402)
6 diamondlite 0x00067540 -[GADObjectPrivate loadRequest:] (GADObjectPrivate.m:827)
7 diamondlite 0x0006501c -[GADBannerView loadRequest:] (GADBannerView.m:271)
8 diamondlite 0x00012f40 -[GalleryViewControllerViewController viewWillAppear:] (GalleryViewControllerViewController.m:94)
9 UIKit 0x38e94314 -[UIViewController _setViewAppearState:isAnimating:] + 132
10 UIKit 0x38ea08bc -[UINavigationController _startTransition:fromViewController:toViewController:] + 828
11 UIKit 0x38ea04a4 -[UINavigationController _startDeferredTransitionIfNeeded:] + 320
12 UIKit 0x38e714dc -[UILayoutContainerView layoutSubviews] + 176
13 UIKit 0x38e307fe -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 254
14 QuartzCore 0x3ab04d5e -[CALayer layoutSublayers] + 210
15 QuartzCore 0x3ab048fc CA::Layer::layout_if_needed(CA::Transaction*) + 456
16 QuartzCore 0x3ab337a2 -[CALayer layoutIfNeeded] + 138
17 UIKit 0x38eda0c4 -[UIViewController window:setupWithInterfaceOrientation:] + 204
18 UIKit 0x38ed92b0 -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:isRotating:] + 3616
19 UIKit 0x38ed8482 -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:] + 42
20 UIKit 0x38ed840c -[UIWindow _setRotatableViewOrientation:duration:force:] + 64
21 UIKit 0x3900e17c __57-[UIWindow _updateToInterfaceOrientation:duration:force:]_block_invoke_0 + 100
22 UIKit 0x38e96674 -[UIWindow _updateToInterfaceOrientation:duration:force:] + 212
23 UIKit 0x38e963b8 -[UIWindow setAutorotates:forceUpdateInterfaceOrientation:] + 688
24 UIKit 0x38e95d26 -[UIViewController _tryBecomeRootViewControllerInWindow:] + 154
25 UIKit 0x38e8ce9e -[UIWindow addRootViewControllerViewIfPossible] + 366
26 UIKit 0x38e88ae0 -[UIWindow _setHidden:forced:] + 360
27 UIKit 0x38eca1c4 -[UIWindow makeKeyAndVisible] + 56
28 diamondlite 0x000112fc -[AppDelegate application:didFinishLaunchingWithOptions:] (AppDelegate.m:96)
29 UIKit 0x38e8dacc -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 248
30 UIKit 0x38e8d656 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1186
31 UIKit 0x38e8583e -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 694
32 UIKit 0x38e2dc34 -[UIApplication handleEvent:withNewEvent:] + 1000
33 UIKit 0x38e2d6c8 -[UIApplication sendEvent:] + 68
34 UIKit 0x38e2d116 _UIApplicationHandleEvent + 6150
35 GraphicsServices 0x365a959e _PurpleEventCallback + 586
36 GraphicsServices 0x365a91ce PurpleEventCallback + 30
37 CoreFoundation 0x330f216e __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 30
38 CoreFoundation 0x330f2112 __CFRunLoopDoSource1 + 134
39 CoreFoundation 0x330f0f94 __CFRunLoopRun + 1380
40 CoreFoundation 0x33063eb8 0x3305b000 + 36536
41 CoreFoundation 0x33063d44 0x3305b000 + 36164
42 UIKit 0x38e84478 0x38e2a000 + 369784
43 UIKit 0x38e812f4 UIApplicationMain + 1116
44 diamondlite 0x00010dc2 main (main.m:16)
45 diamondlite 0x00010d5c start + 36
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x32047350 __pthread_kill + 8
1 libsystem_c.dylib 0x39d9e11e pthread_kill + 54
2 libsystem_c.dylib 0x39dda96e abort + 90
3 libc++abi.dylib 0x37fa7d4a abort_message + 70
4 libc++abi.dylib 0x37fa4ff4 default_terminate() + 20
5 libobjc.A.dylib 0x39dffa74 _objc_terminate() + 144
6 libc++abi.dylib 0x37fa5078 safe_handler_caller(void (*)()) + 76
7 libc++abi.dylib 0x37fa5110 std::terminate() + 16
8 libc++abi.dylib 0x37fa6594 __cxa_rethrow + 84
9 libobjc.A.dylib 0x39dff9cc objc_exception_rethrow + 8
10 CoreFoundation 0x33063f1c CFRunLoopRunSpecific + 452
11 CoreFoundation 0x33063d44 CFRunLoopRunInMode + 100
12 UIKit 0x38e84478 -[UIApplication _run] + 664
13 UIKit 0x38e812f4 UIApplicationMain + 1116
14 diamondlite 0x00010dc2 main (main.m:16)
15 diamondlite 0x00010d5c start + 36
At the end it also says;
Thread 0 crashed with ARM Thread State (32-bit):
r0: 0x00000000 r1: 0x00000000 r2: 0x00000000 r3: 0x3cbef534
r4: 0x00000006 r5: 0x3cbefb88 r6: 0x1dd82414 r7: 0x2fdf2a14
r8: 0x1dd823f0 r9: 0x00000300 r10: 0x00000000 r11: 0x000b55de
ip: 0x00000148 sp: 0x2fdf2a08 lr: 0x39d9e123 pc: 0x32047350
cpsr: 0x00000010
I just have no idea what is causing the problem? Because I cannot replicate it on my devices which makes it even harder - I hope someone can help?
Thanks,
Chris
回答1:
The answer was moving the Admob banner request into the ViewDidAppear section, oddly that seemed to fix it :)
回答2:
I had the exact same issue, but something slightly different caused it. Whenever I ran the app from XCode it worked perfectly fine, but the Appstore kindly continued to rejected it.
Unfortunately they where right, and the app did crash on launch with EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000.
Only after I finally realised that the Archive build uses different build settings to the debug build, was I able to reproduce it.
My mistake was that I had renamed my storyboard and the dev still picked up a version of it but the archive build did not.
Lesson learnt from this:
- Always create an archive build, which you distribute using an adhoc distribution in the organiser ( do not use you Distribution signing entity to sign it.)
- Drag the IPA file it creates to your iTunes
- Remove the app from your device
- Deploy the new app created by the IPA to your device.
You are now running the Actual build that will be sent to Appstore, and should be able to reproduce some of those nasty errors.
回答3:
this issue is related about lacking of -ObjC linker flag.
So, add linker flag -objC both debug and release (the profile that you use for archive)
You can also test your release binary with adhoc profile.
来源:https://stackoverflow.com/questions/13484084/exc-crash-sigabrt-cannot-track-it-down-please-see-crash-log-attached-gadob