2010-11-07 45 views
0

好的,之前有一些問題暗指,我甚至讀過一些成功做這件事的人的二手報告,但到目前爲止我還沒有找到具體的答案。我可以爲4.x模擬器構建,但在3.x模擬器中運行嗎?

基本上,我想爲使用iOS 4.x的模擬器構建一個應用程序,然後在3.x模擬器上運行它。

我同時安裝了兩個SDK,所以我需要的是讓應用程序顯示在3.x模擬器中的最後一英里。

我試着從庫/應用程序支持/ iPhone模擬器/ 4.2 /應用程序複製到庫/應用程序支持/ iPhone模擬器/ 3.0 /應用程序,但它不會顯示當我加載3.x模擬器。有一個名爲applicationstate.plist的二元plist,我猜測它會跟蹤模擬器上安裝的應用程序,但我不知道二進制格式是什麼,所以我在這一點上陷入困​​境。

有沒有人設法將4.x應用加載到3.x模擬器上?如果是這樣,你是怎麼做到的?

回答

0

答案是:不,您不能爲4.x模擬器構建並在3.1.x模擬器或更早的版本上運行,因爲模擬器工作方式發生根本性變化。

測試3.x支持的唯一方法是在3.x設備上運行它(設置最小部署目標後),或者在支持3.x模擬器的舊版xcode上構建(這是不可行的如果您使用Xcode 4,iPad 3.2除外)。

注意:設置部署目標不會測試與較早的操作系統的兼容性。它是真正運行的操作系統(例如「iPhone 4.3模擬器」,「iPhone 4.0模擬器」,「iPad 3.2模擬器」或實際設備)。

當然,現在3.x用戶佔總人口的比例還不到10%,但再也不用支持它了。

0

爲什麼你甚至試圖做到這一點?你想達到什麼目的?如果你真的想要做的是確保該應用程序在iOS 3.x上工作,然後簡單地聲明,在xcode中,不要擔心實際的模擬器。只要您在xcode的項目設置中將「iOS部署目標」設置爲「3.0」,模擬器就可以運行iOS 5.0。這將確保應用程序與iOS 3.x及更高版本兼容。很明顯,您仍然需要確保在SDK 3.x設備上運行時不會調用SDK 4.x中的方法。如果這就是你想要測試的東西,那麼你正在做的事情實際上不會起作用。你應該(正如蘋果所建議的那樣)總是抓住一個運行目標固件版本的真實設備並對其進行測試。例如,使用iOS 3.x抓取舊iPod,然後嘗試測試您的應用程序,以確保在舊版固件下運行時未調用iOS 4.x方法。

+0

我設法通過在較新的Xcode的旁邊安裝舊的Xcode來實現它。像魅力一樣工作,現在我可以測試是否意外地調用了iOS 4.x API,而無需連接舊設備(現在越來越難以找到)。 – Karl 2011-05-17 15:20:15

相關問題