2010-05-21 88 views
0

我當時正在做一個iPhone/iPad通用二進制文件的項目。我創建了iPhone應用程序端 ,我也正在完成iPad。我注意到一件事,我在iPad上使用UIPopoverController類,這意味着當我在模擬器中爲3.2版本構建時,它會運行iPad一個並且工作正常,但如果我想要查看iPhone版應用程序,則意味着3.1。 3,它給了我一個在iPad類中缺少框架的錯誤。固件版本的iPhone/iPad通用版本問題

我不知道如何解決這個問題,因爲我不能再看到應用程序的iPhone版本並進行更改。我只能刪除所有的iPad類,並在重新進口後。

謝謝你們!

回答

2

隨着3.2 SDK的模擬器將只能作爲一個iPad運行。

如果你想測試你的iPhone端,你將不得不在包裝預處理條件3.2特定的代碼,使其與3.1.3編譯。

如果你有一個裝置,你應該能夠編寫iPad和使用3.2 SDK通過設置「部署目標」中目標的構建設置設置的iPhone版本。 將其設置爲您願意支持的最低版本的iPhone OS,例如3.1.3並使用3.2進行編譯。您還需要對任何新的3.2框架(例如Core Text)進行「薄弱環節」。

最後,如果你沒有準備好,你應該使用運行時檢查,以確保您的iPhone版本不會嘗試使用任何3.2的功能,如popovers。

這樣一來,你就不必刪除您的酥料餅的參考,你應該能夠編譯。但是,正如我所說的,只有當您有物理設備進行測試時,這纔會有用。

如果你想使用模擬器,你必須遵循預處理器條件方法。

+0

夥計,thaks爲答案。特別的是,我已經將目標部署爲3.1.3,我正在編譯3.2版本,而iPhone並沒有加載PopOver類。我不能使用「類檢查」,因爲我的appdelegate的接口.h中有彈出窗口的實例。我會嘗試編譯該設備,看看會發生什麼。 – DigitalVanilla 2010-05-23 09:29:17

+0

Okkei, 我設法運行: 基本上,如果你在.h文件中實例化的任何新的UIKit,您必須使用「ID」,而不是演員。非常通用。然後在任何電話的.m中,你必須檢查Class,最後是一團糟。 構建通用應用程序需要3次以上的檢查我猜。 但它現在工作:) – DigitalVanilla 2010-05-23 17:02:46

0

您只能使用3.2 Base SDK和iPhone OS Deployment Target 3.1.3(或更早版本)進行構建。當你這樣做時,模擬器將只能以3.2/iPad運行。就是這樣。

因此您需要在實際設備上進行調試以進行iPhone測試。