2010-09-07 198 views
3

我爲iOS部署目標3.2開發了一個iPhone應用程序。使用iOS 4.0 SDK和設備開發iOS 3.1應用程序?

但我的客戶改變了主意,並希望應用程序可用於iOS 3.1。 因此,我設置了iOS部署目標3.1,並將基本SDK保留爲4.0,但一切都編譯良好,但我確信我只使用iOS 3.2中引入的方法和類。

如何識別我的代碼不會在3.1設備上運行? (並可能導致應用程序崩潰)

我的問題是,我有一個iPhone設備(4.0.2安裝),SDK 3.1.x不再由Xcode提供。

+0

檢查此問題上的鏈接爲3.1.3 sdk http://stackoverflow.com/questions/3161385/install-xcode-3-2-3-w-iphone-sdk-4-get-base-sdk -missing-cant-see-other-sdks/3161502#3161502 – Remover 2010-09-12 12:01:47

回答

0

您是否也檢查過警告?如果沒有找到選擇器,那麼它將編譯,但可能會給你一個警告,說找不到匹配的選擇器或類似的東西。你說你確定你已經使用了> = 3.2的東西。你不知道他們是什麼嗎?

+0

我檢查過警告,但它們只是相對於基礎SDK(即4.0)。 – 2010-09-07 12:39:48

+0

我已經確定了> = 3.2(例如MPMoviePlayerViewController)的類,但我想找到一種方法來100%確保不會忘記應用程序中的任何內容。 – 2010-09-07 12:40:41

+0

您可以將基礎SDK更改爲3.1嗎?我不是100%確定它是否會有幫助。 – taskinoor 2010-09-07 13:42:45

0

確保您的應用程序可以在運行3.1的設備上工作的唯一方法是在運行3.1的設備上對其進行測試。這同樣適用於較舊的(iPhone 3GS之前版本)硬件。我在商店看到太多的應用程序,這些應用程序只能在較新的設備上進行清楚測試,並且在較舊的硬件上出現內存不足或耗盡的情況。如果您不支持該硬件,那麼請將您的Info.plist設置爲不適用於這些設備。

無論你認爲你已經檢查了更新的方法和類有多徹底,你仍然可能遇到微妙的問題。例如,即使您沒有使用任何新的API,您可能也可能不需要弱化某些框架的鏈接,或者您的應用程序會在較早的操作系統上崩潰。

在eBay上,較舊型號的iPod touch價格便宜,如果已經安裝了4.0版本,可以將其降級到較舊的操作系統版本。或者,您可以找到某個設備運行較舊的操作系統版本,並向其發送應用程序的臨時構建以進行測試。這是不太理想的,因爲您需要將樂器連接到設備,以確保內存使用情況不會過於接近舊設備上的危險區域。

對不起,但這是唯一確定的方法。正如另一位開發人員對我說的,「如果您沒有在特定的操作系統版本或設備上進行測試,請考慮您的應用程序無法在那裏運行。」

+0

我50%同意你:)由於編譯工具不夠,我認爲測試還不夠。您需要測試和編譯工具來提供一種方法來確保應用程序的質量。這就是爲什麼我現在正在尋找一個3.1版本的iOS SDK,它不是從Apple網站當前的Xcode下載中提供的。我怎樣才能得到一箇舊的3.1 SDK? – 2010-09-10 13:24:04

相關問題