我想测试我的应用程序的旧手机,并得到一个3.1.2。但是当我尝试运行它时,它只显示启动画面然后崩溃。
然后我尝试从Xcode 4模板创建一个新的基于Hello World视图的应用程序,但即使使用这个,它也可以正常运行但在启动时崩溃。我将部署目标设置为3.1。
如果我尝试使用iPad 3.2模拟器运行此程序,它也会崩溃。
问题出在哪里?
当我在iOS设备上运行时,它会发出此警告然后停止,而不是真正崩溃:
警告:在加载的库中检测到UUID不匹配 - 在磁盘上是: /Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.1/Symbols/System/Library/Priv
更新: 我发现由于某种原因,我之前在DeviceSupport文件夹中创建了从3.1.2(7D11)到3.1.2的快捷方式。我删除了,现在我不再收到警告了。只是崩溃;)
0 gdb-arm-apple-darwin
0x000000010010974a internal_vproblem + 308 1 gdb-arm-apple-darwin
0x0000000100109924 internal_verror + 27 2 gdb-arm-apple-darwin
0x00000001001099c2 align_down + 0 3
GDB-手臂苹果达尔文
0x0000000100150c5e macosx_solib_add + 794 4 gdb-arm-apple-darwin
0x000000010016417c remote_macosx_complete_create_or_attach + 187 5 gdb-arm-apple-darwin 0x000000010016489e remote_macosx_create_inferior + 1252 6 GDB-手臂苹果达尔文
0x000000010005f6c3 run_command_1 + 586 7 gdb-arm-apple-darwin
0x0000000100107b7f execute_command + 557 8 gdb-arm-apple-darwin
0x00000001000171e7 mi_execute_async_cli_command + 204 9
GDB-手臂苹果达尔文
0x00000001000168e5 captured_mi_execute_command + 344 10 GDB-手臂苹果达尔文
0x0000000100072a62 catch_exception + 57 11 gdb-arm-apple-darwin
0x000000010001443e mi_execute_command + 140 12 gdb-arm-apple-darwin 0x0000000100077721 process_event + 133 13 gdb-arm-apple-darwin
0x0000000100078435 gdb_do_one_event + 1049 14 gdb-arm-apple-darwin
0x0000000100072b49 catch_errors + 70 /SourceCache/gdb/gdb-1518/src/gdb/macosx/macosx-nat-dyld.c:1648: 内部错误:无法识别的共享 库断点内部问题 已进一步检测到GDB 调试可能证明不可靠。
当我运行iPad模拟器时,它在HelloWorldAppDelegate.m中的这一行崩溃: self.window.rootViewController = self.viewController;
有了这条消息: 2011-04-21 11:46:09.006 HelloWorld [5492:207] * - [UIWindow setRootViewController:]:无法识别的选择器发送到实例0x4c11bb0 2011-04-21 11:46:09.007 HelloWorld [5492:207] 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' ** - [UIWindow setRootViewController:]:无法识别的选择器发送到实例0x4c11bb0'
更新: 这解决了这个问题:
// self.window.rootViewController = self.viewController;
[self.window addSubview: [self.viewController view]];
答案 0 :(得分:2)
在您的app delegate中使用[window addSubview: [myRootViewController view]];
代替[window: setRootViewController: myRootViewController];
。
答案 1 :(得分:2)
我遇到了与你完全相同的问题,我从Xcode 4模板创建的每个应用都会给你我描述的错误。通过查看Xcode 4在线文档中包含的一些示例代码,我发现它可以在运行3.1.3的iPhone 3G上运行,如果我更换了
self.window.rootViewController = self.navigationController;
带
[self.window addSubview:self.navigationController.view];
这是为iPhone运行3.1.3。