嗨我有一个iOS应用程序正在审核中,但它被拒绝了......我一直试图用iOS 6.1.3刺激我的ipad,使其崩溃,如苹果所述:
点击操作或选项按钮后,您的应用程序崩溃了。
但是我失败了,可以从下面的报告中读取崩溃的确切程序吗? 我怀疑他们正在做一些非常疯狂的事情,你能告诉我崩溃是否与网络有关?或者他们是否按了某个按钮?我自己找不到足够的信息:
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
继续前进:用于初始化ThemesPopOverViewController的代码是:
- (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.
}
我实际上看来,即使从视图层次结构中删除了popover,上面的init方法完成的分配占用了内存,它也是ARC,我需要将它设置为nil,而不是删除popover吗?因此,每次按下弹出窗口时,内存分配都会增加......
答案 0 :(得分:3)
最相关的信息是:
7 CodeFriend 0x0000fb14 -[ThemesPopOverViewController initWithNibName:bundle:] (ThemesPopOverViewController.m:24)
正在从nib文件(xib)加载 ThemesPopOverViewController
。这意味着您已创建了ThemesPopOverViewController
实例,并且您是第一次访问其view
(例如,通过显示它)。
6 UIKit 0x3492d468 -[UIViewController loadViewIfRequired] + 64
5 UIKit 0x349a3038 -[UIViewController loadView] + 88
4 UIKit 0x34aaab96 -[UIViewController _loadViewFromNibNamed:bundle:] + 230
UIKit调用加载视图的方法
3 UIKit 0x34aab56c -[UINib instantiateWithOwner:options:] + 1632
这是实际加载的视图,并且所有者中的IBOutlets已连接。
您无法从堆栈跟踪中了解更多信息。我很确定它不是内存错误,甚至应该有一条描述性错误消息,因为以下行
2 CoreFoundation 0x32b061c0 +[NSException raise:format:] + 100
它绝对不是连接相关的。可能它是一个无效的nib(xib)文件或无效的IBOutlets。您确定所有IBOutlet都已正确合成吗?
我还将简要描述堆栈上的前几步:
16 UIKit 0x3490e116 _UIApplicationHandleEvent + 6150
15 UIKit 0x3490e7fc -[UIApplication sendEvent:] + 376
14 UIKit 0x349215ec -[UIWindow _sendTouchesForEvent:] + 520
应用程序正在处理点按(触摸事件)。该事件将发送到一个窗口(UIWindow
)。
13 UIKit 0x349f8dfc -[UIControl touchesEnded:withEvent:] + 484
12 UIKit 0x349f8906 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 498
11 UIKit 0x349f9050 -[UIControl sendAction:to:forEvent:] + 40
该活动是"修饰" event(touchesEnded
被调用),接收器是一个按钮(UIButton
继承自UIControl
)。该按钮然后生成一个动作,可能是UIControlTouchUpInside
并发送它。
10 UIKit 0x349f9072 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 26
9 UIKit 0x349f90c0 -[UIApplication sendAction:to:from:forEvent:] + 68
应用程序将操作发送给侦听器。
8 CodeFriend 0x0000e21a -[AppDelegate settingAct:] (AppDelegate.m:127)
调用-(void)settingAct
中名为AppDelegate
的方法以响应操作。从名称我可以推断出"设置"按钮被触动了。该方法比尝试创建一个控制器(popover?)并发生崩溃。
答案 1 :(得分:0)
您需要通过将崩溃报告拖入Xcode管理器窗口来对其进行符号化。如果你有你发送的构建的符号文件(它应该在组织者的应用程序存档中),Xcode将显示有关应用程序崩溃时每个线程正在做什么的更多信息。