2011-04-21 80 views
1

我想測試我的應用程序的舊手機,並得到一個3.1.2。但是當我嘗試運行它時,它只是顯示啓動畫面,然後崩潰。Xcode 4模板不適用於iOS 3.1.2

然後我試圖從Xcode 4模板中創建一個新的Hello World基於視圖的應用程序,但即使使用這個,它也可以正常構建,但在啓動時崩潰。我將部署目標設置爲3.1。

如果我嘗試使用iPad 3.2模擬器運行這一個,它也會崩潰。

問題在哪裏?

當我在iOS設備上運行它,它給出了這樣的警告,然後就停止,而不是真的崩潰:

警告:與加載的庫檢測UUID不匹配 - 在磁盤上是: /開發/平臺/的iPhoneOS平臺/設備支持/ 3.1 /符號/系統/庫/ 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-arm-apple-darwin
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-arm-apple-darwin
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-arm-apple-darwin
0x00000001000168e5 captured_mi_execute_command + 344 10 gdb-arm-apple-darwin
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: internal-error: unrecognized shared library breakpoint A problem internal to GDB has been detected, further debugging may prove unreliable.

當運行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'

UPDATE: 這是通過解決這個:

// self.window.rootViewController = self.viewController; 
    [self.window addSubview: [self.viewController view]]; 
+0

你可以發佈崩潰日誌嗎? – kubi 2011-04-21 09:32:24

+0

我更新了我的帖子。 – Snilleblixten 2011-04-21 09:49:08

+0

嘗試使用NSLog()來確定應用程序停止在哪一點。 – dasdom 2011-04-21 14:23:24

回答

2

在您的應用程序委託中使用[window addSubview: [myRootViewController view]];而不是[window: setRootViewController: myRootViewController];

+0

謝謝,這使得它在iPad 3.2模擬器中工作,但仍然舊iPhone停止(沒有錯誤)。 – Snilleblixten 2011-04-21 11:02:05

2

我和你有完全相同的問題,而我從Xcode 4模板創建的每個應用程序都會給我你描述的錯誤。通過查看一些示例代碼包含在Xcode 4的在線文檔,我發現,它的工作原理上的iPhone 3G運行3.1.3如果我換成

self.window.rootViewController = self.navigationController;

[self.window addSubview:self.navigationController.view];

這爲iPhone運行3.1.3做了。

相關問題