2011-10-18 54 views
5

我無法找到有關使用iOS 5 SDK/XCode 4.2進行開發的一些良好信息,並且能夠支持舊設備 - 即iPhone 3G。導航舊/新iOS設備的碎片

本質上,我剛開始使用iOS開發,並且下載了使用iOS 5 SDK的xCode 4.2。我擔心的是,我嘗試在我的iPhone 3G上運行一個vanilla品牌的新項目來測試兼容性(例如,armv6 problem),我有一堆麻煩。蘋果希望我們爲更新的硬件構建相當明顯,但我們在支持仍在運行較舊硬件的應用程序用戶方面負有責任。特別是如果你想讓你的應用程序儘可能多地使用。例如,ARC聽起來像是上帝發送的,但它不適用於低於4.3的iOS版本。直到我試圖在iOS5設備上安裝應用程序之前,我也有過使用Storyboard的經驗。

當嘗試支持所有iOS設備時,是否有任何良好的信息源用於最佳實踐?這僅僅是一個用戶不得不承認現在是時候獲得新iPhone的情況了嗎?或者,在我們剛剛追逐長尾巴之前,是否使用較舊的SDK進行開發?這個問題已經在追逐長尾巴了嗎?

這讓人想起瀏覽器標準支持碎片的一種微妙方式。期待聽到別人的想法。

+0

這是一個真正的問題。我認爲最好的,也就是Apple推薦的最好的做法是始終推進並放棄對較老的操作系統的支持。你可以在他們自己的應用程序中看到。 iMovie和所有的iWork現在只有iOS 5。我不同意這一點,如果僅僅因爲有錢可以支持那裏數以百萬計的舊設備。但這就是爲什麼他們不容易......他們不在乎。有辦法解決它,但你將不得不保持手頭的設備來測試,並避免升級它們。當然,這對於小型開發者來說是一個沉重的負擔。 –

+0

絕對。你知道任何信息來源表明舊設備的趨勢下降嗎? – Chris

回答

2

您可以降低目標摘要設置中的部署目標以支持較小的操作系統版本。需要注意的是,代碼仍然會編譯爲您安裝的最新SDK。這意味着您無法調用任何方法或使用您希望支持的最低操作系統版本之後發佈的任何功能。如果你打算使用正在運行的操作系統的新版本設備的新方法,你需要圍繞他們

if ([<class> respondsToSelector:@selector(methodName)] { 

} 

,以確保該方法將只支持它的設備上運行。

+1

Apple在這裏有一些類似技術的文檔http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/cross_development/Using/using.html –