Xcode 4模板在iOS 3.1.2中不起作用

时间:2011-04-21 08:28:48

标签: objective-c xcode crash

我想测试我的应用程序的旧手机,并得到一个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]];

2 个答案:

答案 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。