2013-05-14 207 views
2

我需要一個iOS應用程序與以前的iOS版本兼容,至少從4.0以及先前的設備(iPhone 4S,4,3GS ...以及可能的所有iPad設備)兼容。我發現一些處理iOS版本向後兼容性的帖子已經有幾年了(例如,How to build against older iOS versions with the latest Xcode downloads?),我不知道這是否被棄用,或者它仍然是繼續進行的方式,至少在應用程序構建方面。關於編程問題,我想我應該檢查文檔,以瞭解我想使用的所有iOS版本是否支持我要使用的SDK功能/庫/框架......並且有這些信息,我該如何檢查編程設備正在運行的iOS版本,以便提供某種功能?支持舊的iOS版本和設備

另一方面,關於iOS版本和運行它們的設備:我可以找到任何Apple文檔列出哪些iOS版本支持每個現有設備?在開發應用程序時應考慮哪些與硬件有關的問題?

非常感謝

編輯:目標體系結構(s)是唯一的硬件考慮我已經考慮到?瞭解到,例如,iPhone 3GS可以運行並運行iOS 6.1.3,我是否可以假設該設備將支持所有SDK的功能,或者我仍然需要檢查此類功能的可用性在設備上?

+1

問題的根源是關於建設目標ARMV架構,你不能再針對更新版本的Xcode。請參閱http://stackoverflow.com/questions/12619124/how-to-support-both-armv6-and-armv7s-for-release-build-in-xcode-4-5。我非常強烈建議將需求更改爲iOS 4.3+而不是iOS 4.0+,因爲這會爲您節省一筆巨大的麻煩。目前,大多數開發人員僅針對iOS 4.3以上,因爲Apple已經難以支持較早的iOS版本。 – bengoesboom 2013-05-14 15:51:32

+0

另外,這個文件(雖然現在有點老)有一個很好的支持設備的iOS版本的矩陣https://www.dropbox.com/s/u4lp189clie04ki/iOS_Support_Matrix_AUTUMN2012-2.pdf – bengoesboom 2013-05-14 15:56:35

+0

目前幾個百分點的設備運行在iOS5下。將應用程序定位到「iOS4 +」而不是「iOS5」有什麼意義?常規做法是,您(或您的客戶)應將應用程序**作爲當前iOS版本的目標,並將一個版本作爲僅支持**的版本,當我撰寫此評論時,這是「iOS5」和「iOS6」。 – holex 2013-05-14 20:57:16

回答

4

與支持的iOS 6.0 最新的Xcode版本,你不能下發展的設備與的iOS < 4.3(最低基地SDK),也是版本支持的iOS 4.0不支持的iOS 6.0。對於較舊的設備,您必須將體系結構設置爲您的armv6 armv7項目設置選項卡「生成設置」

檢查iOS版本上運行,只是檢查這裏可用的帖子在堆棧中,你會找到一個適合你;)

全部在一個我所設置的基本SDK 5.1,因爲它是最後那個可以被iPad 1和iPod touch 3使用。並且可用時間很長,所以每個人都應該有最新的更新。

舊設備只能有iOS 4.2.x,並且不受當前xcode(4.6.2(4H1003))的支持。

+0

A關於「基礎SDK」設置的問題:afaik,它確定應用程序可以運行的最新iOS版本,因此將其設置爲iOS 5.1將阻止應用程序在較高版本的iOS上運行,對吧?我需要從iOS 4.3到最新的支持,我該如何處理? – AppsDev 2013-05-30 11:32:46

+0

「基礎SDK」設置最低,而不是最高的iOS版本。因爲新版本總是支持較舊的API(確實意味着它不會崩潰,但並不意味着一切都會按預期運行),而舊版本不知道新API( )) – geo 2013-06-02 13:26:04

+1

似乎_base SDK_實際設置了支持的最新iOS版本,而_deployment target_設置了最早支持的iOS版本([SDK Compatibility Guide](SDK兼容性指南)],因此它們不會響應選擇器, (http://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/cross_development/Configuring/configuring.html#//apple_ref/doc/uid/10000163i-CH1-SW1)) – AppsDev 2013-07-04 14:52:22