Hi I have had an iOS app in review, but it just got rejected... I have been trying to stimulate my ipad with iOS 6.1.3 to make it crash as described by apple:
Your app crashed when we tapped the action or option buttons.
But im failing, can the exact procedure of the crash be read from the report below? Im suspecting they are doing something really crazy, can you tell me if the crash is network related? or if they have been pushing a certain button? I myself cant find enough information:
Symbolicated:
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread: 0
Last Exception Backtrace:
0 CoreFoundation 0x32b0629e __exceptionPreprocess + 158
1 libobjc.A.dylib 0x3a9aa97a objc_exception_throw + 26
2 CoreFoundation 0x32b061c0 +[NSException raise:format:] + 100
3 UIKit 0x34aab56c -[UINib instantiateWithOwner:options:] + 1632
4 UIKit 0x34aaab96 -[UIViewController _loadViewFromNibNamed:bundle:] + 230
5 UIKit 0x349a3038 -[UIViewController loadView] + 88
6 UIKit 0x3492d468 -[UIViewController loadViewIfRequired] + 64
7 CodeFriend 0x0000fb14 -[ThemesPopOverViewController initWithNibName:bundle:] (ThemesPopOverViewController.m:24)
8 CodeFriend 0x0000e21a -[AppDelegate settingAct:] (AppDelegate.m:127)
9 UIKit 0x349f90c0 -[UIApplication sendAction:to:from:forEvent:] + 68
10 UIKit 0x349f9072 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 26
11 UIKit 0x349f9050 -[UIControl sendAction:to:forEvent:] + 40
12 UIKit 0x349f8906 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 498
13 UIKit 0x349f8dfc -[UIControl touchesEnded:withEvent:] + 484
14 UIKit 0x349215ec -[UIWindow _sendTouchesForEvent:] + 520
15 UIKit 0x3490e7fc -[UIApplication sendEvent:] + 376
16 UIKit 0x3490e116 _UIApplicationHandleEvent + 6150
17 GraphicsServices 0x3660259e _PurpleEventCallback + 586
18 GraphicsServices 0x366021ce PurpleEventCallback + 30
19 CoreFoundation 0x32adb16e __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 30
20 CoreFoundation 0x32adb112 __CFRunLoopDoSource1 + 134
21 CoreFoundation 0x32ad9f94 __CFRunLoopRun + 1380
22 CoreFoundation 0x32a4ceb8 CFRunLoopRunSpecific + 352
23 CoreFoundation 0x32a4cd44 0x32a44000 + 36164
24 GraphicsServices 0x366012e6 GSEventRunModal + 70
25 UIKit 0x349622fc UIApplicationMain + 1116
26 CodeFriend 0x0000d3b6 main (main.m:16)
27 libdyld.dylib 0x3ade1b1c start + 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x3aea8350 __pthread_kill + 8
1 libsystem_c.dylib 0x3ae1f11e pthread_kill + 54
2 libsystem_c.dylib 0x3ae5b96e abort + 90
3 libc++abi.dylib 0x3a3f9d4a abort_message + 70
4 libc++abi.dylib 0x3a3f6ff4 default_terminate() + 20
5 libobjc.A.dylib 0x3a9aaa74 _objc_terminate() + 144
6 libc++abi.dylib 0x3a3f7078 safe_handler_caller(void (*)()) + 76
7 libc++abi.dylib 0x3a3f7110 std::terminate() + 16
8 libc++abi.dylib 0x3a3f8594 __cxa_rethrow + 84
9 libobjc.A.dylib 0x3a9aa9cc objc_exception_rethrow + 8
10 CoreFoundation 0x32a4cf1c CFRunLoopRunSpecific + 452
11 CoreFoundation 0x32a4cd44 CFRunLoopRunInMode + 100
12 GraphicsServices 0x366012e6 GSEventRunModal + 70
13 UIKit 0x349622fc UIApplicationMain + 1116
14 CodeFriend 0x0000d3b6 main (main.m:16)
15 libdyld.dylib 0x3ade1b1c start + 0
Thread 1:
0 libsystem_kernel.dylib 0x3aea8d98 __workq_kernreturn + 8
1 libsystem_c.dylib 0x3adf6cf6 _pthread_workq_return + 14
2 libsystem_c.dylib 0x3adf6a12 _pthread_wqthread + 362
3 libsystem_c.dylib 0x3adf68a0 start_wqthread + 4
Thread 2 name: Dispatch queue: com.apple.libdispatch-manager
Thread 2:
0 libsystem_kernel.dylib 0x3ae98648 kevent64 + 24
1 libdispatch.dylib 0x3adc8974 _dispatch_mgr_invoke + 792
2 libdispatch.dylib 0x3adc8654 _dispatch_mgr_thread$VARIANT$mp + 32
Thread 3:
0 libsystem_kernel.dylib 0x3aea8d98 __workq_kernreturn + 8
1 libsystem_c.dylib 0x3adf6cf6 _pthread_workq_return + 14
2 libsystem_c.dylib 0x3adf6a12 _pthread_wqthread + 362
3 libsystem_c.dylib 0x3adf68a0 start_wqthread + 4
Thread 4 name: WebThread
Thread 4:
0 libsystem_kernel.dylib 0x3ae97eb4 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x3ae98048 mach_msg + 36
2 CoreFoundation 0x32adb040 __CFRunLoopServiceMachPort + 124
3 CoreFoundation 0x32ad9d9e __CFRunLoopRun + 878
4 CoreFoundation 0x32a4ceb8 CFRunLoopRunSpecific + 352
5 CoreFoundation 0x32a4cd44 CFRunLoopRunInMode + 100
6 WebCore 0x38a3c500 RunWebThread(void*) + 440
7 libsystem_c.dylib 0x3ae0130e _pthread_start + 306
8 libsystem_c.dylib 0x3ae011d4 thread_start + 4
Thread 0 crashed with ARM Thread State (32-bit):
r0: 0x00000000 r1: 0x00000000 r2: 0x00000000 r3: 0x3c99e534
r4: 0x00000006 r5: 0x3c99eb88 r6: 0x1dda5554 r7: 0x2fdf7a14
r8: 0x1dda5530 r9: 0x00000300 r10: 0x00000000 r11: 0x00000000
ip: 0x00000148 sp: 0x2fdf7a08 lr: 0x3ae1f123 pc: 0x3aea8350
cpsr: 0x00000010
So moving on: The code used to initialize the ThemesPopOverViewController is:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(20, 0, self.view.frame.size.width - 40, 350)];
[self.tableView setBackgroundColor:[UIColor clearColor]];
[self.tableView setDelegate:self];
[self.tableView setDataSource:self];
themes = [[NSArray alloc] initWithObjects:kRegexHighlightViewThemeArray];
[self.view addSubview:self.tableView];
int item = [themes indexOfObject:theDelegate.codeView.currentTheme];
NSIndexPath *indexPath = [NSIndexPath indexPathForItem:item inSection:0];
[self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
I actually seems that even after the popover is removed from the view hierarchy the allocation done by the init method above occupies memory, it is ARC, do i need to set it to nil somewhere above removing the popover? So everytime the popover is pressed the memory allocations increase...
The most relevant information is:
7 CodeFriend 0x0000fb14 -[ThemesPopOverViewController initWithNibName:bundle:] (ThemesPopOverViewController.m:24)
ThemesPopOverViewController
is being loaded from a nib file (xib). That means you have created a ThemesPopOverViewController
instance and you are accessing its view
for the first time (for example, by displaying it).
6 UIKit 0x3492d468 -[UIViewController loadViewIfRequired] + 64
5 UIKit 0x349a3038 -[UIViewController loadView] + 88
4 UIKit 0x34aaab96 -[UIViewController _loadViewFromNibNamed:bundle:] + 230
Methods called by UIKit to load the view
3 UIKit 0x34aab56c -[UINib instantiateWithOwner:options:] + 1632
Here is the view actually loaded and the IBOutlets in the owner are connected.
You can't learn more from the stack trace. I am pretty sure it's not a memory error, there should even be a descriptive error message because of the following line
2 CoreFoundation 0x32b061c0 +[NSException raise:format:] + 100
It's definitely not connection related. Probably it's an invalid nib (xib) file or invalid IBOutlets. Are you sure all the IBOutlet are properly synthesized?
I will also describe shortly what are the previous steps on the stack:
16 UIKit 0x3490e116 _UIApplicationHandleEvent + 6150
15 UIKit 0x3490e7fc -[UIApplication sendEvent:] + 376
14 UIKit 0x349215ec -[UIWindow _sendTouchesForEvent:] + 520
The application is processing a tap (touch event). The event is sent to a window (UIWindow
).
13 UIKit 0x349f8dfc -[UIControl touchesEnded:withEvent:] + 484
12 UIKit 0x349f8906 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 498
11 UIKit 0x349f9050 -[UIControl sendAction:to:forEvent:] + 40
The event is a "touch up" event (touchesEnded
is called) and the receiver is a button (UIButton
inherits from UIControl
). The button then generates an action, probably UIControlTouchUpInside
and sends it.
10 UIKit 0x349f9072 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 26
9 UIKit 0x349f90c0 -[UIApplication sendAction:to:from:forEvent:] + 68
The application sends the action to the listeners.
8 CodeFriend 0x0000e21a -[AppDelegate settingAct:] (AppDelegate.m:127)
Method called -(void)settingAct
in your AppDelegate
is called in response to the action. From the name I can deduce that "Settings" button was touched. The method than tries to create a controller (popover?) and the crash happens.
You'll need to symbolicate the crash report by dragging it into the Xcode organizer window. If you have the symbols file for the build you sent (it should be there in the organizer with your app archives), Xcode will show you more information about what each thread was doing when the app crashed.
User contributions licensed under CC BY-SA 3.0